summaryrefslogtreecommitdiff
path: root/libavcodec/eac3enc.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-12-03 02:57:18 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2021-01-09 04:06:31 +0100
commit505d4de064aff879674d0670cf1c96ca46545da3 (patch)
treeff628be60c33104cdba788378f172f209c9d86ed /libavcodec/eac3enc.c
parent69aeba8a19ac2fa6e1c9bdfb19229b513f314bb1 (diff)
downloadffmpeg-505d4de064aff879674d0670cf1c96ca46545da3.tar.gz
avcodec/[e]ac3enc: Make encoders init-threadsafe, fix race
ff_eac3_exponent_init() set values twice when initializing a static table; ergo the initialization code must not run concurrently with a running EAC-3 encoder. Yet this code is executed every time an EAC-3 encoder is initialized. So use ff_thread_once() for this and also for a similar initialization performed for all AC-3 encoders to make them all init-threadsafe. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/eac3enc.c')
-rw-r--r--libavcodec/eac3enc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c
index 8e1032f268..00721aa645 100644
--- a/libavcodec/eac3enc.c
+++ b/libavcodec/eac3enc.c
@@ -266,5 +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,
+ .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
};