Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package ffmpeg-5 for openSUSE:Factory 
checked in at 2023-06-29 17:29:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/ffmpeg-5 (Old)
 and      /work/SRC/openSUSE:Factory/.ffmpeg-5.new.13546 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ffmpeg-5"

Thu Jun 29 17:29:32 2023 rev:18 rq:1095979 version:5.1.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/ffmpeg-5/ffmpeg-5.changes        2023-04-21 
14:15:43.698148985 +0200
+++ /work/SRC/openSUSE:Factory/.ffmpeg-5.new.13546/ffmpeg-5.changes     
2023-06-29 17:29:51.078794591 +0200
@@ -1,0 +2,8 @@
+Thu Jun 29 12:26:41 UTC 2023 - Jan Engelhardt <jeng...@inai.de>
+
+- Add 0001-avcodec-libsvtav1-replace-vbv_bufsize-with-maximum_b.patch,
+  0002-avcodec-libsvtav1-remove-compressed_ten_bit_format-a.patch,
+  0003-avcodec-libsvtav1-only-set-max_buf_sz-if-both-bitrat.patch,
+  0004-avcodec-libsvtav1-use-larger-of-bit-rate-and-max-rat.patch
+
+-------------------------------------------------------------------

New:
----
  0001-avcodec-libsvtav1-replace-vbv_bufsize-with-maximum_b.patch
  0002-avcodec-libsvtav1-remove-compressed_ten_bit_format-a.patch
  0003-avcodec-libsvtav1-only-set-max_buf_sz-if-both-bitrat.patch
  0004-avcodec-libsvtav1-use-larger-of-bit-rate-and-max-rat.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ffmpeg-5.spec ++++++
--- /var/tmp/diff_new_pack.L1tsYv/_old  2023-06-29 17:29:52.066800377 +0200
+++ /var/tmp/diff_new_pack.L1tsYv/_new  2023-06-29 17:29:52.070800400 +0200
@@ -106,6 +106,10 @@
 Patch5:         work-around-abi-break.patch
 Patch9:         ffmpeg-4.4-CVE-2020-22046.patch
 Patch10:        ffmpeg-chromium.patch
+Patch11:        0001-avcodec-libsvtav1-replace-vbv_bufsize-with-maximum_b.patch
+Patch12:        0002-avcodec-libsvtav1-remove-compressed_ten_bit_format-a.patch
+Patch13:        0003-avcodec-libsvtav1-only-set-max_buf_sz-if-both-bitrat.patch
+Patch14:        0004-avcodec-libsvtav1-use-larger-of-bit-rate-and-max-rat.patch
 Patch91:        ffmpeg-dlopen-openh264.patch
 Patch93:        soname.diff
 

++++++ 0001-avcodec-libsvtav1-replace-vbv_bufsize-with-maximum_b.patch ++++++
>From bea695d54372b66a6b9b136982fc92adb63e4745 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <christopher.deg...@intel.com>
Date: Thu, 20 Oct 2022 22:55:28 -0500
Subject: [PATCH 1/4] avcodec/libsvtav1: replace vbv_bufsize with
 maximum_buffer_size_ms

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.deg...@intel.com>
---
 libavcodec/libsvtav1.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 4001cf7f03..ecf5f9cb63 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -183,7 +183,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 * 1000LL / 
