summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhao Zhili <[email protected]>2025-09-10 20:29:47 +0800
committerZhao Zhili <[email protected]>2025-09-10 20:33:40 +0800
commitc1dc2e2b7cc8df8a40b616793d1204be0e71103c (patch)
treeb262d1d67f73a249a0180d75cf37f2c1ff74d4a6
parentd87210745e09f6d55a7e43f70bf9d8f81b5f739a (diff)
avcodec/videotoolboxenc: ensure bitrate is set in low_delay mode
VideoToolbox doesn't support automatic bitrate in low delay mode. Check bitrate and show error message so user knows what's going wrong.
-rw-r--r--libavcodec/videotoolboxenc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
index f0d3a15897..729072c0b9 100644
--- a/libavcodec/videotoolboxenc.c
+++ b/libavcodec/videotoolboxenc.c
@@ -1711,6 +1711,12 @@ static int vtenc_configure_encoder(AVCodecContext *avctx)
// low-latency mode: eliminate frame reordering, follow a one-in-one-out encoding mode
if ((avctx->flags & AV_CODEC_FLAG_LOW_DELAY) &&
((avctx->codec_id == AV_CODEC_ID_H264) || (TARGET_CPU_ARM64 && avctx->codec_id == AV_CODEC_ID_HEVC))) {
+ if (!avctx->bit_rate) {
+ av_log(avctx, AV_LOG_ERROR, "Doesn't support automatic bitrate in low_delay mode, "
+ "please specify bitrate explicitly\n");
+ status = AVERROR(EINVAL);
+ goto init_cleanup;
+ }
CFDictionarySetValue(enc_info,
compat_keys.kVTVideoEncoderSpecification_EnableLowLatencyRateControl,
kCFBooleanTrue);