[Ffmpeg-devel] FFmpeg API Discrepancies

Roman Shaposhnik rvs
Wed Jan 10 00:55:58 CET 2007


On Tue, 2007-01-09 at 12:32 +0100, Michael Niedermayer wrote:
> > > am i rightly assuming that dv.c is buggy because it doesn't call
> > > release_buffer() on dvvideo_close()?
> > 
> >   I'm not sure I understand the intricate details of buffer management
> > well enough but it looks like lots of codecs are that way -- they
> > do: 
> >     if(s->picture.data[0])
> >         avctx->release_buffer(avctx, &s->picture);
> > 
> > in the context of *_decode_frame() and they don't (are not supposed to?)
> > care about *_close().
> > 
> >   Am I missing something here ?
> some codes do release_buffer() during close (all mpeg and h26* codecs IIRC)
> i dont think its documented anywhere if this is needed or not but looking
> at the analogy of malloc() and free() id say things which have been allocated
> should be freed ...

  I see your point. I've also noticed that quite a few codecs don't 
even bother to defining AVCodec::close() because they truly don't
need it. Given that maybe the best way to fix the problem would be
modifying  avcodec_close() so that it calls release_buffer() ?


More information about the ffmpeg-devel mailing list