diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-12-03 02:57:18 +0100 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2021-01-09 04:06:31 +0100 |
commit | 505d4de064aff879674d0670cf1c96ca46545da3 (patch) | |
tree | ff628be60c33104cdba788378f172f209c9d86ed /libavcodec/eac3enc.c | |
parent | 69aeba8a19ac2fa6e1c9bdfb19229b513f314bb1 (diff) |
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.c | 2 |
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, }; |