Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/LAVFilters.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2011-02-27 17:49:13 +0300
committerHendrik Leppkes <h.leppkes@gmail.com>2011-02-27 17:49:13 +0300
commite38fdcc1de2f7ab5665aa4ada33a332d4d631679 (patch)
tree5a31f4e1fe26bf4791e3f1d47731767ab2b042a4
parenta88e2a3774c8bc3c15946d620540f6bcf3d98128 (diff)
Fixed selection of forced subtitles if "Only Forced Subs" is enabled.
-rw-r--r--demuxer/Demuxers/LAVFDemuxer.cpp5
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) {