[FFmpeg-devel] [PATCH v2 1/2] avcodec/libsvtav1: signal CPB properties through side data

Jan Ekström jeebjp at gmail.com
Tue Apr 12 23:43:12 EEST 2022


This way values such as maxrate/bufsize can be utilized further
down the chain.

Only sets the average bit rate if the rate control mode is nonzero,
which marks bit rate based rate control instead of constant quantizer
or CRF.
---
 libavcodec/libsvtav1.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 2e3d96ce37..9271d3d9fe 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -156,6 +156,9 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
     SvtContext *svt_enc = avctx->priv_data;
     const AVPixFmtDescriptor *desc;
     AVDictionaryEntry *en = NULL;
+    AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
+    if (!cpb_props)
+        return AVERROR(ENOMEM);
 
     // Update param from options
 #if FF_API_SVTAV1_OPTS
@@ -272,6 +275,11 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
 
     avctx->bit_rate                 = param->target_bit_rate;
 
+    cpb_props->buffer_size = param->vbv_bufsize;
+    cpb_props->max_bitrate = param->max_bit_rate;
+    cpb_props->avg_bitrate = param->rate_control_mode > 0 ?
+                             param->target_bit_rate  : 0;
+
     return 0;
 }
 
-- 
2.35.1



More information about the ffmpeg-devel mailing list