[FFmpeg-devel] [PATCH] avcodec/videotoolboxenc: add low-latency encoding
xufuji456
839789740 at qq.com
Thu May 18 13:15:35 EEST 2023
Signed-off-by: xufuji456 <839789740 at qq.com>
---
libavcodec/videotoolboxenc.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
index c6f22723d6..88334f1851 100644
--- a/libavcodec/videotoolboxenc.c
+++ b/libavcodec/videotoolboxenc.c
@@ -251,6 +251,8 @@ typedef struct VTEncContext {
/* can't be bool type since AVOption will access it as int */
int a53_cc;
+
+ int low_latency;
} VTEncContext;
static int vtenc_populate_extradata(AVCodecContext *avctx,
@@ -1441,6 +1443,16 @@ static int vtenc_create_encoder(AVCodecContext *avctx,
}
}
+ if (vtctx->low_latency) {
+ status = VTSessionSetProperty(vtctx->session,
+ kVTVideoEncoderSpecification_EnableLowLatencyRateControl,
+ kCFBooleanTrue);
+
+ if (status) {
+ av_log(avctx, AV_LOG_ERROR, "Error setting low latency property: %d\n", status);
+ }
+ }
+
status = VTCompressionSessionPrepareToEncodeFrames(vtctx->session);
if (status) {
av_log(avctx, AV_LOG_ERROR, "Error: cannot prepare encoder: %d\n", status);
--
2.32.0 (Apple Git-132)
More information about the ffmpeg-devel
mailing list