diff options
author | Justin Ruggles <justin.ruggles@gmail.com> | 2012-12-23 20:26:15 -0500 |
---|---|---|
committer | Justin Ruggles <justin.ruggles@gmail.com> | 2013-02-12 12:22:40 -0500 |
commit | 205a95f7b5178362874bc1e65eae9866723491c1 (patch) | |
tree | 99a9271cbb803605ecc2ef338fe957032e53e341 | |
parent | c815ca36412e54e641dd0a91bc54f43f4d9d5621 (diff) | |
download | ffmpeg-205a95f7b5178362874bc1e65eae9866723491c1.tar.gz |
wmaenc: alloc/free coded_frame instead of keeping it in the WMACodecContext
-rw-r--r-- | libavcodec/wma.c | 5 | ||||
-rw-r--r-- | libavcodec/wma.h | 1 | ||||
-rw-r--r-- | 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; } |