[FFmpeg-devel] [PATCH] c93: Do not needlessly use reget_buffer.

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sat Nov 5 19:05:16 CET 2011


On Sat, Nov 05, 2011 at 06:27:27PM +0100, Michael Niedermayer wrote:
> On Sat, Nov 05, 2011 at 04:19:27PM +0100, Reimar Döffinger wrote:
> > get_buffer and release_buffer is more suitable for how this codec works
> > and can result in better performance in some playback situations.
> > 
> > Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
> > ---
> >  libavcodec/c93.c |    5 ++++-
> >  1 files changed, 4 insertions(+), 1 deletions(-)
> > 
> > diff --git a/libavcodec/c93.c b/libavcodec/c93.c
> > index 1f4ed1f..2a36ed9 100644
> > --- a/libavcodec/c93.c
> > +++ b/libavcodec/c93.c
> > @@ -130,10 +130,13 @@ static int decode_frame(AVCodecContext *avctx, void *data,
> >  
> >      c93->currentpic ^= 1;
> >  
> > +    if (newpic->data[0])
> > +        avctx->release_buffer(avctx, newpic);
> > +
> >      newpic->reference = 1;
> >      newpic->buffer_hints = FF_BUFFER_HINTS_VALID | FF_BUFFER_HINTS_PRESERVE |
> >                           FF_BUFFER_HINTS_REUSABLE | FF_BUFFER_HINTS_READABLE;
> 
> > -    if (avctx->reget_buffer(avctx, newpic)) {
> > +    if (avctx->get_buffer(avctx, newpic)) {
> 
> doesnt this break C93_NOOP ?

Looks like it might. But it seems strange that NOOP would be supposed to use
data from _two_ frames previously.
I guess I'll have to test a bit, unless someone knows more about the
format.


More information about the ffmpeg-devel mailing list