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 v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode
@ 2022-05-09 18:47 Jan Ekström
  2022-05-09 18:47 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libsvtav1: signal CPB properties through side data Jan Ekström
  2022-05-09 19:07 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode James Almer
  0 siblings, 2 replies; 4+ messages in thread
From: Jan Ekström @ 2022-05-09 18:47 UTC (permalink / raw)
  To: ffmpeg-devel

This way we can filter out the default value for this member, which
is nonzero. Bases on the current affairs that bit rate based rate
control is nonzero in SVT-AV1.
---
 libavcodec/libsvtav1.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index b4112004ad..2c4ddd4641 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -297,7 +297,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;
 
     return 0;
 }
-- 
2.36.0

_______________________________________________
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] 4+ messages in thread

* [FFmpeg-devel] [PATCH v3 2/2] avcodec/libsvtav1: signal CPB properties through side data
  2022-05-09 18:47 [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode Jan Ekström
@ 2022-05-09 18:47 ` Jan Ekström
  2022-05-09 19:07 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode James Almer
  1 sibling, 0 replies; 4+ messages in thread
From: Jan Ekström @ 2022-05-09 18:47 UTC (permalink / raw)
  To: ffmpeg-devel

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

First, syncs up the max_rate and buffer_size from SVT-AV1 back to
avctx, and then in case at least one of the utilized values is
nonzero, adds the CPB properties side data.
---
 libavcodec/libsvtav1.c | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 2c4ddd4641..d9ebb6aa56 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -297,8 +297,20 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
         param->profile = FF_PROFILE_AV1_HIGH;
     }
 
-    avctx->bit_rate = param->rate_control_mode > 0 ?
-                      param->target_bit_rate : 0;
+    avctx->bit_rate       = param->rate_control_mode > 0 ?
+                            param->target_bit_rate : 0;
+    avctx->rc_max_rate    = param->max_bit_rate;
+    avctx->rc_buffer_size = param->vbv_bufsize;
+
+    if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
+        AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
+        if (!cpb_props)
+            return AVERROR(ENOMEM);
+
+        cpb_props->buffer_size = avctx->rc_buffer_size;
+        cpb_props->max_bitrate = avctx->rc_max_rate;
+        cpb_props->avg_bitrate = avctx->bit_rate;
+    }
 
     return 0;
 }
-- 
2.36.0

_______________________________________________
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] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode
  2022-05-09 18:47 [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode Jan Ekström
  2022-05-09 18:47 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libsvtav1: signal CPB properties through side data Jan Ekström
@ 2022-05-09 19:07 ` James Almer
  2022-05-09 20:10   ` Jan Ekström
  1 sibling, 1 reply; 4+ messages in thread
From: James Almer @ 2022-05-09 19:07 UTC (permalink / raw)
  To: ffmpeg-devel

On 5/9/2022 3:47 PM, Jan Ekström wrote:
> This way we can filter out the default value for this member, which
> is nonzero. Bases on the current affairs that bit rate based rate
> control is nonzero in SVT-AV1.
> ---
>   libavcodec/libsvtav1.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
> index b4112004ad..2c4ddd4641 100644
> --- a/libavcodec/libsvtav1.c
> +++ b/libavcodec/libsvtav1.c
> @@ -297,7 +297,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;
>   
>       return 0;
>   }

Set LGTM.
_______________________________________________
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] 4+ messages in thread

* Re: [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode
  2022-05-09 19:07 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode James Almer
@ 2022-05-09 20:10   ` Jan Ekström
  0 siblings, 0 replies; 4+ messages in thread
From: Jan Ekström @ 2022-05-09 20:10 UTC (permalink / raw)
  To: FFmpeg development discussions and patches

On Mon, May 9, 2022 at 10:07 PM James Almer <jamrial@gmail.com> wrote:
>
> On 5/9/2022 3:47 PM, Jan Ekström wrote:
> > This way we can filter out the default value for this member, which
> > is nonzero. Bases on the current affairs that bit rate based rate
> > control is nonzero in SVT-AV1.
> > ---
> >   libavcodec/libsvtav1.c | 3 ++-
> >   1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
> > index b4112004ad..2c4ddd4641 100644
> > --- a/libavcodec/libsvtav1.c
> > +++ b/libavcodec/libsvtav1.c
> > @@ -297,7 +297,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;
> >
> >       return 0;
> >   }
>
> Set LGTM.

Thanks, applied set as
70887d44ffa31b95704b85531fc53ddd4d9aab14
fe100bc556d7b25d301ed65f7ae7a74880770f09

Jan
_______________________________________________
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] 4+ messages in thread

end of thread, other threads:[~2022-05-09 20:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-09 18:47 [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode Jan Ekström
2022-05-09 18:47 ` [FFmpeg-devel] [PATCH v3 2/2] avcodec/libsvtav1: signal CPB properties through side data Jan Ekström
2022-05-09 19:07 ` [FFmpeg-devel] [PATCH v3 1/2] avcodec/libsvtav1: update avctx bit rate according to RC mode James Almer
2022-05-09 20:10   ` 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