From 3aee5f69850a8236aa05ea2f79682c15cbe3562b Mon Sep 17 00:00:00 2001 From: "flybird2k@gmail.com" Date: Sun, 18 Jul 2010 19:53:24 +0000 Subject: [PATCH] Fix memleak when using mp*float decoder. Patch by flybird2k at gmail Originally committed as revision 24307 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/mpegaudiodec_float.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c index 93adaf8cc8..9150b33ba2 100644 --- a/libavcodec/mpegaudiodec_float.c +++ b/libavcodec/mpegaudiodec_float.c @@ -80,6 +80,13 @@ static void compute_antialias_float(MPADecodeContext *s, } } +static av_cold int decode_end(AVCodecContext * avctx) +{ + MPADecodeContext *s = avctx->priv_data; + ff_dct_end(&s->dct); + return 0; +} + #if CONFIG_MP1FLOAT_DECODER AVCodec mp1float_decoder = { @@ -89,7 +96,7 @@ AVCodec mp1float_decoder = sizeof(MPADecodeContext), decode_init, NULL, - NULL, + decode_end, decode_frame, CODEC_CAP_PARSE_ONLY, .flush= flush, @@ -105,7 +112,7 @@ AVCodec mp2float_decoder = sizeof(MPADecodeContext), decode_init, NULL, - NULL, + decode_end, decode_frame, CODEC_CAP_PARSE_ONLY, .flush= flush, @@ -121,7 +128,7 @@ AVCodec mp3float_decoder = sizeof(MPADecodeContext), decode_init, NULL, - NULL, + decode_end, decode_frame, CODEC_CAP_PARSE_ONLY, .flush= flush, @@ -137,7 +144,7 @@ AVCodec mp3adufloat_decoder = sizeof(MPADecodeContext), decode_init, NULL, - NULL, + decode_end, decode_frame_adu, CODEC_CAP_PARSE_ONLY, .flush= flush,