Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
 help / color / mirror / Atom feed
* [FFmpeg-devel] [PATCH v2 1/2] avcodec/libsvtav1: signal CPB properties through side data
@ 2022-04-12 20:43 Jan Ekström
  2022-04-12 20:43 ` [FFmpeg-devel] [PATCH v2 2/2] avcodec/libsvtav1: only pass bit rate back to avctx if it'll get used Jan Ekström
  0 siblings, 1 reply; 2+ messages in thread
From: Jan Ekström @ 2022-04-12 20:43 UTC (permalink / raw)
  To: ffmpeg-devel

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

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [FFmpeg-devel] [PATCH v2 2/2] avcodec/libsvtav1: only pass bit rate back to avctx if it'll get used
  2022-04-12 20:43 [FFmpeg-devel] [PATCH v2 1/2] avcodec/libsvtav1: signal CPB properties through side data Jan Ekström
@ 2022-04-12 20:43 ` Jan Ekström
  0 siblings, 0 replies; 2+ messages in thread
From: Jan Ekström @ 2022-04-12 20:43 UTC (permalink / raw)
  To: ffmpeg-devel

SVT-AV1 has bit rate based rate control modes as non-zero. This way
we can filter out the default value for this value - which is nonzero.
---
 libavcodec/libsvtav1.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 9271d3d9fe..dc82d94de8 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -273,7 +273,8 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
         param->profile = FF_PROFILE_AV1_HIGH;
     }
 
-    avctx->bit_rate                 = param->target_bit_rate;
+    avctx->bit_rate = param->rate_control_mode > 0 ?
+                      param->target_bit_rate : 0;
 
     cpb_props->buffer_size = param->vbv_bufsize;
     cpb_props->max_bitrate = param->max_bit_rate;
-- 
2.35.1

_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-04-12 20:43 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-12 20:43 [FFmpeg-devel] [PATCH v2 1/2] avcodec/libsvtav1: signal CPB properties through side data Jan Ekström
2022-04-12 20:43 ` [FFmpeg-devel] [PATCH v2 2/2] avcodec/libsvtav1: only pass bit rate back to avctx if it'll get used Jan Ekström

Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
		ffmpegdev@gitmailbox.com
	public-inbox-index ffmpegdev

Example config snippet for mirrors.


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git