avctx->bit_rate;
 
     if (svt_enc->crf > 0) {
         param->qp                   = svt_enc->crf;
@@ -300,7 +300,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 / 
1000LL;
 
     if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
         AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
-- 
2.41.0


++++++ 0002-avcodec-libsvtav1-remove-compressed_ten_bit_format-a.patch ++++++
>From 3344d47a88506aba060b5fd2a214cf7785b11483 Mon Sep 17 00:00:00 2001
From: Christopher Degawa <christopher.deg...@intel.com>
Date: Thu, 20 Oct 2022 22:55:27 -0500
Subject: [PATCH 2/4] avcodec/libsvtav1: remove compressed_ten_bit_format and
 simplify alloc_buffer

compressed_ten_bit_format has been deprecated upstream and has no effect
and can be removed. Plus, technically it was never used in the first place
since it would require the app (ffmpeg) to set it and do additional
processing of the input frames.

Also simplify alloc_buffer by removing calculations relating to the
non-existant processing.

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

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index ecf5f9cb63..90f7c4236c 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -124,16 +124,12 @@ static int svt_print_error(void *log_ctx, EbErrorType err,
 
 static int alloc_buffer(EbSvtAv1EncConfiguration *config, SvtContext *svt_enc)
 {
-    const int    pack_mode_10bit =
-        (config->encoder_bit_depth > 8) && (config->compressed_ten_bit_format 
== 0) ? 1 : 0;
-    const size_t luma_size_8bit  =
-        config->source_width * config->source_height * (1 << pack_mode_10bit);
-    const size_t luma_size_10bit =
-        (config->encoder_bit_depth > 8 && pack_mode_10bit == 0) ? 
luma_size_8bit : 0;
+    const size_t luma_size = config->source_width * config->source_height *
+        (config->encoder_bit_depth > 8 ? 2 : 1);
 
     EbSvtIOFormat *in_data;
 
-    svt_enc->raw_size = (luma_size_8bit + luma_size_10bit) * 3 / 2;
+    svt_enc->raw_size = luma_size * 3 / 2;
 
     // allocate buffer for in and out
     svt_enc->in_buf           = av_mallocz(sizeof(*svt_enc->in_buf));
-- 
2.41.0


++++++ 0003-avcodec-libsvtav1-only-set-max_buf_sz-if-both-bitrat.patch ++++++
>From 8fe2fec45321d1b82f98f9725ad9118cefcfa58d Mon Sep 17 00:00:00 2001
From: Christopher Degawa <c...@randomderp.com>
Date: Sun, 20 Nov 2022 13:07:36 -0600
Subject: [PATCH 3/4] avcodec/libsvtav1: only set max_buf_sz if both bitrate
 and rc_buf_sz is set

maximum_buffer_size_ms should only be set if both are specified or if
the user sets it through -svtav1-params buf-sz=val

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

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index 90f7c4236c..d41bed480b 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -179,7 +179,8 @@ 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;
+    if (avctx->bit_rate && avctx->rc_buffer_size)
+        param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / 
avctx->bit_rate;
 
     if (svt_enc->crf > 0) {
         param->qp                   = svt_enc->crf;
-- 
2.41.0


++++++ 0004-avcodec-libsvtav1-use-larger-of-bit-rate-and-max-rat.patch ++++++
>From e5b5dd66535f444451e0fee59247b224d866f334 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= <jee...@gmail.com>
Date: Thu, 9 Mar 2023 20:27:06 +0200
Subject: [PATCH 4/4] avcodec/libsvtav1: use larger of bit rate and max rate
 for buffer size

Generally if maxrate is set, the calculation should be maxrate over
bufsize. This additionally enables CRF + maxrate & bufsize usage.

In order to keep negative values from enabling zero to be treated
as larger and causing a division by zero, check that one of the
variables is larger than zero.
---
 libavcodec/libsvtav1.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c
index d41bed480b..0f9d455660 100644
--- a/libavcodec/libsvtav1.c
+++ b/libavcodec/libsvtav1.c
@@ -179,8 +179,10 @@ static int config_enc_params(EbSvtAv1EncConfiguration 
*param,
         param->min_qp_allowed       = avctx->qmin;
     }
     param->max_bit_rate             = avctx->rc_max_rate;
-    if (avctx->bit_rate && avctx->rc_buffer_size)
-        param->maximum_buffer_size_ms = avctx->rc_buffer_size * 1000LL / 
avctx->bit_rate;
+    if ((avctx->bit_rate > 0 || avctx->rc_max_rate > 0) && 
avctx->rc_buffer_size)
+        param->maximum_buffer_size_ms =
+            avctx->rc_buffer_size * 1000LL /
+            FFMAX(avctx->bit_rate, avctx->rc_max_rate);
 
     if (svt_enc->crf > 0) {
         param->qp                   = svt_enc->crf;
@@ -297,7 +299,8 @@ 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->maximum_buffer_size_ms * avctx->bit_rate / 
1000LL;
+    avctx->rc_buffer_size = param->maximum_buffer_size_ms *
+                            FFMAX(avctx->bit_rate, avctx->rc_max_rate) / 
1000LL;
 
     if (avctx->bit_rate || avctx->rc_max_rate || avctx->rc_buffer_size) {
         AVCPBProperties *cpb_props = ff_add_cpb_side_data(avctx);
-- 
2.41.0

Reply via email to