diff mbox series

[FFmpeg-devel,2/2] avcodec/libsvtav1: replace vbv_bufsize with maximum_buffer_size_ms

Message ID 20221019224712.194658-2-ccom@randomderp.com
State New
Headers show
Series [FFmpeg-devel,1/2] avcodec/libsvtav1: remove compressed_ten_bit_format and simplify alloc_buffer | 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

Christopher Degawa Oct. 19, 2022, 10:47 p.m. UTC
From: Christopher Degawa <christopher.degawa@intel.com>

svt-av1 v1.2.0 has deprecated vbv_bufsize in favor of using
- maximum_buffer_size_ms (--buf-sz)
- starting_buffer_level_ms (--buf-initial-sz)
- optimal_buffer_level_ms (--buf-optimal-sz)

and vbv_bufsize has not been in use since svt-av1 v0.8.6

Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
---
 libavcodec/libsvtav1.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

James Almer Oct. 19, 2022, 10:59 p.m. UTC | #1
On 10/19/2022 7:47 PM, Christopher Degawa wrote:
> From: Christopher Degawa <christopher.degawa@intel.com>
> 
> svt-av1 v1.2.0 has deprecated vbv_bufsize in favor of using
> - maximum_buffer_size_ms (--buf-sz)
> - starting_buffer_level_ms (--buf-initial-sz)
> - optimal_buffer_level_ms (--buf-optimal-sz)
> 
> and vbv_bufsize has not been in use since svt-av1 v0.8.6
> 
> Signed-off-by: Christopher Degawa <christopher.degawa@intel.com>
> ---
>   libavcodec/libsvtav1.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
> index 28da206cf8..74dad9892b 100644
> --- a/libavcodec/libsvtav1.c
> +++ b/libavcodec/libsvtav1.c
> @@ -179,7 +179,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
>           param->min_qp_allowed       = avctx->qmin;
>       }
>       param->max_bit_rate             = avctx->rc_max_rate;
> -    param->vbv_bufsize              = avctx->rc_buffer_size;
> +    param->maximum_buffer_size_ms   = avctx->rc_buffer_size * 1000 / avctx->bit_rate;

1000LL. The multiplication could overflow otherwise.

>   
>       if (svt_enc->crf > 0) {
>           param->qp                   = svt_enc->crf;
> @@ -296,7 +296,7 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
>       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;
> +    avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000;
>   
>       if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
>           AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
Christopher Degawa Oct. 19, 2022, 11:11 p.m. UTC | #2
On Wed, Oct 19, 2022 at 7:00 PM James Almer <jamrial@gmail.com> wrote:

> On 10/19/2022 7:47 PM, Christopher Degawa wrote:
> > From: Christopher Degawa <christopher.degawa@intel.com>
> > diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
> > index 28da206cf8..74dad9892b 100644
> > --- a/libavcodec/libsvtav1.c
> > +++ b/libavcodec/libsvtav1.c
> > @@ -179,7 +179,7 @@ static int
> config_enc_params(EbSvtAv1EncConfiguration *param,
> >           param->min_qp_allowed       = avctx->qmin;
> >       }
> >       param->max_bit_rate             = avctx->rc_max_rate;
> > -    param->vbv_bufsize              = avctx->rc_buffer_size;
> > +    param->maximum_buffer_size_ms   = avctx->rc_buffer_size * 1000 /
> avctx->bit_rate;
>
> 1000LL. The multiplication could overflow otherwise.
>

Thanks, replaced locally.
diff mbox series

Patch

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 28da206cf8..74dad9892b 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -179,7 +179,7 @@  static int config_enc_params(EbSvtAv1EncConfiguration *param,
         param->min_qp_allowed       = avctx->qmin;
     }
     param->max_bit_rate             = avctx->rc_max_rate;
-    param->vbv_bufsize              = avctx->rc_buffer_size;
+    param->maximum_buffer_size_ms   = avctx->rc_buffer_size * 1000 / avctx->bit_rate;
 
     if (svt_enc->crf > 0) {
         param->qp                   = svt_enc->crf;
@@ -296,7 +296,7 @@  static int config_enc_params(EbSvtAv1EncConfiguration *param,
     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;
+    avctx->rc_buffer_size = param->maximum_buffer_size_ms * avctx->bit_rate / 1000;
 
     if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
         AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);