diff mbox series

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

Message ID 20220412204313.16672-1-jeebjp@gmail.com
State New
Headers show
Series [FFmpeg-devel,v2,1/2] avcodec/libsvtav1: signal CPB properties through side data | expand

Checks

Context Check Description
yinshiyou/make_loongarch64 success Make finished
yinshiyou/make_fate_loongarch64 success Make fate finished
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Jan Ekström April 12, 2022, 8:43 p.m. UTC
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 mbox series

Patch

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;
 }