summaryrefslogtreecommitdiff
path: root/libavformat/mov.c
diff options
context:
space:
mode:
Diffstat (limited to 'libavformat/mov.c')
-rw-r--r--libavformat/mov.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libavformat/mov.c b/libavformat/mov.c
index 92957a5100..dfd382a098 100644
--- a/libavformat/mov.c
+++ b/libavformat/mov.c
@@ -1120,8 +1120,9 @@ static void mov_build_index(MOVContext *mov, AVStream *st)
unsigned int stss_index = 0;
unsigned int i, j;
- if (sc->sample_sizes || st->codec->codec_type == CODEC_TYPE_VIDEO ||
- sc->audio_cid == -2) {
+ /* only use old uncompressed audio chunk demuxing when stts specifies it */
+ if (!(st->codec->codec_type == CODEC_TYPE_AUDIO &&
+ sc->stts_count == 1 && sc->stts_data[0].duration == 1)) {
unsigned int current_sample = 0;
unsigned int stts_sample = 0;
unsigned int keyframe, sample_size;