gnu: ffmpeg: Fix builds.

* gnu/packages/patches/ffmpeg-remove-compressed_ten_bit_format.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/video.scm (ffmpeg-4): Use it.
(ffmpeg-3.4, ffmpeg-2.8): Use ffmpeg-4-binutils-2.41.patch.

Change-Id: Idaf1d80f33530ba6d8c3c60b284dc08e522ec220
This commit is contained in:
Josselin Poiret 2024-01-30 10:56:58 +01:00 committed by Ludovic Courtès
parent 7b10ca6fe2
commit c033fb8146
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
3 changed files with 52 additions and 4 deletions

View file

@ -1237,6 +1237,7 @@ dist_patch_DATA = \
%D%/packages/patches/ffmpeg-jami-pipewiregrab-source-filter.patch \
%D%/packages/patches/ffmpeg-jami-remove-mjpeg-log.patch \
%D%/packages/patches/ffmpeg-jami-screen-sharing-x11-fix.patch \
%D%/packages/patches/ffmpeg-remove-compressed_ten_bit_format.patch \
%D%/packages/patches/ffmpeg-4-binutils-2.41.patch \
%D%/packages/patches/fifengine-boost-compat.patch \
%D%/packages/patches/fifengine-python-3.9-compat.patch \

View file

@ -0,0 +1,43 @@
From 031f1561cd286596cdb374da32f8aa816ce3b135 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] 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 2f5634cee0241..28da206cf8512 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));

View file

@ -1895,7 +1895,8 @@ (define-public ffmpeg-4
(sha256
(base32
"14xadxm1yaamp216nq09xwasxg5g133v86dbb33mdg5di1zrlhdg"))
(patches (search-patches "ffmpeg-4-binutils-2.41.patch"))))
(patches (search-patches "ffmpeg-remove-compressed_ten_bit_format.patch"
"ffmpeg-4-binutils-2.41.patch"))))
(inputs (modify-inputs (package-inputs ffmpeg)
(replace "sdl2" sdl2-2.0)))
(arguments
@ -1913,7 +1914,8 @@ (define-public ffmpeg-3.4
version ".tar.xz"))
(sha256
(base32
"0np0yalqdrm7rn7iykgfzz3ly4vbgigrajg48c1l6n7qrzqvfszv"))))
"0np0yalqdrm7rn7iykgfzz3ly4vbgigrajg48c1l6n7qrzqvfszv"))
(patches (search-patches "ffmpeg-4-binutils-2.41.patch"))))
(arguments
(substitute-keyword-arguments (package-arguments ffmpeg-4)
((#:modules modules %default-gnu-modules)
@ -1924,7 +1926,8 @@ (define-public ffmpeg-3.4
'("--enable-libdav1d"
"--enable-libaom"
"--enable-librav1e"
"--enable-libsrt")))))
"--enable-libsrt"
"--enable-libsvtav1")))))
(inputs (modify-inputs (package-inputs ffmpeg-4)
(delete "dav1d" "libaom" "rav1e" "srt")))))
@ -1938,7 +1941,8 @@ (define-public ffmpeg-2.8
version ".tar.xz"))
(sha256
(base32
"0c8m4hhv2k5fybha908wzrpnf3wqkq52hayl658jq4bah0igdfqz"))))
"0c8m4hhv2k5fybha908wzrpnf3wqkq52hayl658jq4bah0igdfqz"))
(patches (search-patches "ffmpeg-4-binutils-2.41.patch"))))
(arguments
`(#:tests? #f ; XXX: Enable them later, if required
#:configure-flags