diff --git a/libavcodec/avcodec.c b/libavcodec/avcodec.c index f82d9e9f74..0451f57f82 100644 --- a/libavcodec/avcodec.c +++ b/libavcodec/avcodec.c @@ -283,12 +283,6 @@ FF_ENABLE_DEPRECATION_WARNINGS if (ret < 0) goto free_and_end; - if (CONFIG_FRAME_THREAD_ENCODER && av_codec_is_encoder(avctx->codec)) { - ret = ff_frame_thread_encoder_init(avctx); - if (ret < 0) - goto free_and_end; - } - if (HAVE_THREADS && !(avci->frame_thread_encoder && (avctx->active_thread_type&FF_THREAD_FRAME))) { /* Frame-threaded decoders call FFCodec.init for their child contexts. */ diff --git a/libavcodec/encode.c b/libavcodec/encode.c index 7919b165da..bd66f138a3 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -668,6 +668,12 @@ int ff_encode_preinit(AVCodecContext *avctx) return AVERROR(ENOMEM); } + if (CONFIG_FRAME_THREAD_ENCODER) { + ret = ff_frame_thread_encoder_init(avctx); + if (ret < 0) + return ret; + } + return 0; }