forked from jengelh/ffmpeg-5
Accepting request 1124867 from home:iznogood:factory
- Update to version 5.1.4: * Updates and bugfixes to avcodecs, avformat and avfilters mainly. - Drop patches fixed upstream: * 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 * 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch OBS-URL: https://build.opensuse.org/request/show/1124867 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ffmpeg-5?expand=0&rev=74
This commit is contained in:
parent
51222908f8
commit
070008e71c
@ -1,43 +0,0 @@
|
||||
From bea695d54372b66a6b9b136982fc92adb63e4745 Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Degawa <christopher.degawa@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.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 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
|
||||
|
@ -1,77 +0,0 @@
|
||||
From 25cd95a9dc3510c3cc0d7aad6f9d83f6a1078c7e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Denis-Courmont?= <remi@remlab.net>
|
||||
Date: Sun, 16 Jul 2023 18:18:02 +0300
|
||||
Subject: [PATCH] avcodec/x86/mathops: clip constants used with shift
|
||||
instructions within inline assembly
|
||||
|
||||
Fixes assembling with binutil as >= 2.41
|
||||
|
||||
Signed-off-by: James Almer <jamrial@gmail.com>
|
||||
(cherry picked from commit effadce6c756247ea8bae32dc13bb3e6f464f0eb)
|
||||
---
|
||||
libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++---
|
||||
1 file changed, 23 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h
|
||||
index 6298f5ed19..ca7e2dffc1 100644
|
||||
--- a/libavcodec/x86/mathops.h
|
||||
+++ b/libavcodec/x86/mathops.h
|
||||
@@ -35,12 +35,20 @@
|
||||
static av_always_inline av_const int MULL(int a, int b, unsigned shift)
|
||||
{
|
||||
int rt, dummy;
|
||||
+ if (__builtin_constant_p(shift))
|
||||
__asm__ (
|
||||
"imull %3 \n\t"
|
||||
"shrdl %4, %%edx, %%eax \n\t"
|
||||
:"=a"(rt), "=d"(dummy)
|
||||
- :"a"(a), "rm"(b), "ci"((uint8_t)shift)
|
||||
+ :"a"(a), "rm"(b), "i"(shift & 0x1F)
|
||||
);
|
||||
+ else
|
||||
+ __asm__ (
|
||||
+ "imull %3 \n\t"
|
||||
+ "shrdl %4, %%edx, %%eax \n\t"
|
||||
+ :"=a"(rt), "=d"(dummy)
|
||||
+ :"a"(a), "rm"(b), "c"((uint8_t)shift)
|
||||
+ );
|
||||
return rt;
|
||||
}
|
||||
|
||||
@@ -113,19 +121,31 @@ __asm__ volatile(\
|
||||
// avoid +32 for shift optimization (gcc should do that ...)
|
||||
#define NEG_SSR32 NEG_SSR32
|
||||
static inline int32_t NEG_SSR32( int32_t a, int8_t s){
|
||||
+ if (__builtin_constant_p(s))
|
||||
__asm__ ("sarl %1, %0\n\t"
|
||||
: "+r" (a)
|
||||
- : "ic" ((uint8_t)(-s))
|
||||
+ : "i" (-s & 0x1F)
|
||||
);
|
||||
+ else
|
||||
+ __asm__ ("sarl %1, %0\n\t"
|
||||
+ : "+r" (a)
|
||||
+ : "c" ((uint8_t)(-s))
|
||||
+ );
|
||||
return a;
|
||||
}
|
||||
|
||||
#define NEG_USR32 NEG_USR32
|
||||
static inline uint32_t NEG_USR32(uint32_t a, int8_t s){
|
||||
+ if (__builtin_constant_p(s))
|
||||
__asm__ ("shrl %1, %0\n\t"
|
||||
: "+r" (a)
|
||||
- : "ic" ((uint8_t)(-s))
|
||||
+ : "i" (-s & 0x1F)
|
||||
);
|
||||
+ else
|
||||
+ __asm__ ("shrl %1, %0\n\t"
|
||||
+ : "+r" (a)
|
||||
+ : "c" ((uint8_t)(-s))
|
||||
+ );
|
||||
return a;
|
||||
}
|
||||
|
||||
--
|
||||
2.42.0
|
||||
|
@ -1,46 +0,0 @@
|
||||
From 3344d47a88506aba060b5fd2a214cf7785b11483 Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Degawa <christopher.degawa@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.degawa@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
|
||||
|
@ -1,31 +0,0 @@
|
||||
From 8fe2fec45321d1b82f98f9725ad9118cefcfa58d Mon Sep 17 00:00:00 2001
|
||||
From: Christopher Degawa <ccom@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 <ccom@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
|
||||
|
@ -1,46 +0,0 @@
|
||||
From e5b5dd66535f444451e0fee59247b224d866f334 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= <jeebjp@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
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1b113593ff907293be7aed95acdda5e785dd73616d7d4ec90a0f6adbc5a0312e
|
||||
size 10007756
|
@ -1,11 +0,0 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmQgVfwYHGZmbXBlZy1k
|
||||
ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljYntkH/1aN/nVkVPhbalrPdX14VIau
|
||||
aW2OxXleh7AJe9FVjYduJPQZHS5+wm1GTTl5/IHje3sMG54RdkezRIfx/XCeZefd
|
||||
c+P6OPvqpIXvhEHoKABB/hD7bI/+0bkAfUtDDp0Nfv05sag9PPC0XAJfLGlvWTPl
|
||||
Ci8rLbO7VnsOo35+3dRVHgx6N6vNQuKRx5oZVgb3GEo18gjV1zsoDD91cQjR7GeF
|
||||
64Jol7CPAikSnGwi3rxjARTk+V2YqaPM0KY/VR9QlVReIT2CdrRvQtUTvL1WB5mC
|
||||
6nQ3tHDkRk5uEohAT+e9dxAUBxSTQhKHJn8V4pFS1QVBKH4slPqGvTPnKf5vg+8=
|
||||
=Tdc7
|
||||
-----END PGP SIGNATURE-----
|
BIN
ffmpeg-5.1.4.tar.xz
(Stored with Git LFS)
Normal file
BIN
ffmpeg-5.1.4.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
11
ffmpeg-5.1.4.tar.xz.asc
Normal file
11
ffmpeg-5.1.4.tar.xz.asc
Normal file
@ -0,0 +1,11 @@
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iQFMBAABCAA2FiEE/PmG6hXm4pOlZE8QtDIvBNZ2WNgFAmVNbhEYHGZmbXBlZy1k
|
||||
ZXZlbEBmZm1wZWcub3JnAAoJELQyLwTWdljYdNMIAI+dP+nDw3YxOpr4H7ACcmpD
|
||||
mfKku9WKbrp648wqWDeB2jEFEe4F2Wh1hViGBoMs0bZ6ZnZY37SbvOAAGSP5aMNM
|
||||
DTxspAf5VwoBGWRFcx8ljSZImozwfDQuXL2DjxVA71s+7v47b8ww1flGIveIxnJG
|
||||
uFAZ0MUR6CN3NHMAjbpro+pZRam4hSA3UzNCgLF00iqzksOm9WxZqbOL0AJoH+en
|
||||
6wTqH+29BZhfY+zICyZnknYla3PcKxvO73grSY+dlpmleQEE2HIsmu0/b+v6CCeI
|
||||
qXoGEFF5PazrCW4JLuCXDOQmcxLreesCSdCsdHxPg8pU4zj3jQpO2UV6r/YdAE0=
|
||||
=LL3G
|
||||
-----END PGP SIGNATURE-----
|
@ -1,3 +1,16 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Nov 10 11:19:52 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Update to version 5.1.4:
|
||||
* Updates and bugfixes to avcodecs, avformat and avfilters
|
||||
mainly.
|
||||
- Drop patches fixed upstream:
|
||||
* 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
|
||||
* 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 4 07:59:01 UTC 2023 - Manfred Hollstein <manfred.h@gmx.net>
|
||||
|
||||
|
@ -83,7 +83,7 @@
|
||||
%define _major_expected 6
|
||||
|
||||
Name: ffmpeg-5
|
||||
Version: 5.1.3
|
||||
Version: 5.1.4
|
||||
Release: 0
|
||||
Summary: Set of libraries for working with various multimedia formats
|
||||
License: GPL-3.0-or-later
|
||||
@ -109,13 +109,8 @@ Patch4: ffmpeg-4.2-dlopen-fdk_aac.patch
|
||||
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
|
||||
Patch94: 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
|
||||
|
||||
%if %{with amf_sdk}
|
||||
BuildRequires: AMF-devel
|
||||
@ -827,7 +822,7 @@ done
|
||||
%define _name ffmpeg
|
||||
|
||||
Name: ffmpeg-5-mini
|
||||
Version: 5.1.3
|
||||
Version: 5.1.4
|
||||
Release: 0
|
||||
Summary: Set of libraries for working with various multimedia formats
|
||||
License: GPL-3.0-or-later
|
||||
@ -846,7 +841,6 @@ Patch9: ffmpeg-4.4-CVE-2020-22046.patch
|
||||
Patch10: ffmpeg-chromium.patch
|
||||
Patch91: ffmpeg-dlopen-openh264.patch
|
||||
Patch93: soname.diff
|
||||
Patch94: 0001-avcodec-x86-mathops-clip-constants-used-with-shift-i.patch
|
||||
BuildRequires: c_compiler
|
||||
Requires: this-is-only-for-build-envs
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user