On Wed, 6 Mar 2013 20:43:33 +0100, Janne Grunau <[email protected]> wrote:
> On 2013-03-04 11:35:24 +0100, Anton Khirnov wrote:
> > ---
> >  libavcodec/vc1dec.c |   27 +++++++++++++--------------
> >  1 file changed, 13 insertions(+), 14 deletions(-)
> > 
> > diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c
> > index 17d0e16..ea882d6 100644
> > --- a/libavcodec/vc1dec.c
> > +++ b/libavcodec/vc1dec.c
> > @@ -5023,12 +5023,8 @@ static int vc1_decode_sprites(VC1Context *v, 
> > GetBitContext* gb)
> >          v->two_sprites = 0;
> >      }
> >  
> > -    if (v->sprite_output_frame.data[0])
> > -        avctx->release_buffer(avctx, &v->sprite_output_frame);
> > -
> > -    v->sprite_output_frame.buffer_hints = FF_BUFFER_HINTS_VALID;
> > -    v->sprite_output_frame.reference = 0;
> > -    if (ff_get_buffer(avctx, &v->sprite_output_frame) < 0) {
> > +    av_frame_unref(&v->sprite_output_frame);
> > +    if (ff_get_buffer(avctx, &v->sprite_output_frame, 0) < 0) {
> 
> not that you've changed anything about it but I'm a little confused how
> this works together with the special cases in
> mpegvideo.c:alloc_frame_buffer()
> 

>From what i understand, alloc_frame_buffer() is called from 
>ff_MPV_frame_start()
and that frame is used for some internal purposes.

This ff_get_buffer() call produces the actual output frame.

-- 
Anton Khirnov
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to