diff options
Diffstat (limited to 'demuxer/Demuxers/LAVFDemuxer.cpp')
-rw-r--r-- | demuxer/Demuxers/LAVFDemuxer.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/demuxer/Demuxers/LAVFDemuxer.cpp b/demuxer/Demuxers/LAVFDemuxer.cpp index 76eb0650..54f585a9 100644 --- a/demuxer/Demuxers/LAVFDemuxer.cpp +++ b/demuxer/Demuxers/LAVFDemuxer.cpp @@ -1569,6 +1569,9 @@ STDMETHODIMP CLAVFDemuxer::AddStream(int streamId) s.language = "und"; s.lcid = 0; } + const char * title = lavf_get_stream_title(pStream); + if (title) + s.trackName = title; s.streamInfo = new CLAVFStreamInfo(m_avFormat, pStream, m_pszInputFormat, hr); if(FAILED(hr)) { @@ -2050,6 +2053,9 @@ const CBaseDemuxer::stream *CLAVFDemuxer::SelectSubtitleStream(std::list<CSubtit continue; } + if (!it->subtitleTrackName.empty() && sit->trackName.find(it->subtitleTrackName) == std::string::npos) + continue; + if (it->dwFlags == 0 || ((it->dwFlags & SUBTITLE_FLAG_DEFAULT) && (m_avFormat->streams[sit->pid]->disposition & AV_DISPOSITION_DEFAULT)) || ((it->dwFlags & SUBTITLE_FLAG_FORCED) && (m_avFormat->streams[sit->pid]->disposition & AV_DISPOSITION_FORCED)) |