From e38fdcc1de2f7ab5665aa4ada33a332d4d631679 Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Sun, 27 Feb 2011 15:49:13 +0100 Subject: Fixed selection of forced subtitles if "Only Forced Subs" is enabled. --- demuxer/Demuxers/LAVFDemuxer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/demuxer/Demuxers/LAVFDemuxer.cpp b/demuxer/Demuxers/LAVFDemuxer.cpp index 7a38d95a..7c0eddf1 100644 --- a/demuxer/Demuxers/LAVFDemuxer.cpp +++ b/demuxer/Demuxers/LAVFDemuxer.cpp @@ -744,7 +744,7 @@ const CBaseDemuxer::stream *CLAVFDemuxer::SelectSubtitleStream(std::list::iterator sit; for ( sit = checkedStreams.begin(); sit != checkedStreams.end(); ++sit ) { if (m_avFormat->streams[(*sit)->pid]->disposition & AV_DISPOSITION_DEFAULT) { - if ((subtitleMode == SUBMODE_FORCED_SUBS) == (m_avFormat->streams[(*sit)->pid]->disposition & AV_DISPOSITION_FORCED)) { + if (subtitleMode != SUBMODE_FORCED_SUBS || (m_avFormat->streams[(*sit)->pid]->disposition & AV_DISPOSITION_FORCED)) { best = *sit; break; } @@ -757,7 +757,8 @@ const CBaseDemuxer::stream *CLAVFDemuxer::SelectSubtitleStream(std::liststreams[(*sit)->pid]; // Check if the first stream qualifys for us. Forced if we want forced, not forced if we don't want forced. - if ((subtitleMode == SUBMODE_FORCED_SUBS) == (pStream->disposition & AV_DISPOSITION_FORCED)) { + if (subtitleMode == SUBMODE_FORCED_SUBS && (pStream->disposition & AV_DISPOSITION_FORCED) + || subtitleMode == SUBMODE_ALWAYS_SUBS && !(pStream->disposition & AV_DISPOSITION_FORCED) ) { best = *sit; break; } else if (subtitleMode == SUBMODE_ALWAYS_SUBS) { -- cgit v1.2.3