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

Martin Wache M.Wache
Mon Mar 19 21:40:17 CET 2007

Hi all,

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. The pts values of the video are fine, only the pts
values of the audio are negative...  When I use av_read_packet() instead
of av_read_frame() all pts values are fine.

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?



More information about the ffmpeg-devel mailing list