Do not call update_initial_durations if pkt->duration is 0.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 13 Apr 2008 08:55:02 +0000 (08:55 +0000)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 13 Apr 2008 08:55:02 +0000 (08:55 +0000)
Fixes and assertion crash when playing amv files, e.g.
http://samples.mplayerhq.hu/amv/Shakira - Hips Don't Lie.amv

Originally committed as revision 12797 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/utils.c

index d85090cfcaff75cae0b949b67c9232372b49967d..dad210499ec938680f4c958b38e26a02589da647 100644 (file)
@@ -668,7 +668,7 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
         if (den && num) {
             pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den, den * (int64_t)st->time_base.num);
 
         if (den && num) {
             pkt->duration = av_rescale(1, num * (int64_t)st->time_base.den, den * (int64_t)st->time_base.num);
 
-            if(st->cur_dts == 0)
+            if(st->cur_dts == 0 && pkt->duration != 0)
                 update_initial_durations(s, st, pkt);
         }
     }
                 update_initial_durations(s, st, pkt);
         }
     }