When looking for the last packet in each
authorNeil Brown <neilb@suse.de>
Sat, 18 Aug 2007 00:52:05 +0000 (00:52 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 18 Aug 2007 00:52:05 +0000 (00:52 +0000)
stream, so as to calculate the duration, don't stop
as soon as all streams have seen at least one packet.
Otherwise the duration will be shorter than it
should be.  We must keep reading to the end-of-file.
patch by neilb suse de

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

libavformat/utils.c

index 0eba3e6..6583ec8 100644 (file)
@@ -1537,14 +1537,6 @@ static void av_estimate_timings_from_pts(AVFormatContext *ic, offset_t old_offse
     for(;;) {
         if (read_size >= DURATION_MAX_READ_SIZE)
             break;
-        /* if all info is available, we can stop */
-        for(i = 0;i < ic->nb_streams; i++) {
-            st = ic->streams[i];
-            if (st->duration == AV_NOPTS_VALUE)
-                break;
-        }
-        if (i == ic->nb_streams)
-            break;
 
         ret = av_read_packet(ic, pkt);
         if (ret != 0)