From 97bee65ca5d0c3ff758bfd251a74dfb536f60b7d Mon Sep 17 00:00:00 2001 From: Hendrik Leppkes Date: Sat, 6 Sep 2014 13:14:42 +0200 Subject: Flag H.264 in MP4 without a CTTS atom as DTS-only timestamps --- demuxer/Demuxers/LAVFDemuxer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'demuxer') diff --git a/demuxer/Demuxers/LAVFDemuxer.cpp b/demuxer/Demuxers/LAVFDemuxer.cpp index 5865d7a0..56c2ca03 100644 --- a/demuxer/Demuxers/LAVFDemuxer.cpp +++ b/demuxer/Demuxers/LAVFDemuxer.cpp @@ -2079,6 +2079,8 @@ const CBaseDemuxer::stream *CLAVFDemuxer::SelectSubtitleStream(std::list= m_avFormat->nb_streams) @@ -2090,7 +2092,7 @@ STDMETHODIMP_(DWORD) CLAVFDemuxer::GetStreamFlags(DWORD dwStream) if (strcmp(m_pszInputFormat, "rawvideo") == 0) dwFlags |= LAV_STREAM_FLAG_ONLY_DTS; - if (st->codec->codec_id == AV_CODEC_ID_H264 && (m_bAVI || m_bPMP || (m_bMatroska && (!st->codec->extradata_size || st->codec->extradata[0] != 1)))) + if (st->codec->codec_id == AV_CODEC_ID_H264 && (m_bAVI || m_bPMP || (m_bMatroska && (!st->codec->extradata_size || st->codec->extradata[0] != 1)) || (m_bMP4 && st->priv_data && ((MOVStreamContext *)st->priv_data)->ctts_count == 0))) dwFlags |= LAV_STREAM_FLAG_ONLY_DTS; if (st->codec->codec_id == AV_CODEC_ID_HEVC && m_bAVI) -- cgit v1.2.3