On Mittwoch, 14. April 2004 13:53, Michael Hunold wrote:
Hello Stefan,
On 04/14/04 09:13, Stefan Lucke wrote:
does someone know how this works ?
Even after calling the decoder with:
avcodec_decode_video(context,picture,&got_picture,NULL,0);
got_picture is still false.
I noticed several anomalies with the mpeg2 decoder from libavcodec.
1) As you already noticed, "got_picture" is wrong after an I-Frame has
been put to the decoder. For some unknown reason, the decoder delays the
delivery.
2) If you start to deliver an new GOP, starting with the I-Frame,
libavcodec throws away the whole GOP (normally 12 frames!) and starts
with the next I-Frame it gets. If you start in the middle of a GOP, then
it will catch the I-Frame, but only after the delay mentioned in 1)
Based on your analysis I played around with "closed gop" and "broken link"
flags but still no success :-(.
Do you know the size of the delay mentioned in 1) ?
If you don't start to feed with an I-frame (because of 2), then the
delay was 4 frames IIRC.