summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosselin Poiret <dev@jpoiret.xyz>2024-01-30 10:56:58 +0100
committerJosselin Poiret <dev@jpoiret.xyz>2024-02-12 10:39:11 +0100
commit1335166bec7ac61764874f8ed71a085e421debef (patch)
treeed1150c6b0a70a43b67cb63b4aef1559a08011cc
parentd640c211046855b5da3fbbc6e8467c0b7f3c73ab (diff)
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
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/ffmpeg-remove-compressed_ten_bit_format.patch43
-rw-r--r--gnu/packages/video.scm12
3 files changed, 52 insertions, 4 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 62368f3511..a4bf4349a2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1190,6 +1190,7 @@ dist_patch_DATA = \
%D%/packages/patches/ffmpeg-jami-libopusenc-reload-packet-loss-at-encode.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 \
diff --git a/gnu/packages/patches/ffmpeg-remove-compressed_ten_bit_format.patch b/gnu/packages/patches/ffmpeg-remove-compressed_ten_bit_format.patch
new file mode 100644
index 0000000000..3eac98d1f9
--- /dev/null
+++ b/gnu/packages/patches/ffmpeg-remove-compressed_ten_bit_format.patch
@@ -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));
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index c70646eccd..eb51be9f11 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1890,7 +1890,8 @@ audio/video codec library.")
(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
@@ -1908,7 +1909,8 @@ audio/video codec library.")
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)
@@ -1919,7 +1921,8 @@ audio/video codec library.")
'("--enable-libdav1d"
"--enable-libaom"
"--enable-librav1e"
- "--enable-libsrt")))))
+ "--enable-libsrt"
+ "--enable-libsvtav1")))))
(inputs (modify-inputs (package-inputs ffmpeg-4)
(delete "dav1d" "libaom" "rav1e" "srt")))))
@@ -1933,7 +1936,8 @@ audio/video codec library.")
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