]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
adjust time rate according to elst time offset
authorbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 11 Feb 2009 02:32:39 +0000 (02:32 +0000)
committerbcoudurier <bcoudurier@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Wed, 11 Feb 2009 02:32:39 +0000 (02:32 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@17146 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/mov.c

index f9d9a87bcb4914f5355f8b3e945f2b1d7c2febeb..bc682a3be7db66a7a7c64344f41854dd0ae2d1bd 100644 (file)
@@ -1162,8 +1162,6 @@ static int mov_read_stts(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
         return -1;
     dprintf(c->fc, "track[%i].stts.entries = %i\n", c->fc->nb_streams-1, entries);
 
-    sc->time_rate=0;
-
     for(i=0; i<entries; i++) {
         int sample_duration;
         int sample_count;
@@ -1768,8 +1766,10 @@ static int mov_read_elst(MOVContext *c, ByteIOContext *pb, MOVAtom atom)
         get_be32(pb); /* Track duration */
         time = get_be32(pb); /* Media time */
         get_be32(pb); /* Media rate */
-        if (i == 0 && time != -1)
+        if (i == 0 && time != -1) {
             sc->time_offset = time;
+            sc->time_rate = av_gcd(sc->time_rate, time);
+        }
     }
 
     if(edit_count > 1)