summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorsL1pKn072024-01-21 16:03:19 +0100
committersL1pKn072024-01-21 16:03:19 +0100
commitfe7255bb7b6d8b5f86e8b1f07d9a661bd4f73bb2 (patch)
tree3f75500963318a3d4799b157828bfaf2c582e055
parentbb8f2fad4dbd7d6e1b4e19c5f368120b260f53cf (diff)
downloadaur-openhevc-git.tar.gz
bump
-rw-r--r--.SRCINFO10
-rw-r--r--.gitignore1
-rw-r--r--PKGBUILD43
-rw-r--r--mathops_fix.patch76
4 files changed, 107 insertions, 23 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e1838fb7950f..a0bde9c31848 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,11 +1,8 @@
-# Generated by mksrcinfo v8
-# Sat Aug 27 10:32:56 UTC 2016
pkgbase = openhevc-git
pkgdesc = A open HEVC decoder. (GIT Version)
- pkgver = r2070.20160819.dc94771
+ pkgver = r2075.20170530.7c37bd65
pkgrel = 1
url = http://openhevc.github.io/openHEVC
- arch = i686
arch = x86_64
license = LGPL2.1
makedepends = git
@@ -16,7 +13,8 @@ pkgbase = openhevc-git
provides = openhevc
conflicts = openhevc
source = openhevc::git+https://github.com/OpenHEVC/openHEVC.git#branch=hevc_rext
- sha1sums = SKIP
+ source = mathops_fix.patch
+ sha256sums = SKIP
+ sha256sums = a50d7da9870a3fd801ad3a4d13d5c9b260acb094cf8bfa4afd95a54741173a7f
pkgname = openhevc-git
-
diff --git a/.gitignore b/.gitignore
index 05c6d4d4c97b..ce84b2113c72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
!.gitignore
!.SRCINFO
!PKGBUILD
+!mathops_fix.patch
diff --git a/PKGBUILD b/PKGBUILD
index 7d6ef6fbc686..11cc43d44767 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,23 +1,31 @@
# Maintainer: Gustavo Alvarez <sl1pkn07@gmail.com>
pkgname=openhevc-git
-pkgver=r2070.20160819.dc94771
+pkgver=r2075.20170530.7c37bd65
pkgrel=1
pkgdesc="A open HEVC decoder. (GIT Version)"
-arch=('i686' 'x86_64')
+arch=('x86_64')
url='http://openhevc.github.io/openHEVC'
license=('LGPL2.1')
-depends=('sdl'
- 'sdl2'
- )
-makedepends=('git'
- 'cmake'
- 'yasm'
- )
+depends=(
+ 'sdl'
+ 'sdl2'
+)
+makedepends=(
+ 'git'
+ 'cmake'
+ 'yasm'
+)
provides=('openhevc')
conflicts=('openhevc')
-source=('openhevc::git+https://github.com/OpenHEVC/openHEVC.git#branch=hevc_rext')
-sha1sums=('SKIP')
+source=(
+ 'openhevc::git+https://github.com/OpenHEVC/openHEVC.git#branch=hevc_rext'
+ 'mathops_fix.patch'
+)
+sha256sums=(
+ 'SKIP'
+ 'a50d7da9870a3fd801ad3a4d13d5c9b260acb094cf8bfa4afd95a54741173a7f'
+)
pkgver() {
cd openhevc
@@ -25,21 +33,22 @@ pkgver() {
}
prepare() {
- mkdir -p build
+ patch -d openhevc -p1 -i "${srcdir}/mathops_fix.patch"
}
build() {
- cd build
- cmake ../openhevc \
+ CFLAGS+=' -Wl,--allow-multiple-definition'
+ cmake -S openhevc -B build \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=RELEASE \
+ -DCMAKE_BUILD_TYPE=None \
-DCMAKE_SKIP_RPATH=ON \
-DBUILD_SHARED_LIBS=ON
- make
+
+ cmake --build build
}
package() {
- make -C build DESTDIR="${pkgdir}" install
+ DESTDIR="${pkgdir}" cmake --install build
install -Dm755 build/hevc "${pkgdir}/usr/bin/openhevc"
install -Dm755 build/hevc_sdl2 "${pkgdir}/usr/bin/openhevc_sdl2"
}
diff --git a/mathops_fix.patch b/mathops_fix.patch
new file mode 100644
index 000000000000..33fd3d484fb6
--- /dev/null
+++ b/mathops_fix.patch
@@ -0,0 +1,76 @@
+From effadce6c756247ea8bae32dc13bb3e6f464f0eb Mon Sep 17 00:00:00 2001
+From: =?utf8?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 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
+