From 71890ac3774bc041bed3ddb254defc66b4d9e4f8 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 12 Jul 2022 10:18:47 +0200 Subject: lavc/encode: simplify a condition active_thread_type & FF_THREAD_FRAME will only be true for encoders if frame_thread_encoder has been successfully initialized. Also, stop relying on DCE in that block. --- libavcodec/encode.c | 3 +-- libavcodec/frame_thread_encoder.h | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libavcodec/encode.c b/libavcodec/encode.c index a774dc28dc..a765bfa2c8 100644 --- a/libavcodec/encode.c +++ b/libavcodec/encode.c @@ -203,8 +203,7 @@ static int encode_simple_internal(AVCodecContext *avctx, AVPacket *avpkt) av_assert0(codec->cb_type == FF_CODEC_CB_TYPE_ENCODE); - if (CONFIG_FRAME_THREAD_ENCODER && - avci->frame_thread_encoder && (avctx->active_thread_type & FF_THREAD_FRAME)) + if (avctx->active_thread_type & FF_THREAD_FRAME) /* This might modify frame, but it doesn't matter, because * the frame properties used below are not used for video * (due to the delay inherent in frame threaded encoding, it makes diff --git a/libavcodec/frame_thread_encoder.h b/libavcodec/frame_thread_encoder.h index 201cba2a8f..a18f050560 100644 --- a/libavcodec/frame_thread_encoder.h +++ b/libavcodec/frame_thread_encoder.h @@ -21,8 +21,13 @@ #ifndef AVCODEC_FRAME_THREAD_ENCODER_H #define AVCODEC_FRAME_THREAD_ENCODER_H +#include "config.h" + +#include "libavutil/error.h" + #include "avcodec.h" +#if CONFIG_FRAME_THREAD_ENCODER /** * Initialize frame thread encoder. * @note hardware encoders are not supported @@ -32,4 +37,10 @@ void ff_frame_thread_encoder_free(AVCodecContext *avctx); int ff_thread_video_encode_frame(AVCodecContext *avctx, AVPacket *pkt, AVFrame *frame, int *got_packet_ptr); +#else // CONFIG_FRAME_THREAD_ENCODER +#define ff_frame_thread_encoder_init(...) AVERROR(ENOSYS) +#define ff_frame_thread_encoder_free(...) +#define ff_thread_video_encode_frame(...) AVERROR(ENOSYS) +#endif // CONFIG_FRAME_THREAD_ENCODER + #endif /* AVCODEC_FRAME_THREAD_ENCODER_H */ -- cgit v1.2.3