avformat/mov: Fix duration of fragmented mov
authorMichael Niedermayer <michaelni@gmx.at>
Sun, 7 Jul 2013 00:42:40 +0000 (02:42 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Sun, 7 Jul 2013 16:45:31 +0000 (18:45 +0200)
Fixes Ticket2757

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit dc2a13aa802fc691c25d5e0194818831058316ee)

libavformat/mov.c

index 73c8be0..4c61558 100644 (file)
@@ -858,7 +858,7 @@ static int mov_read_mvhd(MOVContext *c, AVIOContext *pb, MOVAtom atom)
     c->duration = (version == 1) ? avio_rb64(pb) : avio_rb32(pb); /* duration */
     // set the AVCodecContext duration because the duration of individual tracks
     // may be inaccurate
-    if (c->time_scale > 0)
+    if (c->time_scale > 0 && !c->trex_data)
         c->fc->duration = av_rescale(c->duration, AV_TIME_BASE, c->time_scale);
     avio_rb32(pb); /* preferred scale */