mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
alarm/ffmpeg-rpi to 4.4.3-1
This commit is contained in:
parent
4bd7367ad5
commit
ef18fc5ed5
5 changed files with 2778 additions and 1381 deletions
|
@ -1,5 +1,13 @@
|
|||
From ffda9079338e1d2ef4b4c3296a2228fc5216c4f7 Mon Sep 17 00:00:00 2001
|
||||
Date: Wed, 1 Mar 2023 17:08:44 -0500
|
||||
Subject: [PATCH 1/3] vmaf-model-path
|
||||
|
||||
---
|
||||
libavfilter/vf_libvmaf.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libavfilter/vf_libvmaf.c b/libavfilter/vf_libvmaf.c
|
||||
index 249e50c720..9b791e19b1 100644
|
||||
index 4d49127..bd6f451 100644
|
||||
--- a/libavfilter/vf_libvmaf.c
|
||||
+++ b/libavfilter/vf_libvmaf.c
|
||||
@@ -72,7 +72,7 @@ typedef struct LIBVMAFContext {
|
||||
|
@ -9,5 +17,8 @@ index 249e50c720..9b791e19b1 100644
|
|||
- {"model_path", "Set the model to be used for computing vmaf.", OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/local/share/model/vmaf_v0.6.1.pkl"}, 0, 1, FLAGS},
|
||||
+ {"model_path", "Set the model to be used for computing vmaf.", OFFSET(model_path), AV_OPT_TYPE_STRING, {.str="/usr/share/model/vmaf_v0.6.1.pkl"}, 0, 1, FLAGS},
|
||||
{"log_path", "Set the file path to be used to store logs.", OFFSET(log_path), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
|
||||
{"log_fmt", "Set the format of the log (xml or json).", OFFSET(log_fmt), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
|
||||
{"log_fmt", "Set the format of the log (csv, json or xml).", OFFSET(log_fmt), AV_OPT_TYPE_STRING, {.str=NULL}, 0, 1, FLAGS},
|
||||
{"enable_transform", "Enables transform for computing vmaf.", OFFSET(enable_transform), AV_OPT_TYPE_BOOL, {.i64=0}, 0, 1, FLAGS},
|
||||
--
|
||||
2.39.2
|
||||
|
||||
|
|
|
@ -1,287 +0,0 @@
|
|||
From: James Cowgill <jcowgill@debian.org>
|
||||
Date: Sun, 11 Aug 2019 16:50:56 +0100
|
||||
Subject: avcodec/arm/sbcenc: avoid callee preserved vfp registers
|
||||
|
||||
When compiling FFmpeg with GCC-9, some very random segfaults were
|
||||
observed in code which had previously called down into the SBC encoder
|
||||
NEON assembly routines. This was caused by these functions clobbering
|
||||
some of the vfp callee saved registers (d8 - d15 aka q4 - q7). GCC was
|
||||
using these registers to save local variables, but after these
|
||||
functions returned, they would contain garbage.
|
||||
|
||||
Fix by reallocating the registers in the two affected functions in
|
||||
the following way:
|
||||
ff_sbc_analyze_4_neon: q2-q5 => q8-q11, then q1-q4 => q8-q11
|
||||
ff_sbc_analyze_8_neon: q2-q9 => q8-q15
|
||||
|
||||
The reason for using these replacements is to keep closely related
|
||||
sets of registers consecutively numbered which hopefully makes the
|
||||
code more easy to follow. Since this commit only reallocates
|
||||
registers, it should have no performance impact.
|
||||
|
||||
Signed-off-by: James Cowgill <jcowgill@debian.org>
|
||||
---
|
||||
libavcodec/arm/sbcdsp_neon.S | 220 +++++++++++++++++++++----------------------
|
||||
1 file changed, 110 insertions(+), 110 deletions(-)
|
||||
|
||||
diff --git a/libavcodec/arm/sbcdsp_neon.S b/libavcodec/arm/sbcdsp_neon.S
|
||||
index d83d21d..914abfb 100644
|
||||
--- a/libavcodec/arm/sbcdsp_neon.S
|
||||
+++ b/libavcodec/arm/sbcdsp_neon.S
|
||||
@@ -38,49 +38,49 @@ function ff_sbc_analyze_4_neon, export=1
|
||||
/* TODO: merge even and odd cases (or even merge all four calls to this
|
||||
* function) in order to have only aligned reads from 'in' array
|
||||
* and reduce number of load instructions */
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
|
||||
- vmull.s16 q0, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmull.s16 q1, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
+ vmull.s16 q0, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmull.s16 q1, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q1, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
+ vmlal.s16 q0, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q1, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q1, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
+ vmlal.s16 q0, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q1, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q1, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
+ vmlal.s16 q0, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q1, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
|
||||
- vmlal.s16 q0, d4, d8
|
||||
- vmlal.s16 q1, d5, d9
|
||||
+ vmlal.s16 q0, d16, d20
|
||||
+ vmlal.s16 q1, d17, d21
|
||||
|
||||
vpadd.s32 d0, d0, d1
|
||||
vpadd.s32 d1, d2, d3
|
||||
|
||||
vrshrn.s32 d0, q0, SBC_PROTO_FIXED_SCALE
|
||||
|
||||
- vld1.16 {d2, d3, d4, d5}, [r2, :128]!
|
||||
+ vld1.16 {d16, d17, d18, d19}, [r2, :128]!
|
||||
|
||||
vdup.i32 d1, d0[1] /* TODO: can be eliminated */
|
||||
vdup.i32 d0, d0[0] /* TODO: can be eliminated */
|
||||
|
||||
- vmull.s16 q3, d2, d0
|
||||
- vmull.s16 q4, d3, d0
|
||||
- vmlal.s16 q3, d4, d1
|
||||
- vmlal.s16 q4, d5, d1
|
||||
+ vmull.s16 q10, d16, d0
|
||||
+ vmull.s16 q11, d17, d0
|
||||
+ vmlal.s16 q10, d18, d1
|
||||
+ vmlal.s16 q11, d19, d1
|
||||
|
||||
- vpadd.s32 d0, d6, d7 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d1, d8, d9 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d0, d20, d21 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d1, d22, d23 /* TODO: can be eliminated */
|
||||
|
||||
vst1.32 {d0, d1}, [r1, :128]
|
||||
|
||||
@@ -91,57 +91,57 @@ function ff_sbc_analyze_8_neon, export=1
|
||||
/* TODO: merge even and odd cases (or even merge all four calls to this
|
||||
* function) in order to have only aligned reads from 'in' array
|
||||
* and reduce number of load instructions */
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmull.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmull.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmull.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmull.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vld1.16 {d4, d5}, [r0, :64]!
|
||||
- vmlal.s16 q9, d7, d11
|
||||
- vld1.16 {d8, d9}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q6, d4, d8
|
||||
- vld1.16 {d6, d7}, [r0, :64]!
|
||||
- vmlal.s16 q7, d5, d9
|
||||
- vld1.16 {d10, d11}, [r2, :128]!
|
||||
-
|
||||
- vmlal.s16 q8, d6, d10
|
||||
- vmlal.s16 q9, d7, d11
|
||||
-
|
||||
- vpadd.s32 d0, d12, d13
|
||||
- vpadd.s32 d1, d14, d15
|
||||
- vpadd.s32 d2, d16, d17
|
||||
- vpadd.s32 d3, d18, d19
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmull.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmull.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmull.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmull.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vld1.16 {d16, d17}, [r0, :64]!
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+ vld1.16 {d20, d21}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q12, d16, d20
|
||||
+ vld1.16 {d18, d19}, [r0, :64]!
|
||||
+ vmlal.s16 q13, d17, d21
|
||||
+ vld1.16 {d22, d23}, [r2, :128]!
|
||||
+
|
||||
+ vmlal.s16 q14, d18, d22
|
||||
+ vmlal.s16 q15, d19, d23
|
||||
+
|
||||
+ vpadd.s32 d0, d24, d25
|
||||
+ vpadd.s32 d1, d26, d27
|
||||
+ vpadd.s32 d2, d28, d29
|
||||
+ vpadd.s32 d3, d30, d31
|
||||
|
||||
vrshr.s32 q0, q0, SBC_PROTO_FIXED_SCALE
|
||||
vrshr.s32 q1, q1, SBC_PROTO_FIXED_SCALE
|
||||
@@ -153,38 +153,38 @@ function ff_sbc_analyze_8_neon, export=1
|
||||
vdup.i32 d1, d0[1] /* TODO: can be eliminated */
|
||||
vdup.i32 d0, d0[0] /* TODO: can be eliminated */
|
||||
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmull.s16 q6, d4, d0
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmull.s16 q7, d5, d0
|
||||
- vmull.s16 q8, d6, d0
|
||||
- vmull.s16 q9, d7, d0
|
||||
-
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmlal.s16 q6, d4, d1
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmlal.s16 q7, d5, d1
|
||||
- vmlal.s16 q8, d6, d1
|
||||
- vmlal.s16 q9, d7, d1
|
||||
-
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmlal.s16 q6, d4, d2
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmlal.s16 q7, d5, d2
|
||||
- vmlal.s16 q8, d6, d2
|
||||
- vmlal.s16 q9, d7, d2
|
||||
-
|
||||
- vld1.16 {d4, d5}, [r2, :128]!
|
||||
- vmlal.s16 q6, d4, d3
|
||||
- vld1.16 {d6, d7}, [r2, :128]!
|
||||
- vmlal.s16 q7, d5, d3
|
||||
- vmlal.s16 q8, d6, d3
|
||||
- vmlal.s16 q9, d7, d3
|
||||
-
|
||||
- vpadd.s32 d0, d12, d13 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d1, d14, d15 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d2, d16, d17 /* TODO: can be eliminated */
|
||||
- vpadd.s32 d3, d18, d19 /* TODO: can be eliminated */
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmull.s16 q12, d16, d0
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmull.s16 q13, d17, d0
|
||||
+ vmull.s16 q14, d18, d0
|
||||
+ vmull.s16 q15, d19, d0
|
||||
+
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmlal.s16 q12, d16, d1
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmlal.s16 q13, d17, d1
|
||||
+ vmlal.s16 q14, d18, d1
|
||||
+ vmlal.s16 q15, d19, d1
|
||||
+
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmlal.s16 q12, d16, d2
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmlal.s16 q13, d17, d2
|
||||
+ vmlal.s16 q14, d18, d2
|
||||
+ vmlal.s16 q15, d19, d2
|
||||
+
|
||||
+ vld1.16 {d16, d17}, [r2, :128]!
|
||||
+ vmlal.s16 q12, d16, d3
|
||||
+ vld1.16 {d18, d19}, [r2, :128]!
|
||||
+ vmlal.s16 q13, d17, d3
|
||||
+ vmlal.s16 q14, d18, d3
|
||||
+ vmlal.s16 q15, d19, d3
|
||||
+
|
||||
+ vpadd.s32 d0, d24, d25 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d1, d26, d27 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d2, d28, d29 /* TODO: can be eliminated */
|
||||
+ vpadd.s32 d3, d30, d31 /* TODO: can be eliminated */
|
||||
|
||||
vst1.32 {d0, d1, d2, d3}, [r1, :128]
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,16 @@
|
|||
From e132ddbd8321f069f025f1fa42260bf5a854e385 Mon Sep 17 00:00:00 2001
|
||||
Date: Wed, 1 Mar 2023 17:10:10 -0500
|
||||
Subject: [PATCH 3/3] fix flags
|
||||
|
||||
---
|
||||
configure | 8 +++-----
|
||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configure b/configure
|
||||
index 83383b0..d71e6b9 100755
|
||||
--- a/configure
|
||||
+++ b/configure
|
||||
@@ -6471,11 +6471,9 @@ enabled mbedtls && { check_pkg
|
||||
@@ -6533,11 +6533,9 @@ enabled mbedtls && { check_pkg_config mbedtls mbedtls mbedtls/x509_crt
|
||||
die "ERROR: mbedTLS not found"; }
|
||||
enabled mediacodec && { enabled jni || die "ERROR: mediacodec requires --enable-jni"; }
|
||||
( enabled rpi ||
|
||||
|
@ -15,3 +25,6 @@
|
|||
die "ERROR: mmal not found" &&
|
||||
check_func_headers interface/mmal/mmal.h "MMAL_PARAMETER_VIDEO_MAX_NUM_CALLBACKS"; }
|
||||
enabled openal && { { for al_extralibs in "${OPENAL_LIBS}" "-lopenal" "-lOpenAL32"; do
|
||||
--
|
||||
2.39.2
|
||||
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
pkgbase=ffmpeg-rpi
|
||||
pkgname=($pkgbase $pkgbase-bin)
|
||||
pkgver=4.4.2
|
||||
pkgrel=4
|
||||
pkgver=4.4.3
|
||||
pkgrel=1
|
||||
arch=(aarch64)
|
||||
url=https://ffmpeg.org/
|
||||
license=(GPL3)
|
||||
|
@ -15,6 +15,7 @@ makedepends=(
|
|||
amf-headers
|
||||
avisynthplus
|
||||
clang
|
||||
debugedit
|
||||
ffnvcodec-headers
|
||||
git
|
||||
ladspa
|
||||
|
@ -76,16 +77,14 @@ depends=(
|
|||
options=(debug)
|
||||
source=(https://ffmpeg.org/releases/${pkgname/-rpi}-$pkgver.tar.xz{,.asc}
|
||||
0001-vmaf-model-path.patch
|
||||
0002-avcodec-arm-sbcenc-avoid-callee-preserved-vfp-regist.patch
|
||||
0003-ffmpeg-4.4n-rpi.patch
|
||||
0004-fix_flags.patch
|
||||
0002-ffmpeg-4.4n-rpi.patch
|
||||
0003-fix_flags.patch
|
||||
)
|
||||
sha256sums=('af419a7f88adbc56c758ab19b4c708afbcae15ef09606b82b855291f6a6faa93'
|
||||
sha256sums=('6c5b6c195e61534766a0b5fe16acc919170c883362612816d0a1c7f4f947006e'
|
||||
'SKIP'
|
||||
'8dff51f84a5f7460f8893f0514812f5d2bd668c3276ef7ab7713c99b71d7bd8d'
|
||||
'06bd27ca2316cec738ff53ec827b2795bd9fbcba9f78d88af49c329f8569db5c'
|
||||
'590d2e90ddbc4130f9a01f11f8c2688a8b138dce1503dc7f5bc2a5b42c6ad42e'
|
||||
'656d1d57e6163801d8345c8937e88842661135197c1ab71dd1b97d013f0065ba')
|
||||
'2e8d885de789b461ddf63c10646cdb16ad5519b671efd1624bf5a8e7da43dbf3'
|
||||
'5048895674c27876fc252b1a5e2af8036616ec31fc27cc7f57ec2500da9d4151'
|
||||
'42f57e7a55f250811515571c870372d6ed0ed504f823b341d26f383c082ce0a0')
|
||||
validpgpkeys=('FCF986EA15E6E293A5644F10B4322F04D67658D8')
|
||||
|
||||
prepare() {
|
||||
|
|
Loading…
Reference in a new issue