Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- libavcodec/h261dec.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-)
diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c index 8a49e7d894..377842c6fb 100644 --- a/libavcodec/h261dec.c +++ b/libavcodec/h261dec.c @@ -26,6 +26,7 @@ */ #include "libavutil/avassert.h" +#include "libavutil/thread.h" #include "avcodec.h" #include "mpeg_er.h" #include "mpegutils.h" @@ -47,12 +48,8 @@ static VLC h261_mtype_vlc; static VLC h261_mv_vlc; static VLC h261_cbp_vlc; -static av_cold void h261_decode_init_vlc(H261Context *h) +static av_cold void h261_decode_init_static(void) { - static int done = 0; - - if (!done) { - done = 1; INIT_VLC_STATIC(&h261_mba_vlc, H261_MBA_VLC_BITS, 35, ff_h261_mba_bits, 1, 1, ff_h261_mba_code, 1, 1, 662); @@ -66,11 +63,13 @@ static av_cold void h261_decode_init_vlc(H261Context *h) &ff_h261_cbp_tab[0][1], 2, 1, &ff_h261_cbp_tab[0][0], 2, 1, 512); INIT_VLC_RL(ff_h261_rl_tcoeff, 552); - } + + ff_h261_common_init(); } static av_cold int h261_decode_init(AVCodecContext *avctx) { + static AVOnce init_static_once = AV_ONCE_INIT; H261Context *h = avctx->priv_data; MpegEncContext *const s = &h->s; @@ -82,11 +81,10 @@ static av_cold int h261_decode_init(AVCodecContext *avctx) s->low_delay = 1; avctx->pix_fmt = AV_PIX_FMT_YUV420P; - ff_h261_common_init(); - h261_decode_init_vlc(h); - h->gob_start_code_skipped = 0; + ff_thread_once(&init_static_once, h261_decode_init_static); + return 0; } @@ -686,6 +684,6 @@ AVCodec ff_h261_decoder = { .close = h261_decode_end, .decode = h261_decode_frame, .capabilities = AV_CODEC_CAP_DR1, - .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP | FF_CODEC_CAP_INIT_THREADSAFE, .max_lowres = 3, }; -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".