summaryrefslogtreecommitdiffstats
path: root/ffmpeg
diff options
context:
space:
mode:
author Eric Hameleers <alien@slackware.com>2023-08-23 07:53:47 +0000
committer Eric Hameleers <alien@slackware.com>2023-08-23 07:53:47 +0000
commit908cbf9b9b3c96be921a52755b70779d37599860 (patch)
tree9f98c8228e0c8edf486f0fc9bdff5eeece3f3557 /ffmpeg
parent894ddf4e063ea85bc078f7ea839f546e2f9bbaed (diff)
downloadasb-908cbf9b9b3c96be921a52755b70779d37599860.tar.gz
asb-908cbf9b9b3c96be921a52755b70779d37599860.tar.xz
Initial revision
Diffstat (limited to 'ffmpeg')
-rw-r--r--ffmpeg/build/patches/ffmpeg_binutils241.patch76
-rw-r--r--ffmpeg/build/patches/mfx_dispatch_gcc13.patch66
2 files changed, 142 insertions, 0 deletions
diff --git a/ffmpeg/build/patches/ffmpeg_binutils241.patch b/ffmpeg/build/patches/ffmpeg_binutils241.patch
new file mode 100644
index 00000000..33fd3d48
--- /dev/null
+++ b/ffmpeg/build/patches/ffmpeg_binutils241.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
+
diff --git a/ffmpeg/build/patches/mfx_dispatch_gcc13.patch b/ffmpeg/build/patches/mfx_dispatch_gcc13.patch
new file mode 100644
index 00000000..21c7a88e
--- /dev/null
+++ b/ffmpeg/build/patches/mfx_dispatch_gcc13.patch
@@ -0,0 +1,66 @@
+From d6241243f85a0d947bdfe813006686a930edef24 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tomasz=20K=C5=82oczko?= <kloczek@github.com>
+Date: Thu, 26 Jan 2023 20:15:33 +0000
+Subject: [PATCH] Fix building with gcc 13.x
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In fedoe=ra now is used gcc 13.0.1 with whoch build fails
+with below errora
+
+src/mfxparser.cpp: In function 'std::string MFX::printCodecId(mfxU32)':
+src/mfxparser.cpp:60:3: error: 'uint8_t' was not declared in this scope
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^~~~~~~
+src/mfxparser.cpp:29:1: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+ 28 | #include "mfxloader.h"
+ +++ |+#include <cstdint>
+ 29 |
+src/mfxparser.cpp:60:12: error: 'data' was not declared in this scope; did you mean 'std::data'?
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^~~~
+ | std::data
+In file included from /usr/include/c++/13/list:64,
+ from src/mfxparser.cpp:26:
+/usr/include/c++/13/bits/range_access.h:346:5: note: 'std::data' declared here
+ 346 | data(initializer_list<_Tp> __il) noexcept
+ | ^~~~
+src/mfxparser.cpp:60:36: error: 'uint8_t' does not name a type
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^~~~~~~
+src/mfxparser.cpp:60:36: note: 'uint8_t' is defined in header '<cstdint>'; did you forget to '#include <cstdint>'?
+src/mfxparser.cpp:60:43: error: expected '>' before '*' token
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^
+src/mfxparser.cpp:60:43: error: expected '(' before '*' token
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^
+ | (
+src/mfxparser.cpp:60:44: error: expected primary-expression before '>' token
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^
+src/mfxparser.cpp:60:50: error: expected ')' before ';' token
+ 60 | uint8_t* data = reinterpret_cast<uint8_t*>(&id);
+ | ^
+ | )
+
+This patch fixes that issue.
+
+Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
+---
+ src/mfxparser.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/mfxparser.cpp b/src/mfxparser.cpp
+index 9d3823e..beea532 100644
+--- a/src/mfxparser.cpp
++++ b/src/mfxparser.cpp
+@@ -23,6 +23,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+
++#include <cstdint>
+ #include <list>
+
+ #include "mfxloader.h"