From 1f6e3af2c83a766d7d658007fdf5edc6168108b1 Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Wed, 15 May 2013 16:49:10 +0200 Subject: Tweak virtual forced track selection --- demuxer/LAVSplitter/LAVSplitter.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/demuxer/LAVSplitter/LAVSplitter.cpp b/demuxer/LAVSplitter/LAVSplitter.cpp index 81cc3e20..3430c275 100644 --- a/demuxer/LAVSplitter/LAVSplitter.cpp +++ b/demuxer/LAVSplitter/LAVSplitter.cpp @@ -1460,14 +1460,22 @@ std::list CLAVSplitter::GetSubtitleSelectors() std::string flags = res[4]; if (flags.length() > 0) { if (flags.find('d') != flags.npos) - selector.dwFlags |= SUBTITLE_FLAG_DEFAULT | (m_settings.subtitleMode == LAVSubtitleMode_Default ? SUBTITLE_FLAG_VIRTUAL : 0); + selector.dwFlags |= SUBTITLE_FLAG_DEFAULT; if (flags.find('f') != flags.npos) - selector.dwFlags |= SUBTITLE_FLAG_FORCED | (m_settings.subtitleMode != LAVSubtitleMode_Default ? SUBTITLE_FLAG_VIRTUAL : 0); + selector.dwFlags |= SUBTITLE_FLAG_FORCED; if (flags.find('n') != flags.npos) selector.dwFlags |= SUBTITLE_FLAG_NORMAL; if (flags.find('h') != flags.npos) selector.dwFlags |= SUBTITLE_FLAG_IMPAIRED; + if (m_settings.subtitleMode == LAVSubtitleMode_Default) { + if (selector.subtitleLanguage == "*" && (selector.dwFlags & SUBTITLE_FLAG_DEFAULT)) + selector.dwFlags |= SUBTITLE_FLAG_VIRTUAL; + } else { + if (selector.dwFlags & SUBTITLE_FLAG_FORCED) + selector.dwFlags |= SUBTITLE_FLAG_VIRTUAL; + } + // Check for flag negation std::string not = res[3]; if (not.length() == 1 && not == "!") { -- cgit v1.2.3