summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-07-12 10:18:47 +0200
committerAnton Khirnov <anton@khirnov.net>2022-08-23 16:47:48 +0200
commit71890ac3774bc041bed3ddb254defc66b4d9e4f8 (patch)
tree65a0f0b480031b9433e6bcd1e4e808f95e1a3109
parent9f10a3b67696bfc5939d3199ca14aee7f5713902 (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.c3
-rw-r--r--libavcodec/frame_thread_encoder.h11
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 */