* [PR PATCH] ffmpeg: meta pkg
@ 2025-01-07 15:45 zlice
2025-01-07 15:48 ` [PR PATCH] [Updated] " zlice
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: zlice @ 2025-01-07 15:45 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 978 bytes --]
There is a new pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 50393 bytes --]
From c76d60dcc61be99a05d3fd2bd77018deaafa81aa Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ---
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 229 +-----------------
6 files changed, 3 insertions(+), 445 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..eccd2d61fd915f 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,15 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
-homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
-
-libavcodec_package() {
- short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
-}
-
-libavdevice_package() {
- short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
-}
-
-libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
-}
-
-libavformat_package() {
- short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
-}
-
-libavutil_package() {
- short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
-}
-
-libavfilter_package() {
- short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
-}
-
-libpostproc_package() {
- short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
-}
-
-libswscale_package() {
- short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
-}
-
-libswresample_package() {
- short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
-}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From f40873eda69108890f98a14f0736274e3befe85d Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index cc76cbdd35cd7c..9f54a4b560320a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From 3f18d38d78dc7b303bcf0026554743a281725cfe Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From 27463c250ed3d1ccdaa5644f80317714dd2829bc Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From d15eca0597b8a6853cdf4dcae9ee467fc62b4b48 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From e5610abcaf0a8afe6d10d3699661d0dde458cc4c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From d70cdbd340845c60988f11cc5fa11ddcc97b8e2a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From ba2dbc51d9a4903e3116851fbced1439f408a847 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
@ 2025-01-07 15:48 ` zlice
2025-01-07 15:51 ` zlice
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-07 15:48 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 50420 bytes --]
From e34ee7878a53088d1d2749152e6d61fc8789d087 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ---
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 230 +-----------------
6 files changed, 5 insertions(+), 444 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..3596fd673c882e 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,18 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
+version=6.1.2
+revision=3
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
-
-libavcodec_package() {
- short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
-}
-
-libavdevice_package() {
- short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
-}
-
-libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
-}
-
-libavformat_package() {
- short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
-}
-
-libavutil_package() {
- short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
-}
-
-libavfilter_package() {
- short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
-}
-
-libpostproc_package() {
- short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
-}
-
-libswscale_package() {
- short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
-}
-
-libswresample_package() {
- short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
-}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From 184c8ae99a469243ce23b1a556978c29a18b4174 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index cc76cbdd35cd7c..9f54a4b560320a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From 460fbc5f0729d904533edc4d0be4403d614b54b3 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From e509d837a74004bbebcf2b4a7062bd8a1410ebf9 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From c2510a7c31ee55d9eb361034a960440001d54cf1 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From c3e5904f148097a10a0abe1cbad104c4275e7ef0 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From a44a54b2e3b6ff165fdc75d741e6e6fbc1d2f957 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From d24bfbe8c3dbefa6de78997508bd2d64aaabfb2a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
2025-01-07 15:48 ` [PR PATCH] [Updated] " zlice
@ 2025-01-07 15:51 ` zlice
2025-01-07 16:30 ` [PR PATCH] [Updated] " zlice
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-07 15:51 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 198 bytes --]
New comment by zlice on void-packages repository
https://github.com/void-linux/void-packages/pull/53878#issuecomment-2575633263
Comment:
is the linter right about the `ffmpeg` meta bump revision?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
2025-01-07 15:48 ` [PR PATCH] [Updated] " zlice
2025-01-07 15:51 ` zlice
@ 2025-01-07 16:30 ` zlice
2025-01-07 17:07 ` zlice
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-07 16:30 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 51276 bytes --]
From fb05f3edd39f9a9f3761405c8f5abdf51a896eca Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ---
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 230 +++---------------
6 files changed, 33 insertions(+), 416 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..5722e73b8129a8 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,74 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
+version=6.1.2
+revision=3
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
libavcodec_package() {
- short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
+ short_desc="FFmpeg codec library"
+ build_style="meta"
+ depends="libavcodec6"
}
libavdevice_package() {
- short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
+ short_desc="FFmpeg device handling library"
+ build_style="meta"
+ depends="libavdevice6"
}
libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
+ short_desc="Package deprecated, removal needed"
+ build_style="meta"
+ depends="libavresample6"
+ build_style=meta
}
libavformat_package() {
- short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
+ short_desc="FFmpeg file format library"
+ build_style="meta"
+ depends="libavformat6"
}
libavutil_package() {
- short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
+ short_desc="FFmpeg utility library"
+ build_style="meta"
+ depends="libavutil6"
}
libavfilter_package() {
- short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
+ short_desc="FFmpeg audio/video filter library"
+ build_style="meta"
+ depends="libavfilter6"
}
libpostproc_package() {
- short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
+ short_desc="FFmpeg video postprocessing library"
+ build_style="meta"
+ depends="libpostproc6"
}
libswscale_package() {
- short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
+ short_desc="FFmpeg video scaling library"
+ build_style="meta"
+ depends="libswscale6"
}
libswresample_package() {
- short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
+ short_desc="FFmpeg video resampling library"
+ build_style="meta"
+ depends="libswresample6"
}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From c43bc069a48f68e8d20e56ee41cf32a959244d21 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index cc76cbdd35cd7c..9f54a4b560320a 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From dd47f203fe47d5cb0477d3d9c4f2d71dfde11aad Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From ef1c924a2b79498aa9448f252f88a0ee2951fba1 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From 4a4509043fffafcbc93a9de3fe7bd9a1d453865b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From 5da2d7a6caf44de35810ff769b6b4b8cdcfb3bc5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From 286a2ee5ad0a543fce6e44bbfebf32dd5ca7240f Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From 27f69a870dab042647c59565d5e73142cdfb4793 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
` (2 preceding siblings ...)
2025-01-07 16:30 ` [PR PATCH] [Updated] " zlice
@ 2025-01-07 17:07 ` zlice
2025-01-13 22:28 ` [PR PATCH] [Updated] " zlice
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-07 17:07 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 268 bytes --]
New comment by zlice on void-packages repository
https://github.com/void-linux/void-packages/pull/53878#issuecomment-2575816039
Comment:
`Failed to install 'ffmpeg-devel' and 'mlt-devel-6.26.1_3'`
this package has been removed. assume the ci stuff needs updated?
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
` (3 preceding siblings ...)
2025-01-07 17:07 ` zlice
@ 2025-01-13 22:28 ` zlice
2025-01-13 22:31 ` zlice
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-13 22:28 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 51276 bytes --]
From ae5e374baf9317a9505eb411884cb7fba3308a09 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ---
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 230 +++---------------
6 files changed, 33 insertions(+), 416 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..5722e73b8129a8 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,74 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
+version=6.1.2
+revision=3
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
libavcodec_package() {
- short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
+ short_desc="FFmpeg codec library"
+ build_style="meta"
+ depends="libavcodec6"
}
libavdevice_package() {
- short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
+ short_desc="FFmpeg device handling library"
+ build_style="meta"
+ depends="libavdevice6"
}
libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
+ short_desc="Package deprecated, removal needed"
+ build_style="meta"
+ depends="libavresample6"
+ build_style=meta
}
libavformat_package() {
- short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
+ short_desc="FFmpeg file format library"
+ build_style="meta"
+ depends="libavformat6"
}
libavutil_package() {
- short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
+ short_desc="FFmpeg utility library"
+ build_style="meta"
+ depends="libavutil6"
}
libavfilter_package() {
- short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
+ short_desc="FFmpeg audio/video filter library"
+ build_style="meta"
+ depends="libavfilter6"
}
libpostproc_package() {
- short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
+ short_desc="FFmpeg video postprocessing library"
+ build_style="meta"
+ depends="libpostproc6"
}
libswscale_package() {
- short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
+ short_desc="FFmpeg video scaling library"
+ build_style="meta"
+ depends="libswscale6"
}
libswresample_package() {
- short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
+ short_desc="FFmpeg video resampling library"
+ build_style="meta"
+ depends="libswresample6"
}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From 4a5ec7bcc8547ba9e9518ebfb6793b1636fd5731 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index e0bba1a4f23171..fd8effbe78e083 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From 1a13e9d96d539e1831e0fa176f3d3c81f3dec602 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From 8bf1b93a2ea7c1f47fecd25901ea0026b7ce019f Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From d57c57b584713f6a4c04ae3a59accc2a951e1ee5 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From dcc1c7a6df588b3ed65ef0d92ff3afc4ac30c950 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From 8a708fb17dc67a73898e8ffb2c69607f450138b2 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From 5bd17c5c52fd4c94df64388ea33c7a676281c239 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
` (4 preceding siblings ...)
2025-01-13 22:28 ` [PR PATCH] [Updated] " zlice
@ 2025-01-13 22:31 ` zlice
2025-01-13 22:34 ` zlice
2025-01-13 22:36 ` zlice
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-13 22:31 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 51238 bytes --]
From fa1aff3023f63013d74faab823a36069c3166d10 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ---
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 229 +++---------------
6 files changed, 32 insertions(+), 416 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..de64abd9444a94 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,73 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
+version=6.1.2
+revision=3
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
libavcodec_package() {
short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
+ build_style="meta"
+ depends="libavcodec6"
}
libavdevice_package() {
- short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
+ short_desc="FFmpeg device handling library"
+ build_style="meta"
+ depends="libavdevice6"
}
libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
+ short_desc="Package deprecated, removal needed"
+ build_style="meta"
+ depends="libavresample6"
+ build_style=meta
}
libavformat_package() {
- short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
+ short_desc="FFmpeg file format library"
+ build_style="meta"
+ depends="libavformat6"
}
libavutil_package() {
- short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
+ short_desc="FFmpeg utility library"
+ build_style="meta"
+ depends="libavutil6"
}
libavfilter_package() {
- short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
+ short_desc="FFmpeg audio/video filter library"
+ build_style="meta"
+ depends="libavfilter6"
}
libpostproc_package() {
- short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
+ short_desc="FFmpeg video postprocessing library"
+ build_style="meta"
+ depends="libpostproc6"
}
libswscale_package() {
- short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
+ short_desc="FFmpeg video scaling library"
+ build_style="meta"
+ depends="libswscale6"
}
libswresample_package() {
- short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
+ short_desc="FFmpeg video resampling library"
+ build_style="meta"
+ depends="libswresample6"
}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From 7cc47e3abc3a8f9a96358a194bc37bf150002790 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index e0bba1a4f23171..fd8effbe78e083 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From 17045f063275721235d272acfd65a7748b0e571c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From 4b8bc67dc3d3a5073ad20027c371fa1e87ce3ff9 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From 641184eb54ed42575345b25706af95aaee87d3de Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From 5579f1ace4b4a273e7ae7566801b164957f00d72 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From 1a56dc3afee0ee6052d34745cfc48d0ceec56335 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From b9644bc1f22c94d9c043b387b6c0aad0ecdc907b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
` (5 preceding siblings ...)
2025-01-13 22:31 ` zlice
@ 2025-01-13 22:34 ` zlice
2025-01-13 22:36 ` zlice
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-13 22:34 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 50906 bytes --]
From a3dd4733a6b3c7b34558246cd460d1afeda0af3a Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ----
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 215 ++----------------
6 files changed, 25 insertions(+), 409 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..763afbe9e1aad4 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,73 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
+version=6.1.2
+revision=3
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
libavcodec_package() {
short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
+ build_style="meta"
+ depends="libavcodec6"
}
libavdevice_package() {
short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
+ build_style="meta"
+ depends="libavdevice6"
}
libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
+ short_desc="Package deprecated, removal needed"
+ build_style="meta"
+ depends="libavresample6"
+ build_style=meta
}
libavformat_package() {
short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
+ build_style="meta"
+ depends="libavformat6"
}
libavutil_package() {
short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
+ build_style="meta"
+ depends="libavutil6"
}
libavfilter_package() {
short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
+ build_style="meta"
+ depends="libavfilter6"
}
libpostproc_package() {
short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
+ build_style="meta"
+ depends="libpostproc6"
}
libswscale_package() {
short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
+ build_style="meta"
+ depends="libswscale6"
}
libswresample_package() {
short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
+ build_style="meta"
+ depends="libswresample6"
}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From 031b18f1d99f0f1da13ab4fb44451fb31bb5e707 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index e0bba1a4f23171..fd8effbe78e083 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From ef4a5748231547cf93e522e347eaa6d11489713c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From 8b56709f20d3e5a8c8e1a086c08e80030e847f01 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From cd218ba1748591541e59f6b3900f0426d0b0dc0d Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From 59c8e2a1c781592c917d843ad78b4833765eca2f Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From 359fde36c50fc9c8888ea3e8a22b7aca7c4ba340 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From 7bf993f5ac2633957196622ae748510c3de1b622 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PR PATCH] [Updated] ffmpeg: meta pkg
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
` (6 preceding siblings ...)
2025-01-13 22:34 ` zlice
@ 2025-01-13 22:36 ` zlice
7 siblings, 0 replies; 9+ messages in thread
From: zlice @ 2025-01-13 22:36 UTC (permalink / raw)
To: ml
[-- Attachment #1: Type: text/plain, Size: 983 bytes --]
There is an updated pull request by zlice against master on the void-packages repository
https://github.com/zlice/void-packages ffmpeg-meta
https://github.com/void-linux/void-packages/pull/53878
ffmpeg: meta pkg
#### Local build testing
- I built this PR locally for my native architecture, **x86_64**
built vlc
#### Comments
- ffmpeg4: rev bump down to 1 ???
- ffmpeg4: remove ffplay4
- ffmpeg6: revbump needed?
- anything needed for `ffmpeg` since it changed to meta?
skipped audacity - no need, waiting on ffmpeg6 bump since september, ~8 PRs
didn't chroot and try weird different combos of updates with/without 4, 6, etc
### related issues/PRs
4 -> 6 issue tracker - https://github.com/void-linux/void-packages/issues/51522
ffmpeg7 - https://github.com/void-linux/void-packages/pull/53844
audacity - https://github.com/void-linux/void-packages/pull/52375
A patch file from https://github.com/void-linux/void-packages/pull/53878.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-ffmpeg-meta-53878.patch --]
[-- Type: text/x-diff, Size: 50905 bytes --]
From e3ea21f73666e9a006f5797e8f81ea3f941d0c25 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:16:41 -0500
Subject: [PATCH 1/8] ffmpeg: meta package for ffmpeg6
---
srcpkgs/ffmpeg/files/altivec.patch | 60 -----
.../patches/armv5tel-floating-point.patch | 18 --
srcpkgs/ffmpeg/patches/binutils-2.41.patch | 73 ------
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 ----
.../workaround-mesa-readeon-vaapi-bug.patch | 28 ---
srcpkgs/ffmpeg/template | 215 ++----------------
6 files changed, 25 insertions(+), 409 deletions(-)
delete mode 100644 srcpkgs/ffmpeg/files/altivec.patch
delete mode 100644 srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
delete mode 100644 srcpkgs/ffmpeg/patches/binutils-2.41.patch
delete mode 100644 srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
delete mode 100644 srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
diff --git a/srcpkgs/ffmpeg/files/altivec.patch b/srcpkgs/ffmpeg/files/altivec.patch
deleted file mode 100644
index 9c57200463320e..00000000000000
--- a/srcpkgs/ffmpeg/files/altivec.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-revert some altivec specific change on all ppc* except ppc64le*
-
-q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
-conditionally, for ppc* but not ppc64le* (the new code is valid for
-POWER8 VSX which LE targets as a baseline but not BE)"
-
-
-This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
----
- libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
- 1 file changed, 20 insertions(+), 4 deletions(-)
-
-diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
-index 536545293d..c1e2852adb 100644
---- a/libswscale/ppc/yuv2rgb_altivec.c
-+++ b/libswscale/ppc/yuv2rgb_altivec.c
-@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vector signed short R1, G1, B1; \
- vector unsigned char R, G, B; \
- \
-+ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
-+ vector unsigned char align_perm; \
-+ \
- vector signed short lCY = c->CY; \
- vector signed short lOY = c->OY; \
- vector signed short lCRV = c->CRV; \
-@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
- vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
- \
- for (j = 0; j < w / 16; j++) { \
-- y0 = vec_xl(0, y1i); \
-+ y1ivP = (const vector unsigned char *) y1i; \
-+ y2ivP = (const vector unsigned char *) y2i; \
-+ uivP = (const vector unsigned char *) ui; \
-+ vivP = (const vector unsigned char *) vi; \
-+ \
-+ align_perm = vec_lvsl(0, y1i); \
-+ y0 = (vector unsigned char) \
-+ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
- \
-- y1 = vec_xl(0, y2i); \
-+ align_perm = vec_lvsl(0, y2i); \
-+ y1 = (vector unsigned char) \
-+ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
- \
-- u = (vector signed char) vec_xl(0, ui); \
-+ align_perm = vec_lvsl(0, ui); \
-+ u = (vector signed char) \
-+ vec_perm(uivP[0], uivP[1], align_perm); \
- \
-- v = (vector signed char) vec_xl(0, vi); \
-+ align_perm = vec_lvsl(0, vi); \
-+ v = (vector signed char) \
-+ vec_perm(vivP[0], vivP[1], align_perm); \
- \
- u = (vector signed char) \
- vec_sub(u, \
---
-2.27.0
-
diff --git a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
deleted file mode 100644
index 9a55178c74f0fd..00000000000000
--- a/srcpkgs/ffmpeg/patches/armv5tel-floating-point.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
-+++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
-@@ -39,6 +39,15 @@
- #endif
- #include <fenv.h>
-
-+#if (FE_ALL_EXCEPT == 0)
-+/* E.g. ARM soft float does not define these */
-+#define FE_INVALID 0
-+#define FE_DIVBYZERO 0
-+#define FE_OVERFLOW 0
-+#define FE_UNDERFLOW 0
-+#define FE_INEXACT 0
-+#endif
-+
- #if CONFIG_LIBFONTCONFIG
- #include <fontconfig/fontconfig.h>
- #endif
diff --git a/srcpkgs/ffmpeg/patches/binutils-2.41.patch b/srcpkgs/ffmpeg/patches/binutils-2.41.patch
deleted file mode 100644
index 53a596d0ee7d4e..00000000000000
--- a/srcpkgs/ffmpeg/patches/binutils-2.41.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
----
- 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 6298f5ed1983b..ca7e2dffc1076 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;
- }
-
diff --git a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
deleted file mode 100644
index aa948f7a8a2dfb..00000000000000
--- a/srcpkgs/ffmpeg/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
+++ /dev/null
@@ -1,40 +0,0 @@
-#==================================================================================================
-# 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>
-#==================================================================================================
---- 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));
---
-GitLab
-
diff --git a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
deleted file mode 100644
index 00e3f68a415b84..00000000000000
--- a/srcpkgs/ffmpeg/patches/workaround-mesa-readeon-vaapi-bug.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
-From: Rainer Hochecker <fernetmenta@online.de>
-Date: Sat, 26 Jan 2019 19:48:35 +0100
-Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
-
-This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
-It was hit frequently when watching h264 channels received via DVB-X.
-Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
----
- libavcodec/vaapi_h264.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
-index 5854587a255..f12fdc457a4 100644
---- a/libavcodec/vaapi_h264.c
-+++ b/libavcodec/vaapi_h264.c
-@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
- H264SliceContext *sl = &h->slice_ctx[0];
- int ret;
-
-+ if (pic->nb_slices == 0) {
-+ ret = AVERROR_INVALIDDATA;
-+ goto finish;
-+ }
-+
- ret = ff_vaapi_decode_issue(avctx, pic);
- if (ret < 0)
- goto finish;
diff --git a/srcpkgs/ffmpeg/template b/srcpkgs/ffmpeg/template
index 6b36bcfc98137f..b1788dc758153a 100644
--- a/srcpkgs/ffmpeg/template
+++ b/srcpkgs/ffmpeg/template
@@ -1,238 +1,73 @@
# Template file for 'ffmpeg'
-# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
pkgname=ffmpeg
-version=4.4.4
-revision=10
+version=6.1.2
+revision=3
build_style=meta
+depends="ffmpeg6"
short_desc="Decoding, encoding and streaming software (transitional dummy package)"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
homepage="https://www.ffmpeg.org"
-changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
-distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
-checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
-
-hostmakedepends="pkg-config perl"
-makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
- libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
- libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
- libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
- speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
- libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
- $(vopt_if pulseaudio pulseaudio-devel)
- $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
- $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
- $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
- $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
- $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
- $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
- $(vopt_if drm libdrm-devel) libsvt-av1-devel
- $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
- $(vopt_if vulkan 'vulkan-loader-devel')
- $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
-# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
-depends="ffmpeg6"
-
-build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
- dav1d zimg webp sofa vulkan drm srt rist nvdec"
-build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
-
-desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
-desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
-desc_option_sofa="Enable support for AES SOFA"
-desc_option_webp="Enable support for WebP"
-
-case "$XBPS_TARGET_MACHINE" in
- i686*|x86_64*)
- hostmakedepends+=" nasm"
- build_options_default+=" vaapi vdpau nvenc nvdec"
- ;;
- ppc64*) build_options_default+=" vaapi vdpau";;
- mips*) CFLAGS="-mnan=legacy";;
-esac
-
-_apply_patch() {
- local args="$1" pname="$(basename $2)"
-
- if [ ! -f ".${pname}_done" ]; then
- patch -N $args -i $2
- touch .${pname}_done
- fi
-}
-
-post_patch() {
- case "$XBPS_TARGET_MACHINE" in
- ppc64le*) ;;
- ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
- esac
-
- vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
-}
-
-do_configure() {
- # Fix gcc on x86_64-musl only
- if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
- vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
- fi
-
- if [ "$CROSS_BUILD" ]; then
- case "$XBPS_TARGET_MACHINE" in
- arm*) _arch="arm";;
- aarch64*) _arch="aarch64";;
- mips*) _arch="mips";;
- ppc64*) _arch="ppc64";;
- ppc*) _arch="ppc";;
- *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
- esac
-
- _args+=" --enable-cross-compile
- --sysroot=$XBPS_CROSS_BASE
- --cross-prefix=${XBPS_CROSS_TRIPLET}-
- --target-os=linux --arch=${_arch}"
- fi
-
- case "$XBPS_TARGET_MACHINE" in
- ppc|ppc-musl) _args+=" --disable-altivec";;
- esac
-
- if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
- _args+=" --extra-libs=-latomic"
- fi
-
- ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
- --disable-stripping \
- --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
- --enable-libmp3lame --enable-libvorbis --enable-libxvid \
- --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
- --enable-shared --enable-static --enable-libxcb \
- $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
- --enable-libspeex --enable-libcelt --enable-libass \
- --enable-libopus --enable-librtmp --enable-libjack \
- $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
- --disable-libopencore_amrnb --disable-libopencore_amrwb \
- --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
- --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
- $(vopt_enable x265 libx265) \
- $(vopt_enable v4l2 libv4l2) \
- $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
- --enable-libbs2b --enable-avresample --enable-libvidstab \
- $(vopt_enable dav1d libdav1d) \
- $(vopt_enable zimg libzimg) \
- $(vopt_enable webp libwebp) \
- $(vopt_enable sofa libmysofa) \
- $(vopt_enable vulkan) \
- $(vopt_enable drm libdrm) \
- $(vopt_enable srt libsrt) \
- $(vopt_enable rist librist) \
- $(vopt_if nvenc '--enable-nvenc') \
- $(vopt_if nvdec '--enable-nvdec')
-}
-
-do_build() {
- make ${makejobs}
-}
-
-# transitional dummy package for ffmpeg6
-# binaries conflict with 6
-do_install() {
- make DESTDIR=${DESTDIR} install
- rm -rf ${DESTDIR}/usr/bin
- rm -rf ${DESTDIR}/usr/share/man/man1
- rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
- rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
-}
libavcodec_package() {
short_desc="FFmpeg codec library"
- pkg_install() {
- vmove "usr/lib/libavcodec.so.*"
- }
+ build_style="meta"
+ depends="libavcodec6"
}
libavdevice_package() {
short_desc="FFmpeg device handling library"
- pkg_install() {
- vmove "usr/lib/libavdevice.so.*"
- }
+ build_style="meta"
+ depends="libavdevice6"
}
libavresample_package() {
- short_desc="FFmpeg audio resampling library"
- pkg_install() {
- vmove "usr/lib/libavresample.so.*"
- }
+ short_desc="Package deprecated, removal needed"
+ build_style="meta"
+ depends="libavresample6"
+ build_style=meta
}
libavformat_package() {
short_desc="FFmpeg file format library"
- pkg_install() {
- vmove "usr/lib/libavformat.so.*"
- }
+ build_style="meta"
+ depends="libavformat6"
}
libavutil_package() {
short_desc="FFmpeg utility library"
- pkg_install() {
- vmove "usr/lib/libavutil.so.*"
- }
+ build_style="meta"
+ depends="libavutil6"
}
libavfilter_package() {
short_desc="FFmpeg audio/video filter library"
- pkg_install() {
- vmove "usr/lib/libavfilter.so.*"
- }
+ build_style="meta"
+ depends="libavfilter6"
}
libpostproc_package() {
short_desc="FFmpeg video postprocessing library"
- pkg_install() {
- vmove "usr/lib/libpostproc.so.*"
- }
+ build_style="meta"
+ depends="libpostproc6"
}
libswscale_package() {
short_desc="FFmpeg video scaling library"
- pkg_install() {
- vmove "usr/lib/libswscale.so.*"
- }
+ build_style="meta"
+ depends="libswscale6"
}
libswresample_package() {
short_desc="FFmpeg video resampling library"
- pkg_install() {
- vmove "usr/lib/libswresample.so.*"
- }
+ build_style="meta"
+ depends="libswresample6"
}
ffmpeg-devel_package() {
- depends="
- libavcodec>=${version}_${revision}
- libavdevice>=${version}_${revision}
- libavformat>=${version}_${revision}
- libavutil>=${version}_${revision}
- libavfilter>=${version}_${revision}
- libpostproc>=${version}_${revision}
- libswscale>=${version}_${revision}
- libswresample>=${version}_${revision}
- libavresample>=${version}_${revision}"
+ depends="ffmpeg6-devel"
+ build_style="meta"
short_desc="Decoding, encoding and streaming software - development files"
- conflicts="ffmpeg6-devel"
- replaces="ffmpeg6-devel>=0"
- case "$XBPS_TARGET_MACHINE" in
- i686*)
- # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
- nostrip_files="/usr/lib/libavfilter.a";;
- esac
-
- pkg_install() {
- vmove usr/include
- vmove usr/lib/pkgconfig
- vmove "usr/lib/*.a"
- vmove "usr/lib/*.so"
- vmove usr/share/ffmpeg/examples
- vmove usr/share/man/man3
- }
}
ffplay_package() {
From 819000e18cc4ce4cbf3d1c490ae018f5086d4625 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:20:16 -0500
Subject: [PATCH 2/8] ffmpeg4: New package 4.4.0
---
common/shlibs | 18 +-
srcpkgs/ffmpeg4-devel | 1 +
srcpkgs/ffmpeg4/files/altivec.patch | 60 +++++
.../patches/armv5tel-floating-point.patch | 18 ++
srcpkgs/ffmpeg4/patches/binutils-2.41.patch | 73 ++++++
...h-libavcodec-libsvtav1-ten_bit_format.diff | 40 +++
.../workaround-mesa-readeon-vaapi-bug.patch | 28 +++
srcpkgs/ffmpeg4/template | 236 ++++++++++++++++++
srcpkgs/libavcodec4 | 1 +
srcpkgs/libavdevice4 | 1 +
srcpkgs/libavfilter4 | 1 +
srcpkgs/libavformat4 | 1 +
srcpkgs/libavresample4 | 1 +
srcpkgs/libavutil4 | 1 +
srcpkgs/libpostproc4 | 1 +
srcpkgs/libswresample4 | 1 +
srcpkgs/libswscale4 | 1 +
17 files changed, 474 insertions(+), 9 deletions(-)
create mode 120000 srcpkgs/ffmpeg4-devel
create mode 100644 srcpkgs/ffmpeg4/files/altivec.patch
create mode 100644 srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
create mode 100644 srcpkgs/ffmpeg4/patches/binutils-2.41.patch
create mode 100644 srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
create mode 100644 srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
create mode 100644 srcpkgs/ffmpeg4/template
create mode 120000 srcpkgs/libavcodec4
create mode 120000 srcpkgs/libavdevice4
create mode 120000 srcpkgs/libavfilter4
create mode 120000 srcpkgs/libavformat4
create mode 120000 srcpkgs/libavresample4
create mode 120000 srcpkgs/libavutil4
create mode 120000 srcpkgs/libpostproc4
create mode 120000 srcpkgs/libswresample4
create mode 120000 srcpkgs/libswscale4
diff --git a/common/shlibs b/common/shlibs
index e0bba1a4f23171..fd8effbe78e083 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -402,15 +402,15 @@ libavutil.so.58 libavutil6-6.0_1
libavfilter.so.9 libavfilter6-6.0_1
libdispatch.so libdispatch-5.10.1_1
libBlocksRuntime.so libdispatch-5.10.1_1
-libavdevice.so.58 libavdevice-4.0_1
-libavformat.so.58 libavformat-4.0_1
-libswscale.so.5 libswscale-4.0_1
-libswresample.so.3 libswresample-4.0_1
-libavresample.so.4 libavresample-4.0_1
-libpostproc.so.55 libpostproc-4.0_1
-libavcodec.so.58 libavcodec-4.0_1
-libavutil.so.56 libavutil-4.0_1
-libavfilter.so.7 libavfilter-4.0_1
+libavdevice.so.58 libavdevice4-4.4.4_1
+libavformat.so.58 libavformat4-4.4.4_1
+libswscale.so.5 libswscale4-4.4.4_1
+libswresample.so.3 libswresample4-4.4.4_1
+libavresample.so.4 libavresample4-4.4.4_1
+libpostproc.so.55 libpostproc4-4.4.4_1
+libavcodec.so.58 libavcodec4-4.4.4_1
+libavutil.so.56 libavutil4-4.4.4_1
+libavfilter.so.7 libavfilter4-4.4.4_1
libSDL-1.2.so.0 SDL-1.2.14_1
libSDL_image-1.2.so.0 SDL_image-1.2.10_1
libx264.so.157 x264-20190507.2245_1
diff --git a/srcpkgs/ffmpeg4-devel b/srcpkgs/ffmpeg4-devel
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/ffmpeg4-devel
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/ffmpeg4/files/altivec.patch b/srcpkgs/ffmpeg4/files/altivec.patch
new file mode 100644
index 00000000000000..9c57200463320e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/files/altivec.patch
@@ -0,0 +1,60 @@
+revert some altivec specific change on all ppc* except ppc64le*
+
+q66: "We should also throw in a revert of FFmpeg/FFmpeg@3a557c5 but only
+conditionally, for ppc* but not ppc64le* (the new code is valid for
+POWER8 VSX which LE targets as a baseline but not BE)"
+
+
+This reverts commit 3a557c5d88b7b15b5954ba2743febb055549b536.
+---
+ libswscale/ppc/yuv2rgb_altivec.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c
+index 536545293d..c1e2852adb 100644
+--- a/libswscale/ppc/yuv2rgb_altivec.c
++++ b/libswscale/ppc/yuv2rgb_altivec.c
+@@ -305,6 +305,9 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vector signed short R1, G1, B1; \
+ vector unsigned char R, G, B; \
+ \
++ const vector unsigned char *y1ivP, *y2ivP, *uivP, *vivP; \
++ vector unsigned char align_perm; \
++ \
+ vector signed short lCY = c->CY; \
+ vector signed short lOY = c->OY; \
+ vector signed short lCRV = c->CRV; \
+@@ -335,13 +338,26 @@ static int altivec_ ## name(SwsContext *c, const unsigned char **in, \
+ vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \
+ \
+ for (j = 0; j < w / 16; j++) { \
+- y0 = vec_xl(0, y1i); \
++ y1ivP = (const vector unsigned char *) y1i; \
++ y2ivP = (const vector unsigned char *) y2i; \
++ uivP = (const vector unsigned char *) ui; \
++ vivP = (const vector unsigned char *) vi; \
++ \
++ align_perm = vec_lvsl(0, y1i); \
++ y0 = (vector unsigned char) \
++ vec_perm(y1ivP[0], y1ivP[1], align_perm); \
+ \
+- y1 = vec_xl(0, y2i); \
++ align_perm = vec_lvsl(0, y2i); \
++ y1 = (vector unsigned char) \
++ vec_perm(y2ivP[0], y2ivP[1], align_perm); \
+ \
+- u = (vector signed char) vec_xl(0, ui); \
++ align_perm = vec_lvsl(0, ui); \
++ u = (vector signed char) \
++ vec_perm(uivP[0], uivP[1], align_perm); \
+ \
+- v = (vector signed char) vec_xl(0, vi); \
++ align_perm = vec_lvsl(0, vi); \
++ v = (vector signed char) \
++ vec_perm(vivP[0], vivP[1], align_perm); \
+ \
+ u = (vector signed char) \
+ vec_sub(u, \
+--
+2.27.0
+
diff --git a/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
new file mode 100644
index 00000000000000..9a55178c74f0fd
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/armv5tel-floating-point.patch
@@ -0,0 +1,18 @@
+--- a/libavfilter/vf_drawtext.c 2017-10-26 21:03:03.000000000 +0200
++++ b/libavfilter/vf_drawtext.c 2017-11-21 11:06:49.602284422 +0100
+@@ -39,6 +39,15 @@
+ #endif
+ #include <fenv.h>
+
++#if (FE_ALL_EXCEPT == 0)
++/* E.g. ARM soft float does not define these */
++#define FE_INVALID 0
++#define FE_DIVBYZERO 0
++#define FE_OVERFLOW 0
++#define FE_UNDERFLOW 0
++#define FE_INEXACT 0
++#endif
++
+ #if CONFIG_LIBFONTCONFIG
+ #include <fontconfig/fontconfig.h>
+ #endif
diff --git a/srcpkgs/ffmpeg4/patches/binutils-2.41.patch b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
new file mode 100644
index 00000000000000..53a596d0ee7d4e
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/binutils-2.41.patch
@@ -0,0 +1,73 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb 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>
+---
+ 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 6298f5ed1983b..ca7e2dffc1076 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;
+ }
+
diff --git a/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
new file mode 100644
index 00000000000000..aa948f7a8a2dfb
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/patch-libavcodec-libsvtav1-ten_bit_format.diff
@@ -0,0 +1,40 @@
+#==================================================================================================
+# 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>
+#==================================================================================================
+--- 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));
+--
+GitLab
+
diff --git a/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
new file mode 100644
index 00000000000000..00e3f68a415b84
--- /dev/null
+++ b/srcpkgs/ffmpeg4/patches/workaround-mesa-readeon-vaapi-bug.patch
@@ -0,0 +1,28 @@
+From 811d290844206fc73dc39c3e5b67d5d895baedf8 Mon Sep 17 00:00:00 2001
+From: Rainer Hochecker <fernetmenta@online.de>
+Date: Sat, 26 Jan 2019 19:48:35 +0100
+Subject: [PATCH] avcodec/vaapi_h264: skip decode if pic has no slices
+
+This fixes / workarounds https://bugs.freedesktop.org/show_bug.cgi?id=105368.
+It was hit frequently when watching h264 channels received via DVB-X.
+Corresponding kodi bug: https://github.com/xbmc/xbmc/issues/15704
+---
+ libavcodec/vaapi_h264.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libavcodec/vaapi_h264.c b/libavcodec/vaapi_h264.c
+index 5854587a255..f12fdc457a4 100644
+--- a/libavcodec/vaapi_h264.c
++++ b/libavcodec/vaapi_h264.c
+@@ -317,6 +317,11 @@ static int vaapi_h264_end_frame(AVCodecContext *avctx)
+ H264SliceContext *sl = &h->slice_ctx[0];
+ int ret;
+
++ if (pic->nb_slices == 0) {
++ ret = AVERROR_INVALIDDATA;
++ goto finish;
++ }
++
+ ret = ff_vaapi_decode_issue(avctx, pic);
+ if (ret < 0)
+ goto finish;
diff --git a/srcpkgs/ffmpeg4/template b/srcpkgs/ffmpeg4/template
new file mode 100644
index 00000000000000..daff98523c295b
--- /dev/null
+++ b/srcpkgs/ffmpeg4/template
@@ -0,0 +1,236 @@
+# Template file for 'ffmpeg4'
+# audacity also needs to be bumped when a new ffmpeg version bumps libavformat's soname!
+pkgname=ffmpeg4
+version=4.4.4
+revision=1
+build_style=meta
+short_desc="Decoding, encoding and streaming software (transitional dummy package)"
+maintainer="Orphaned <orphan@voidlinux.org>"
+license="GPL-3.0-or-later"
+homepage="https://www.ffmpeg.org"
+changelog="https://raw.githubusercontent.com/FFmpeg/FFmpeg/master/Changelog"
+distfiles="https://www.ffmpeg.org/releases/ffmpeg-${version}.tar.xz"
+checksum=e80b380d595c809060f66f96a5d849511ef4a76a26b76eacf5778b94c3570309
+
+hostmakedepends="pkg-config perl"
+makedepends="zlib-devel bzip2-devel freetype-devel alsa-lib-devel libXfixes-devel
+ libXext-devel libXvMC-devel libxcb-devel lame-devel libtheora-devel
+ libvorbis-devel x264-devel xvidcore-devel jack-devel SDL2-devel
+ libcdio-paranoia-devel librtmp-devel libmodplug-devel gnutls-devel
+ speex-devel celt-devel harfbuzz-devel libass-devel opus-devel ocl-icd-devel
+ libbs2b-devel libvidstab-devel vmaf-devel libbluray-devel
+ $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if vaapi libva-devel) $(vopt_if vdpau libvdpau-devel)
+ $(vopt_if x265 x265-devel) $(vopt_if v4l2 v4l-utils-devel)
+ $(vopt_if fdk_aac fdk-aac-devel) $(vopt_if vpx libvpx-devel)
+ $(vopt_if aom libaom-devel) $(vopt_if sndio sndio-devel)
+ $(vopt_if dav1d libdav1d-devel) $(vopt_if zimg zimg-devel)
+ $(vopt_if webp libwebp-devel) $(vopt_if sofa libmysofa-devel)
+ $(vopt_if drm libdrm-devel) libsvt-av1-devel
+ $(vopt_if srt srt-devel) $(vopt_if rist librist-devel)
+ $(vopt_if vulkan 'vulkan-loader-devel')
+ $(vopt_if nvenc nv-codec-headers) $(vopt_if nvdec nv-codec-headers)"
+# ffmpeg6 provides ffmpeg, ffprobe, ffplay, etc
+depends="ffmpeg6"
+
+build_options="x265 v4l2 vaapi vdpau vpx fdk_aac aom nvenc sndio pulseaudio
+ dav1d zimg webp sofa vulkan drm srt rist nvdec"
+build_options_default="x265 v4l2 vpx aom sndio pulseaudio dav1d webp vulkan drm srt rist"
+
+desc_option_srt="Enable support for SRT (Secure, Reliable, Transport)"
+desc_option_rist="Enable support for RIST (Reliable Internet Stream Transport)"
+desc_option_sofa="Enable support for AES SOFA"
+desc_option_webp="Enable support for WebP"
+
+case "$XBPS_TARGET_MACHINE" in
+ i686*|x86_64*)
+ hostmakedepends+=" nasm"
+ build_options_default+=" vaapi vdpau nvenc nvdec"
+ ;;
+ ppc64*) build_options_default+=" vaapi vdpau";;
+ mips*) CFLAGS="-mnan=legacy";;
+esac
+
+_apply_patch() {
+ local args="$1" pname="$(basename $2)"
+
+ if [ ! -f ".${pname}_done" ]; then
+ patch -N $args -i $2
+ touch .${pname}_done
+ fi
+}
+
+post_patch() {
+ case "$XBPS_TARGET_MACHINE" in
+ ppc64le*) ;;
+ ppc*) _apply_patch -p1 ${FILESDIR}/altivec.patch ;;
+ esac
+
+ vsed -i libavfilter/vf_libvmaf.c -e 's!/usr/local/share/model/\(vmaf_v0.6.1\).pkl!/usr/share/vmaf/\1.json!'
+}
+
+do_configure() {
+ # Fix gcc on x86_64-musl only
+ if [ "$XBPS_TARGET_MACHINE" = "x86_64-musl" ]; then
+ vsed -i configure -e "s;_cflags_speed='-O3';_cflags_speed='-O2';"
+ fi
+
+ if [ "$CROSS_BUILD" ]; then
+ case "$XBPS_TARGET_MACHINE" in
+ arm*) _arch="arm";;
+ aarch64*) _arch="aarch64";;
+ mips*) _arch="mips";;
+ ppc64*) _arch="ppc64";;
+ ppc*) _arch="ppc";;
+ *) _arch="${XBPS_TARGET_MACHINE%%-musl}";;
+ esac
+
+ _args+=" --enable-cross-compile
+ --sysroot=$XBPS_CROSS_BASE
+ --cross-prefix=${XBPS_CROSS_TRIPLET}-
+ --target-os=linux --arch=${_arch}"
+ fi
+
+ case "$XBPS_TARGET_MACHINE" in
+ ppc|ppc-musl) _args+=" --disable-altivec";;
+ esac
+
+ if [ "$XBPS_TARGET_NO_ATOMIC8" ]; then
+ _args+=" --extra-libs=-latomic"
+ fi
+
+ ./configure --prefix=/usr --disable-debug --enable-gpl --enable-gnutls \
+ --disable-stripping \
+ --enable-libcdio --enable-version3 --enable-runtime-cpudetect \
+ --enable-libmp3lame --enable-libvorbis --enable-libxvid \
+ --enable-libx264 $(vopt_enable vpx libvpx) --enable-libtheora \
+ --enable-shared --enable-static --enable-libxcb \
+ $(vopt_enable pulseaudio libpulse) --enable-libfreetype --enable-libmodplug \
+ --enable-libspeex --enable-libcelt --enable-libass \
+ --enable-libopus --enable-librtmp --enable-libjack \
+ $(vopt_if fdk_aac '--enable-nonfree --enable-libfdk-aac') \
+ --disable-libopencore_amrnb --disable-libopencore_amrwb \
+ --disable-libopenjpeg --enable-libbluray --enable-libsvtav1 \
+ --enable-postproc --enable-opencl --enable-libvmaf ${_args} \
+ $(vopt_enable x265 libx265) \
+ $(vopt_enable v4l2 libv4l2) \
+ $(vopt_enable aom libaom) $(vopt_enable vaapi) $(vopt_enable vdpau) \
+ --enable-libbs2b --enable-avresample --enable-libvidstab \
+ $(vopt_enable dav1d libdav1d) \
+ $(vopt_enable zimg libzimg) \
+ $(vopt_enable webp libwebp) \
+ $(vopt_enable sofa libmysofa) \
+ $(vopt_enable vulkan) \
+ $(vopt_enable drm libdrm) \
+ $(vopt_enable srt libsrt) \
+ $(vopt_enable rist librist) \
+ $(vopt_if nvenc '--enable-nvenc') \
+ $(vopt_if nvdec '--enable-nvdec')
+}
+
+do_build() {
+ make ${makejobs}
+}
+
+# transitional dummy package for ffmpeg6
+# binaries conflict with 6
+do_install() {
+ make DESTDIR=${DESTDIR} install
+ rm -rf ${DESTDIR}/usr/bin
+ rm -rf ${DESTDIR}/usr/share/man/man1
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/ffprobe.xsd
+ rm -rf ${DESTDIR}/usr/share/ffmpeg/libvpx*ffpreset
+}
+
+libavcodec4_package() {
+ short_desc="FFmpeg codec library"
+ pkg_install() {
+ vmove "usr/lib/libavcodec.so.*"
+ }
+}
+
+libavdevice4_package() {
+ short_desc="FFmpeg device handling library"
+ pkg_install() {
+ vmove "usr/lib/libavdevice.so.*"
+ }
+}
+
+libavresample4_package() {
+ short_desc="FFmpeg audio resampling library"
+ pkg_install() {
+ vmove "usr/lib/libavresample.so.*"
+ }
+}
+
+libavformat4_package() {
+ short_desc="FFmpeg file format library"
+ pkg_install() {
+ vmove "usr/lib/libavformat.so.*"
+ }
+}
+
+libavutil4_package() {
+ short_desc="FFmpeg utility library"
+ pkg_install() {
+ vmove "usr/lib/libavutil.so.*"
+ }
+}
+
+libavfilter4_package() {
+ short_desc="FFmpeg audio/video filter library"
+ pkg_install() {
+ vmove "usr/lib/libavfilter.so.*"
+ }
+}
+
+libpostproc4_package() {
+ short_desc="FFmpeg video postprocessing library"
+ pkg_install() {
+ vmove "usr/lib/libpostproc.so.*"
+ }
+}
+
+libswscale4_package() {
+ short_desc="FFmpeg video scaling library"
+ pkg_install() {
+ vmove "usr/lib/libswscale.so.*"
+ }
+}
+
+libswresample4_package() {
+ short_desc="FFmpeg video resampling library"
+ pkg_install() {
+ vmove "usr/lib/libswresample.so.*"
+ }
+}
+
+ffmpeg4-devel_package() {
+ depends="
+ libavcodec4>=${version}_${revision}
+ libavdevice4>=${version}_${revision}
+ libavformat4>=${version}_${revision}
+ libavutil4>=${version}_${revision}
+ libavfilter4>=${version}_${revision}
+ libpostproc4>=${version}_${revision}
+ libswscale4>=${version}_${revision}
+ libswresample4>=${version}_${revision}
+ libavresample4>=${version}_${revision}"
+ short_desc="Decoding, encoding and streaming software - development files"
+ conflicts="ffmpeg6-devel"
+ replaces="ffmpeg6-devel>=0"
+ case "$XBPS_TARGET_MACHINE" in
+ i686*)
+ # /usr/bin/strip: error: the input file '/destdir//ffmpeg-devel-4.4.4/usr/lib/libavfilter.a(vf_atadenoise.o)' has no sections
+ nostrip_files="/usr/lib/libavfilter.a";;
+ esac
+
+ pkg_install() {
+ vmove usr/include
+ vmove usr/lib/pkgconfig
+ vmove "usr/lib/*.a"
+ vmove "usr/lib/*.so"
+ vmove usr/share/ffmpeg/examples
+ vmove usr/share/man/man3
+ }
+}
diff --git a/srcpkgs/libavcodec4 b/srcpkgs/libavcodec4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavcodec4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavdevice4 b/srcpkgs/libavdevice4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavdevice4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavfilter4 b/srcpkgs/libavfilter4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavfilter4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavformat4 b/srcpkgs/libavformat4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavformat4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavresample4 b/srcpkgs/libavresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libavutil4 b/srcpkgs/libavutil4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libavutil4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libpostproc4 b/srcpkgs/libpostproc4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libpostproc4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswresample4 b/srcpkgs/libswresample4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswresample4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
diff --git a/srcpkgs/libswscale4 b/srcpkgs/libswscale4
new file mode 120000
index 00000000000000..887f354e7c6be3
--- /dev/null
+++ b/srcpkgs/libswscale4
@@ -0,0 +1 @@
+ffmpeg4
\ No newline at end of file
From 928bed81d9abe448fb504893e3a4e5ef6a7ac803 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:21 -0500
Subject: [PATCH 3/8] vlc: revbump for ffmpeg4
---
srcpkgs/vlc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/vlc/template b/srcpkgs/vlc/template
index 854e8815c90a9d..89df6d017b3176 100644
--- a/srcpkgs/vlc/template
+++ b/srcpkgs/vlc/template
@@ -1,7 +1,7 @@
# Template file for 'vlc'
pkgname=vlc
version=3.0.21
-revision=2
+revision=3
build_style=gnu-configure
configure_args="--disable-gme --disable-libtar --enable-jack
--enable-live555 --disable-fluidsynth --enable-dvdread
@@ -25,7 +25,7 @@ lib32disabled=yes
hostmakedepends="automake libtool pkg-config flex gettext libgcrypt-devel
live555-devel gettext-devel $(vopt_if lua lua52) $(vopt_if chromecast protobuf)"
makedepends="
- avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg-devel freefont-ttf
+ avahi-libs-devel dbus-glib-devel faad2-devel ffmpeg4-devel freefont-ttf
gnutls-devel jack-devel liba52-devel libass-devel libbluray-devel
libcdio-devel libdca-devel libdvbpsi-devel libdvdnav-devel libmad-devel
libmatroska-devel libmodplug-devel libmpcdec-devel libmpeg2-devel
From f9571c30cf345844ea41416a69288a11ee9fbefd Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:37 -0500
Subject: [PATCH 4/8] mediastreamer: revbump for ffmpeg4
---
srcpkgs/mediastreamer/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/mediastreamer/template b/srcpkgs/mediastreamer/template
index 1c9364b7dde6f6..8a714a57b7661a 100644
--- a/srcpkgs/mediastreamer/template
+++ b/srcpkgs/mediastreamer/template
@@ -1,12 +1,12 @@
# Template file for 'mediastreamer'
pkgname=mediastreamer
version=5.3.100
-revision=1
+revision=2
build_style=cmake
configure_args="-DENABLE_STRICT=0 -DENABLE_UNIT_TESTS=0 -DBUILD_SHARED_LIBS=TRUE
-DENABLE_QT_GL=TRUE"
hostmakedepends="python3 qt5-qmake qt5-host-tools"
-makedepends="bzrtp-devel ffmpeg-devel glew-devel libXv-devel libsrtp-devel
+makedepends="bzrtp-devel ffmpeg4-devel glew-devel libXv-devel libsrtp-devel
libupnp-devel libvpx-devel mbedtls-devel opus-devel ortp-devel pulseaudio-devel
libtheora-devel speex-devel v4l-utils-devel bcg729-devel bcmatroska2-devel libgsm-devel
zxing-cpp-devel libaom-devel qt5-devel qt5-declarative-devel"
From bb3f7536734ff88ee668251ba88357310ddb6bed Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:21:50 -0500
Subject: [PATCH 5/8] moc: revbump for ffmpeg4
---
srcpkgs/moc/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/moc/template b/srcpkgs/moc/template
index 3a04932c8f1e61..838755f88db09e 100644
--- a/srcpkgs/moc/template
+++ b/srcpkgs/moc/template
@@ -1,10 +1,10 @@
# Template file for 'moc'
pkgname=moc
version=2.5.2
-revision=7
+revision=8
build_style=gnu-configure
hostmakedepends="pkg-config"
-makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg-devel
+makedepends="db-devel ncurses-devel libcurl-devel popt-devel ffmpeg4-devel
jack-devel alsa-lib-devel libltdl-devel libflac-devel libvorbis-devel
libmad-devel libmpcdec-devel libmodplug-devel libid3tag-devel faad2-devel
taglib-devel libsndfile-devel wavpack-devel speex-devel libsamplerate-devel
From 54440981cbef5f2191c46d2bcb8224a6b17d7b2c Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:05 -0500
Subject: [PATCH 6/8] olive: revbump for ffmpeg4
---
srcpkgs/olive/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/olive/template b/srcpkgs/olive/template
index 12a46936c99003..5c2917b9c51245 100644
--- a/srcpkgs/olive/template
+++ b/srcpkgs/olive/template
@@ -1,10 +1,10 @@
# Template file for 'olive'
pkgname=olive
version=0.1.2
-revision=2
+revision=3
build_style=qmake
hostmakedepends="qt5-qmake qt5-host-tools pkg-config"
-makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg-devel frei0r-plugins"
+makedepends="qt5-devel qt5-multimedia-devel qt5-svg-devel ffmpeg4-devel frei0r-plugins"
short_desc="Non-linear video editor"
maintainer="Orphaned <orphan@voidlinux.org>"
license="GPL-3.0-or-later"
From b3489d580a4c87029aecd68c1952378d7f37cf50 Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:30 -0500
Subject: [PATCH 7/8] ppsspp: revbump for ffmpeg4
---
srcpkgs/ppsspp/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/ppsspp/template b/srcpkgs/ppsspp/template
index a2ca9dd0cd1b09..40aec531fdd0cc 100644
--- a/srcpkgs/ppsspp/template
+++ b/srcpkgs/ppsspp/template
@@ -3,7 +3,7 @@
# major ffmpeg updates have a high likelyhood of breaking video playback
pkgname=ppsspp
version=1.18.1
-revision=1
+revision=2
_glslang_commit=b34f619e1c85810dcb3c578107d2e48ba4ee2b37
_SPIRV_Cross_commit=4212eef67ed0ca048cb726a6767185504e7695e5
_armips_commit=a8d71f0f279eb0d30ecf6af51473b66ae0cf8e8d
@@ -18,7 +18,7 @@ configure_args="-DHEADLESS=1 -DUSE_SYSTEM_FFMPEG=1 -DUNITTEST=ON
-DUSING_QT_UI=$(vopt_if qt ON OFF) -DUSE_SYSTEM_ZSTD=ON
-DARMIPS_USE_STD_FILESYSTEM=ON"
hostmakedepends="pkg-config python3 $(vopt_if qt qt5-host-tools)"
-makedepends="zlib-devel glew-devel ffmpeg-devel libzip-devel
+makedepends="zlib-devel glew-devel ffmpeg4-devel libzip-devel
snappy-devel rapidjson libpng-devel libzstd-devel
$(vopt_if sdl2 'SDL2_ttf-devel SDL2-devel') wayland-devel
$(vopt_if qt 'qt5-devel qt5-multimedia-devel')"
From 6e9c82f2625e621275e92738d0f674adde75e10b Mon Sep 17 00:00:00 2001
From: zlice <zlice555@gmail.com>
Date: Tue, 7 Jan 2025 10:22:44 -0500
Subject: [PATCH 8/8] tvheadend: revbump for ffmpeg4
---
srcpkgs/tvheadend/template | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/srcpkgs/tvheadend/template b/srcpkgs/tvheadend/template
index 9aea7de4ec7057..ef4cdddb9de0d6 100644
--- a/srcpkgs/tvheadend/template
+++ b/srcpkgs/tvheadend/template
@@ -1,14 +1,14 @@
# Template file for 'tvheadend'
pkgname=tvheadend
version=4.2.8
-revision=7
+revision=8
build_style=gnu-configure
configure_args="--enable-dvbscan --disable-ffmpeg_static
--disable-hdhomerun_static --disable-bintray_cache --disable-libx264_static
--disable-libx265_static --disable-libvpx_static --disable-libtheora_static
--disable-libvorbis_static --disable-libfdkaac_static"
hostmakedepends="gettext pkg-config python3 git which"
-makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg-devel"
+makedepends="avahi-libs-devel openssl-devel zlib-devel libcurl-devel ffmpeg4-devel"
short_desc="TV streaming server"
maintainer="lemmi <lemmi@nerd2nerd.org>"
license="GPL-3.0-only"
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-01-13 22:36 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-01-07 15:45 [PR PATCH] ffmpeg: meta pkg zlice
2025-01-07 15:48 ` [PR PATCH] [Updated] " zlice
2025-01-07 15:51 ` zlice
2025-01-07 16:30 ` [PR PATCH] [Updated] " zlice
2025-01-07 17:07 ` zlice
2025-01-13 22:28 ` [PR PATCH] [Updated] " zlice
2025-01-13 22:31 ` zlice
2025-01-13 22:34 ` zlice
2025-01-13 22:36 ` zlice
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).