diff options
author | Anton Khirnov <anton@khirnov.net> | 2022-07-12 10:18:47 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2022-08-23 16:47:48 +0200 |
commit | 71890ac3774bc041bed3ddb254defc66b4d9e4f8 (patch) | |
tree | 65a0f0b480031b9433e6bcd1e4e808f95e1a3109 | |
parent | 9f10a3b67696bfc5939d3199ca14aee7f5713902 (diff) |
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.
-rw-r--r-- | libavcodec/encode.c | 3 | ||||
-rw-r--r-- | 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 */ |