From 205a95f7b5178362874bc1e65eae9866723491c1 Mon Sep 17 00:00:00 2001 From: Justin Ruggles Date: Sun, 23 Dec 2012 20:26:15 -0500 Subject: [PATCH] wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext --- libavcodec/wma.c | 5 +++++ libavcodec/wma.h | 1 - libavcodec/wmaenc.c | 10 +++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/libavcodec/wma.c b/libavcodec/wma.c index 03e310bc94..ab7bcf53a8 100644 --- a/libavcodec/wma.c +++ b/libavcodec/wma.c @@ -386,6 +386,11 @@ int ff_wma_end(AVCodecContext *avctx) av_free(s->int_table[i]); } +#if FF_API_OLD_ENCODE_AUDIO + if (av_codec_is_encoder(avctx->codec)) + av_freep(&avctx->coded_frame); +#endif + return 0; } diff --git a/libavcodec/wma.h b/libavcodec/wma.h index 9312ec5dd7..ced3a8f87f 100644 --- a/libavcodec/wma.h +++ b/libavcodec/wma.h @@ -66,7 +66,6 @@ typedef struct CoefVLCTable { typedef struct WMACodecContext { AVCodecContext* avctx; - AVFrame frame; GetBitContext gb; PutBitContext pb; int version; ///< 1 = 0x160 (WMAV1), 2 = 0x161 (WMAV2) diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c index bf8c2674b9..f110f89465 100644 --- a/libavcodec/wmaenc.c +++ b/libavcodec/wmaenc.c @@ -52,6 +52,11 @@ static int encode_init(AVCodecContext * avctx){ return AVERROR(EINVAL); } +#if FF_API_OLD_ENCODE_AUDIO + if (!(avctx->coded_frame = avcodec_alloc_frame())) + return AVERROR(ENOMEM); +#endif + /* extract flag infos */ flags1 = 0; flags2 = 1; @@ -88,11 +93,6 @@ static int encode_init(AVCodecContext * avctx){ s->frame_len; avctx->frame_size = avctx->delay = s->frame_len; -#if FF_API_OLD_ENCODE_AUDIO - avctx->coded_frame = &s->frame; - avcodec_get_frame_defaults(avctx->coded_frame); -#endif - return 0; }