]> git.sesse.net Git - ffmpeg/commitdiff
avformat/mov: Bypass av_add_index_entry()
authorMichael Niedermayer <michaelni@gmx.at>
Mon, 16 Feb 2015 00:28:08 +0000 (01:28 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Mon, 16 Feb 2015 00:30:47 +0000 (01:30 +0100)
The new mov code uses a temporally non sorted index since 4abfa387b8234736f6e0e541951e3d5eb60eb843
and can thus no longer be filled with av_add_index_entry() which expects the index to be sorted.
Reverting 4abfa387b8234736f6e0e541951e3d5eb60eb843 and this commit would be
a alternative fix as would be various other options.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mov.c

index 1a5a518e21e92bc1b519ae13b19c8d7d526c89b5..6d2262a2c309784b360118274ad551e5e98f9305 100644 (file)
@@ -3153,8 +3153,9 @@ static int mov_read_trun(MOVContext *c, AVIOContext *pb, MOVAtom atom)
                                   MOV_FRAG_SAMPLE_FLAG_DEPENDS_YES));
         if (keyframe)
             distance = 0;
-        av_add_index_entry(st, offset, cts, sample_size, distance,
+        av_add_index_entry(st, offset, INT64_MAX/2, sample_size, distance,
                            keyframe ? AVINDEX_KEYFRAME : 0);
+        st->index_entries[st->nb_index_entries - 1].timestamp = cts;
         av_dlog(c->fc, "AVIndex stream %d, sample %d, offset %"PRIx64", cts %"PRId64", "
                 "size %d, distance %d, keyframe %d\n", st->index, sc->sample_count+i,
                 offset, cts, sample_size, distance, keyframe);