diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2013-05-15 18:49:10 +0400 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2013-05-15 18:49:10 +0400 |
commit | 1f6e3af2c83a766d7d658007fdf5edc6168108b1 (patch) | |
tree | c307473b16bb6eec5c9bba71e74949b5ae957d36 | |
parent | 3267f3cb5209a38d6e196d6ea28de821b14d0820 (diff) |
Tweak virtual forced track selection
-rw-r--r-- | demuxer/LAVSplitter/LAVSplitter.cpp | 12 |
1 files 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<CSubtitleSelector> 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 == "!") { |