From b0adf677f04f93061443028684152d6bb7289b33 Mon Sep 17 00:00:00 2001 From: kth5 Date: Fri, 3 Jan 2025 12:03:54 +0100 Subject: [PATCH] * update ffmpeg4.4 to 4.4.5-2 --- ffmpeg4.4/.SRCINFO | 16 +++----- ffmpeg4.4/PKGBUILD | 27 +++++-------- ffmpeg4.4/binutils-2.41.patch | 75 +++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+), 27 deletions(-) create mode 100644 ffmpeg4.4/binutils-2.41.patch diff --git a/ffmpeg4.4/.SRCINFO b/ffmpeg4.4/.SRCINFO index e4d30f9f89..a3b67c58d5 100644 --- a/ffmpeg4.4/.SRCINFO +++ b/ffmpeg4.4/.SRCINFO @@ -1,7 +1,7 @@ pkgbase = ffmpeg4.4 pkgdesc = Complete solution to record, convert and stream audio and video - pkgver = 4.4.4 - pkgrel = 6.1 + pkgver = 4.4.5 + pkgrel = 2 url = https://ffmpeg.org/ arch = x86_64 arch = powerpc64le @@ -11,7 +11,6 @@ pkgbase = ffmpeg4.4 license = GPL3 makedepends = amf-headers makedepends = avisynthplus - makedepends = clang makedepends = git makedepends = ladspa depends = alsa-lib @@ -69,7 +68,6 @@ pkgbase = ffmpeg4.4 depends = zlib optdepends = avisynthplus: AviSynthPlus support optdepends = ladspa: LADSPA filters - optdepends = nvidia-utils: Nvidia NVDEC/NVENC support provides = libavcodec.so provides = libavdevice.so provides = libavfilter.so @@ -78,17 +76,13 @@ pkgbase = ffmpeg4.4 provides = libpostproc.so provides = libswresample.so provides = libswscale.so - options = !distcc - source = git+https://git.ffmpeg.org/ffmpeg.git#tag=71fb6132637a2a430375c24afc381fff8b854fe7 + source = git+https://git.ffmpeg.org/ffmpeg.git#tag=9bcede27c26b2f7cd469ab6b5c8b9694c30cfca3 source = binutils-2.41.patch - source = gcc14.patch - b2sums = 87d63165eb2cde4e0702f6217cb93f171e2f57139b7251cbcfc32c1465e1753e6de7f3e49f1602ac980fbb7ec279edcc5938255a8a95a328c9c6d3882ef96fdb + b2sums = d9975a7578d982a1beab69cd63b6894bc4ab0338cf15716c3775bc09ffafe469eb0213c07b0575d4ca192148d29e67d00f0c3779aea0a1c1099b5505589db67b b2sums = b656a17dd3996c6871d322ba1fcf25410ed580d9600348cda087d705660601d06070492300d31c12d54b0e9914cb92bb9d997e51462c0577e1a90539bf0b76ee - b2sums = b4e3f10cb0edf0f60965221626c4c6f7328a5071aa066877c4fa66f37dd3be113f3895ba25b19f535ca4fc87eaa79527ad86bd9b68f57ed426deaf5fa563e1ef depends_x86_64 = libmfx optdepends_x86_64 = intel-media-sdk: Intel QuickSync support - makedepends_x86_64 = libmfx - makedepends_x86_64 = ffnvcodec-headers + optdepends_x86_64 = nvidia-utils: Nvidia NVDEC/NVENC support makedepends_x86_64 = nasm pkgname = ffmpeg4.4 diff --git a/ffmpeg4.4/PKGBUILD b/ffmpeg4.4/PKGBUILD index be5afa77c9..94fa22bfb6 100644 --- a/ffmpeg4.4/PKGBUILD +++ b/ffmpeg4.4/PKGBUILD @@ -7,7 +7,7 @@ pkgname=ffmpeg4.4 pkgver=4.4.5 -pkgrel=1 +pkgrel=2 pkgdesc='Complete solution to record, convert and stream audio and video' arch=(x86_64 powerpc64le powerpc64 powerpc riscv64) url=https://ffmpeg.org/ @@ -73,21 +73,20 @@ depends_x86_64=( makedepends=( amf-headers avisynthplus - clang git ladspa ) makedepends_x86_64=( - libmfx - ffnvcodec-headers nasm ) optdepends=( 'avisynthplus: AviSynthPlus support' 'ladspa: LADSPA filters' +) +optdepends_x86_64=( + 'intel-media-sdk: Intel QuickSync support' 'nvidia-utils: Nvidia NVDEC/NVENC support' ) -optdepends_x86_64=('intel-media-sdk: Intel QuickSync support') provides=( libavcodec.so libavdevice.so @@ -99,10 +98,12 @@ provides=( libswscale.so ) _tag=9bcede27c26b2f7cd469ab6b5c8b9694c30cfca3 -source=(git+https://git.ffmpeg.org/ffmpeg.git#tag=${_tag}) -b2sums=('d9975a7578d982a1beab69cd63b6894bc4ab0338cf15716c3775bc09ffafe469eb0213c07b0575d4ca192148d29e67d00f0c3779aea0a1c1099b5505589db67b') - -options=(!distcc) +source=( + git+https://git.ffmpeg.org/ffmpeg.git#tag=${_tag} + binutils-2.41.patch +) +b2sums=('d9975a7578d982a1beab69cd63b6894bc4ab0338cf15716c3775bc09ffafe469eb0213c07b0575d4ca192148d29e67d00f0c3779aea0a1c1099b5505589db67b' + 'b656a17dd3996c6871d322ba1fcf25410ed580d9600348cda087d705660601d06070492300d31c12d54b0e9914cb92bb9d997e51462c0577e1a90539bf0b76ee') pkgver() { cd ffmpeg @@ -128,8 +129,6 @@ build() { ;; x86_64) _configure_flags=( --enable-libmfx - --enable-nvdec - --enable-nvenc ) ;; esac @@ -145,7 +144,6 @@ build() { --disable-stripping \ --enable-amf \ --enable-avisynth \ - --enable-cuda-llvm \ --enable-lto \ --enable-fontconfig \ --enable-gmp \ @@ -189,7 +187,7 @@ build() { --enable-libxvid \ --enable-libzimg \ --enable-shared \ - --enable-version3 ${_configure_flags} + --enable-version3 ${_configure_flags[@]} make make tools/qt-faststart @@ -198,9 +196,7 @@ build() { package() { make DESTDIR="${pkgdir}" -C ffmpeg install - cd "${pkgdir}" - # Move libs to /usr/lib, except the .so symlinks local f for f in usr/lib/ffmpeg4.4/*; do @@ -210,7 +206,6 @@ package() { mv "$f" usr/lib fi done - rm -r usr/share } diff --git a/ffmpeg4.4/binutils-2.41.patch b/ffmpeg4.4/binutils-2.41.patch new file mode 100644 index 0000000000..f0eec05a15 --- /dev/null +++ b/ffmpeg4.4/binutils-2.41.patch @@ -0,0 +1,75 @@ +From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001 +From: =?utf8?q?R=C3=A9mi=20Denis-Courmont?= +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 +--- + libavcodec/x86/mathops.h | 26 +++++++++++++++++++++++--- + 1 file changed, 23 insertions(+), 3 deletions(-) + +diff --git a/libavcodec/x86/mathops.h b/libavcodec/x86/mathops.h +index 6298f5ed19..ca7e2dffc1 100644 +--- a/libavcodec/x86/mathops.h ++++ b/libavcodec/x86/mathops.h +@@ -35,12 +35,20 @@ + static av_always_inline av_const int MULL(int a, int b, unsigned shift) + { + int rt, dummy; ++ if (__builtin_constant_p(shift)) + __asm__ ( + "imull %3 \n\t" + "shrdl %4, %%edx, %%eax \n\t" + :"=a"(rt), "=d"(dummy) +- :"a"(a), "rm"(b), "ci"((uint8_t)shift) ++ :"a"(a), "rm"(b), "i"(shift & 0x1F) + ); ++ else ++ __asm__ ( ++ "imull %3 \n\t" ++ "shrdl %4, %%edx, %%eax \n\t" ++ :"=a"(rt), "=d"(dummy) ++ :"a"(a), "rm"(b), "c"((uint8_t)shift) ++ ); + return rt; + } + +@@ -113,19 +121,31 @@ __asm__ volatile(\ + // avoid +32 for shift optimization (gcc should do that ...) + #define NEG_SSR32 NEG_SSR32 + static inline int32_t NEG_SSR32( int32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("sarl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("sarl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + + #define NEG_USR32 NEG_USR32 + static inline uint32_t NEG_USR32(uint32_t a, int8_t s){ ++ if (__builtin_constant_p(s)) + __asm__ ("shrl %1, %0\n\t" + : "+r" (a) +- : "ic" ((uint8_t)(-s)) ++ : "i" (-s & 0x1F) + ); ++ else ++ __asm__ ("shrl %1, %0\n\t" ++ : "+r" (a) ++ : "c" ((uint8_t)(-s)) ++ ); + return a; + } + +-- +2.30.2