Do not fill the pts reordering buffer with guessed dts.
authorMichael Niedermayer <michaelni@gmx.at>
Thu, 14 Aug 2008 03:24:58 +0000 (03:24 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 14 Aug 2008 03:24:58 +0000 (03:24 +0000)
These values should not matter at all in principle because they
do not correspond to the time of display of any frame but it seems
ffmpeg becomes confused by them if they are far off and its not
strictly correct to set them to guessed values.
Fixes video_stalls_at_start.wmv

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

libavformat/utils.c

index 613de23..51cad25 100644 (file)
@@ -898,8 +898,6 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
 
     if(pkt->pts != AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY){
         st->pts_buffer[0]= pkt->pts;
 
     if(pkt->pts != AV_NOPTS_VALUE && delay <= MAX_REORDER_DELAY){
         st->pts_buffer[0]= pkt->pts;
-        for(i=1; i<delay+1 && st->pts_buffer[i] == AV_NOPTS_VALUE; i++)
-            st->pts_buffer[i]= (i-delay-1) * pkt->duration;
         for(i=0; i<delay && st->pts_buffer[i] > st->pts_buffer[i+1]; i++)
             FFSWAP(int64_t, st->pts_buffer[i], st->pts_buffer[i+1]);
         if(pkt->dts == AV_NOPTS_VALUE)
         for(i=0; i<delay && st->pts_buffer[i] > st->pts_buffer[i+1]; i++)
             FFSWAP(int64_t, st->pts_buffer[i], st->pts_buffer[i+1]);
         if(pkt->dts == AV_NOPTS_VALUE)