On 2013-01-08 15:37:55 +0100, Anton Khirnov wrote:
> ---
>  libavcodec/dvdec.c |   11 +++--------
>  1 file changed, 3 insertions(+), 8 deletions(-)
> 
> diff --git a/libavcodec/dvdec.c b/libavcodec/dvdec.c
> index bc1bb55..0d301af 100644
> --- a/libavcodec/dvdec.c
> +++ b/libavcodec/dvdec.c
> @@ -326,16 +326,12 @@ static int dvvideo_decode_frame(AVCodecContext *avctx,
>          return -1; /* NOTE: we only accept several full frames */
>      }
>  
> -    if (s->picture.data[0])
> -        avctx->release_buffer(avctx, &s->picture);
> -
> -    s->picture.reference = 0;
>      s->picture.key_frame = 1;
>      s->picture.pict_type = AV_PICTURE_TYPE_I;
>      avctx->pix_fmt   = s->sys->pix_fmt;
>      avctx->time_base = s->sys->time_base;
>      avcodec_set_dimensions(avctx, s->sys->width, s->sys->height);
> -    if (ff_get_buffer(avctx, &s->picture) < 0) {
> +    if (ff_get_buffer(avctx, &s->picture, 0) < 0) {
>          av_log(avctx, AV_LOG_ERROR, "get_buffer() failed\n");
>          return -1;
>      }
> @@ -350,7 +346,7 @@ static int dvvideo_decode_frame(AVCodecContext *avctx,
>  
>      /* return image */
>      *got_frame = 1;
> -    *(AVFrame*)data = s->picture;
> +    av_frame_move_ref(data, &s->picture);
>  
>      /* Determine the codec's sample_aspect ratio from the packet */
>      vsc_pack = buf + 80*5 + 48 + 5;
> @@ -367,8 +363,7 @@ static int dvvideo_close(AVCodecContext *c)
>  {
>      DVVideoContext *s = c->priv_data;
>  
> -    if (s->picture.data[0])
> -        c->release_buffer(c, &s->picture);
> +    av_frame_unref(&s->picture);
>  
>      return 0;
>  }

ok

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

Reply via email to