From: Eduard H. <ed...@ao...> - 2001-07-14 22:21:21
|
On Sat, Jul 14, 2001 at 10:38:04PM +0200, Guenter Bartsch wrote: > :)) I guess these aren't "dummy" buffers but what you're seeing here is > the demuxer sending some packages from the beginning of the stream to give > the video decoder (libmpeg2) a chance to see the sequence header which > contains the frame size/rate and other information. This hack was needed > for some mpeg1 streams that only contain one single sequence header at the > beginning making it impossible to jump "into" them. > > I think for DVD playback you can simply filter out these buffers. There's > a flag in buf->decoder_info[0] indicating preview buffers, so some code > like > > if (buf->decoder_info[0] == 0) { > > /* preview-buffer, ignore */ > > } else { > > /* decode this buffer */ > } When logging buf->decoder_info[0], I always get a zero value. This field is therefore never true. the libmpeg2 calls some functions when the first part of the if statement is executed. Maybe these functions are needed in order to get a info != 0 But while having buf->decoder_info[0] always zero, playback works smooth. Aside from some "hick-ups" at start. I can tell you, it looks very interesting when the motion compensation is applied to pictures to which it doesn't belong to :) further hints available? -- Eduard Hasenleithner student of Salzburg University of Applied Sciences and Technologies |