[Ffmpeg-devel] Bug in pts computation in compute_pkt_fields() ?

Martin Wache M.Wache
Tue Mar 20 19:30:13 CET 2007


Wolfram Gloger schrieb:
> Hi,
> 
>> Sure, each pair of lines is one call to compute_pkt_fields(), the first
>> line is at the start of compute_pkt_fields(), the second at the end:
>> st->cur_dts 8000000000000000 pkt->pts 8000000000000000 pkt->dts
>> 8000000000000000 33
>> st->cur_dts 0 pkt->pts 0 pkt->dts 0
>>
>> st->cur_dts 0 pkt->pts 8000000000000000 pkt->dts 8000000000000000 33
>> st->cur_dts 870 pkt->pts 0 pkt->dts 0
>>
>> st->cur_dts 870 pkt->pts 113e0e706 pkt->dts 113e0e706 33
>> st->cur_dts ffffffff13e0ef76 pkt->pts ffffffff13e0e706 pkt->dts
>> ffffffff13e0e706
> 
> Here is the problem IMO, cur_dts must never become negative..
> What about pkt->duration at this point?
> 

Sorry, I must go in a few minutes, so I will check this later. But when
I remember correctly, the pts becomes negative after these lines:

   if(st->cur_dts != AV_NOPTS_VALUE){
        if(pkt->pts != AV_NOPTS_VALUE)
            pkt->pts= lsb2full(pkt->pts, st->cur_dts,st->pts_wrap_bits);

and later on st->cur_dts is set to pkt->pts after the comment /*
presentation is not delayed : PTS and DTS are the same */.

Bye,

Martin




More information about the ffmpeg-devel mailing list