diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2011-02-27 17:49:13 +0300 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2011-02-27 17:49:13 +0300 |
commit | e38fdcc1de2f7ab5665aa4ada33a332d4d631679 (patch) | |
tree | 5a31f4e1fe26bf4791e3f1d47731767ab2b042a4 | |
parent | a88e2a3774c8bc3c15946d620540f6bcf3d98128 (diff) |
Fixed selection of forced subtitles if "Only Forced Subs" is enabled.
-rw-r--r-- | demuxer/Demuxers/LAVFDemuxer.cpp | 5 |
1 files 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<std::st std::deque<stream*>::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::list<std::st for ( sit = checkedStreams.begin(); sit != checkedStreams.end(); ++sit ) { AVStream *pStream = m_avFormat->streams[(*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) { |