From e49338a9c062df7f3167433d81a1528a978fd547 Mon Sep 17 00:00:00 2001 From: James Almer Date: Thu, 25 May 2017 11:07:42 -0300 Subject: avcodec/audiotoolboxdec: add FF_CODEC_CAP_INIT_CLEANUP to the decoder capabilities Extradata may be allocated and the AudioConverterRef may be created during init(), which in case of a failure would not be freed as close() isn't called afterwards. Signed-off-by: James Almer --- libavcodec/audiotoolboxdec.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/audiotoolboxdec.c b/libavcodec/audiotoolboxdec.c index d499a0afc8..c30817778f 100644 --- a/libavcodec/audiotoolboxdec.c +++ b/libavcodec/audiotoolboxdec.c @@ -599,7 +599,8 @@ static av_cold void ffat_decode_flush(AVCodecContext *avctx) static av_cold int ffat_close_decoder(AVCodecContext *avctx) { ATDecodeContext *at = avctx->priv_data; - AudioConverterDispose(at->converter); + if (at->converter) + AudioConverterDispose(at->converter); av_bsf_free(&at->bsf); av_packet_unref(&at->new_in_pkt); av_packet_unref(&at->in_pkt); @@ -628,7 +629,7 @@ static av_cold int ffat_close_decoder(AVCodecContext *avctx) .flush = ffat_decode_flush, \ .priv_class = &ffat_##NAME##_dec_class, \ .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, \ - .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, \ + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP, \ }; FFAT_DEC(aac, AV_CODEC_ID_AAC) -- cgit v1.2.3