diff mbox series

[FFmpeg-devel] avcodec/libsvtav1: guard against bit_rate being zero

Message ID 20221120023350.1684083-1-ccom@randomderp.com
State New
Headers show
Series [FFmpeg-devel] avcodec/libsvtav1: guard against bit_rate being zero | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Christopher Degawa Nov. 20, 2022, 2:33 a.m. UTC
division by zero occurs if it's not specified

Signed-off-by: Christopher Degawa <ccom@randomderp.com>
---
 libavcodec/libsvtav1.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

James Almer Nov. 20, 2022, 11:50 a.m. UTC | #1
On 11/19/2022 11:33 PM, Christopher Degawa wrote:
> division by zero occurs if it's not specified
> 
> Signed-off-by: Christopher Degawa <ccom@randomderp.com>
> ---
>   libavcodec/libsvtav1.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
> index 48cd58a0b3..06874dfa63 100644
> --- a/libavcodec/libsvtav1.c
> +++ b/libavcodec/libsvtav1.c
> @@ -179,7 +179,9 @@ static int config_enc_params(EbSvtAv1EncConfiguration *param,
>           param->min_qp_allowed       = avctx->qmin;
>       }
>       param->max_bit_rate             = avctx->rc_max_rate;
> -    param->maximum_buffer_size_ms   = avctx->rc_buffer_size * 1000LL / avctx->bit_rate;
> +    param->maximum_buffer_size_ms   = avctx->bit_rate
> +        ? (avctx->rc_buffer_size * 1000LL / avctx->bit_rate)
> +        : 0;

The documentation for maximum_buffer_size_ms says minimum value is 20.

>   
>       if (svt_enc->crf > 0) {
>           param->qp                   = svt_enc->crf;
diff mbox series

Patch

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 48cd58a0b3..06874dfa63 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -179,7 +179,9 @@  static int config_enc_params(EbSvtAv1EncConfiguration *param,
         param->min_qp_allowed       = avctx->qmin;
     }
     param->max_bit_rate             = avctx->rc_max_rate;
-    param->maximum_buffer_size_ms   = avctx->rc_buffer_size * 1000LL / avctx->bit_rate;
+    param->maximum_buffer_size_ms   = avctx->bit_rate
+        ? (avctx->rc_buffer_size * 1000LL / avctx->bit_rate)
+        : 0;
 
     if (svt_enc->crf > 0) {
         param->qp                   = svt_enc->crf;