summaryrefslogtreecommitdiff
path: root/libavcodec/eac3enc.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-09-14 03:35:52 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-09-18 02:52:15 +0200
commitf4e6aa609d7e8738c172aab2c0608e20ba3f779c (patch)
tree1f3f444daf89723fb5d4d24b23e8eca067d4ff37 /libavcodec/eac3enc.c
parentae36fad624307dcd1bbe0c954a017293a1ce34d3 (diff)
downloadffmpeg-f4e6aa609d7e8738c172aab2c0608e20ba3f779c.tar.gz
avcodec/ac3enc_float, eac3enc: Fix leaks on init error
The AC-3 encoders (both floating- as well as fixed-point) as well as the EAC-3 encoder share code: All use ff_ac3_encode_init() as well as ff_ac3_encode_close(). Until ee726e777b851cdd4e28cdab36b38f0c39e35ea9 ff_ac3_encode_init() called ff_ac3_encode_close() to clean up on error. Said commit removed this and instead set the FF_CODEC_CAP_INIT_CLEANUP flag; but it did the latter only for the fixed-point AC-3 encoder and not for the other two users of ff_ac3_encode_init(). This caused any already allocated buffer to leak upon a subsequent error for the two other encoders. This commit fixes this by adding the FF_CODEC_CAP_INIT_CLEANUP flag to the other two encoders using ff_ac3_encode_init(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/eac3enc.c')
-rw-r--r--libavcodec/eac3enc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c
index 6a90571e56..8e1032f268 100644
--- a/libavcodec/eac3enc.c
+++ b/libavcodec/eac3enc.c
@@ -266,4 +266,5 @@ AVCodec ff_eac3_encoder = {
.supported_samplerates = ff_ac3_sample_rate_tab,
.channel_layouts = ff_ac3_channel_layouts,
.defaults = ac3_defaults,
+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};