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>2016-03-22 00:37:14 +0300
committerHendrik Leppkes <h.leppkes@gmail.com>2016-03-22 00:37:14 +0300
commit78ffe99757eab0672dd5bca5b464f8127bdd7914 (patch)
treebbe51cdffa712d6ba0baf7154e9ea20f460a08cf /demuxer
parent85310137d42764482cd5a19c71a2f7f7d17c5876 (diff)
Don't report keyframe info for fragmented mp4 files
The information is inaccurate and results in seeking breaking if the player is too strict about its usage. Fixes #74
Diffstat (limited to 'demuxer')
-rw-r--r--demuxer/Demuxers/LAVFDemuxer.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/demuxer/Demuxers/LAVFDemuxer.cpp b/demuxer/Demuxers/LAVFDemuxer.cpp
index ec7b8ed4..e1c51456 100644
--- a/demuxer/Demuxers/LAVFDemuxer.cpp
+++ b/demuxer/Demuxers/LAVFDemuxer.cpp
@@ -37,6 +37,7 @@ typedef struct CodecMime{
#include "libavformat/mpegts.h"
#include "libavformat/matroska.h"
#include "libavutil/avstring.h"
+#include "libavformat/isom.h"
AVChapter *avpriv_new_chapter(AVFormatContext *s, int id, AVRational time_base, int64_t start, int64_t end, const char *title);
}
@@ -1608,6 +1609,13 @@ STDMETHODIMP CLAVFDemuxer::GetKeyFrameCount(UINT& nKFs)
return E_FAIL;
}
+ // No reliable info for fragmented mp4 files
+ if (m_bMP4) {
+ MOVContext *mov = (MOVContext *)m_avFormat->priv_data;
+ if (mov->fragment_index_count)
+ return S_FALSE;
+ }
+
nKFs = 0;
AVStream *stream = m_avFormat->streams[m_dActiveStreams[video]];
@@ -1629,6 +1637,13 @@ STDMETHODIMP CLAVFDemuxer::GetKeyFrames(const GUID* pFormat, REFERENCE_TIME* pKF
return E_FAIL;
}
+ // No reliable info for fragmented mp4 files
+ if (m_bMP4) {
+ MOVContext *mov = (MOVContext *)m_avFormat->priv_data;
+ if (mov->fragment_index_count)
+ return S_FALSE;
+ }
+
if(*pFormat != TIME_FORMAT_MEDIA_TIME) return E_INVALIDARG;
UINT nKFsMax = nKFs;