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

Wolfram Gloger wmglo
Tue Mar 20 10:27:23 CET 2007


Hi,

> I'm experiencing problems with the pts values of the audio packets given
> by av_read_frame(). The stream I feed to ffmpeg is a DVB-T stream mpeg2
> audio and video.

That is probably raw mpeg-ts, right?

> I'm not sure if it is just me getting the interface right, so I did some
> debugging, and here is what I found:
> First, I get audio frames without pts, the result is that st->cur_dts is
> set to 0 and starts to grow according to the length of the audio, which
> is fine. But as soon as I get a packet with pts, everything gets messed
> up by the lines
> 
>    /* handle wrapping */
>     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);
>         if(pkt->dts != AV_NOPTS_VALUE)
>             pkt->dts= lsb2full(pkt->dts, st->cur_dts, st->pts_wrap_bits);
>     }
> 
> The result is negative pts value for the packet. So I guess this is a
> bug in compute_pkt_fields(), or am I doing something wrong?

Please check that st->pts_wrap_bits is set to 60 (and not 33) if the
input stream is mpeg-ts.  A long time ago I had a similar problem
which was caused by the transport stream not being detected correctly.

Regards,
Wolfram.




More information about the ffmpeg-devel mailing list