From 32f7cf9bc38abbdca6f2d7c2e8c37c01f843ecab Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sat, 9 Nov 2013 10:14:46 +0100 Subject: [PATCH] truemotion2: use the AVFrame API properly. --- libavcodec/truemotion2.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/libavcodec/truemotion2.c b/libavcodec/truemotion2.c index 5d9408d..e41d7a3 100644 --- a/libavcodec/truemotion2.c +++ b/libavcodec/truemotion2.c @@ -58,7 +58,7 @@ enum TM2_BLOCKS { typedef struct TM2Context { AVCodecContext *avctx; - AVFrame pic; + AVFrame *pic; GetBitContext gb; DSPContext dsp; @@ -838,7 +838,7 @@ static int decode_frame(AVCodecContext *avctx, TM2Context * const l = avctx->priv_data; const uint8_t *buf = avpkt->data; int buf_size = avpkt->size & ~3; - AVFrame * const p = &l->pic; + AVFrame * const p = l->pic; int offset = TM2_HEADER_SIZE; int i, t, ret; uint8_t *swbuf; @@ -883,7 +883,7 @@ static int decode_frame(AVCodecContext *avctx, l->cur = !l->cur; *got_frame = 1; - ret = av_frame_ref(data, &l->pic); + ret = av_frame_ref(data, l->pic); av_free(swbuf); return (ret < 0) ? ret : buf_size; @@ -900,9 +900,12 @@ static av_cold int decode_init(AVCodecContext *avctx) } l->avctx = avctx; - avcodec_get_frame_defaults(&l->pic); avctx->pix_fmt = AV_PIX_FMT_BGR24; + l->pic = av_frame_alloc(); + if (!l->pic) + return AVERROR(ENOMEM); + ff_dsputil_init(&l->dsp, avctx); l->last = av_malloc(4 * sizeof(*l->last) * (w >> 2)); @@ -952,7 +955,6 @@ static av_cold int decode_init(AVCodecContext *avctx) static av_cold int decode_end(AVCodecContext *avctx) { TM2Context * const l = avctx->priv_data; - AVFrame *pic = &l->pic; int i; av_free(l->last); @@ -968,7 +970,7 @@ static av_cold int decode_end(AVCodecContext *avctx) av_free(l->V2_base); } - av_frame_unref(pic); + av_frame_free(&l->pic); return 0; } -- 2.7.4