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
