[FFmpeg-devel] question: why (pts < dts) is Invalid timestamps

C Chatterjee cchatterj at hotmail.com
Fri Jan 6 08:20:13 CET 2012



I see that my spacings did not work right. Let me try again:

 Decoding order             0  3  1  2
Presentation Order         0  1   2   3

Chanchal

> From: cchatterj at hotmail.com
> To: ffmpeg-devel at ffmpeg.org
> Date: Thu, 5 Jan 2012 23:13:16 -0800
> Subject: Re: [FFmpeg-devel] question: why (pts < dts) is Invalid timestamps
> 
> 
> pts < dts means you are displaying video you have not decoded. Not possible.
> 
> Your PTS DTS numbers below are presentation and decoding order not presentation and decoding time stamps.
> These are:
> Decoding order        0  3  1  2
> Presentation Order      0  1   2   3
> 
> Chanchal
> 
> 
> > Date: Fri, 6 Jan 2012 08:22:10 +0200
> > From: verem at m1stereo.tv
> > To: ffmpeg-devel at ffmpeg.org
> > Subject: [FFmpeg-devel] question: why (pts < dts) is Invalid timestamps
> > 
> > Hi,
> > 
> > could somebody explain, what is wrong then packet has pts < dts:
> > 
> > 1270             if(st->cur_pkt.pts != AV_NOPTS_VALUE &&
> > 1271                st->cur_pkt.dts != AV_NOPTS_VALUE &&
> > 1272                st->cur_pkt.pts < st->cur_pkt.dts){
> > 1273                 av_log(s, AV_LOG_WARNING, "Invalid timestamps 
> > stream=%d, pts=%"PRId64", dts=%"PRId64", size=%d\n",
> > 1274                     st->cur_pkt.stream_index,
> > 1275                     st->cur_pkt.pts,
> > 1276                     st->cur_pkt.dts,
> > 1277                     st->cur_pkt.size);
> > 1278 //                av_free_packet(&st->cur_pkt);
> > 1279 //                return -1;
> > 1280             }
> > 
> > i re-read some posts about dst/pts like:
> > http://ffmpeg-users.933282.n4.nabble.com/understanding-DTS-PTS-td940270.html
> > http://dranger.com/ffmpeg/tutorial05.html
> > but still have a questions.
> > 
> >  From the example:
> > 
> > PTS:    1 4 2 3
> > DTS:    1 2 3 4
> > Stream: I P B B
> > 
> > P and B frames has (pts < dts)
> > 
> > another real example is 
> > http://samples.mplayerhq.hu/mov/FCP/HDV_1080i50.mov that according to 
> > ctts atom:
> > 
> >      count=1, duration=2
> >      count=2, duration=-1
> >      count=1, duration=2
> >      count=2, duration=-1
> >      count=1, duration=2
> >      count=2, duration=-1
> >      count=1, duration=2
> >      [...]
> > 
> > PTS should be:
> > 
> > #  DTS  PTS
> > ------------
> > 0    0    2
> > 1    1    0
> > 2    2    1
> > 3    3    5
> > 4    4    3
> > 5    5    4
> > 6    6    8
> > 7    7    6
> > 8    8    7
> > 9    9    11
> > [...]
> > 
> > that also has (pts < dts) from some samples, but current implementation 
> > in mov.c makes a DTS negative (even in index table):
> > 
> > #  DTS  PTS
> > ------------
> > 0   -1    2
> > 1    0    0
> > 2    1    1
> > 3    2    5
> > 4    3    3
> > 5    4    4
> > 6    5    8
> > 7    6    6
> > 8    7    7
> > 9    8    11
> > [...]
> > 
> > to provide condition (pts >= dts)
> > 
> > and how seeking should works for this?
> > 
> > -- 
> > ________________________________________
> > Maksym Veremeyenko
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel at ffmpeg.org
> > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>  		 	   		  
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 		 	   		  


More information about the ffmpeg-devel mailing list