summaryrefslogtreecommitdiff
path: root/multimedia/ffmpeg1
diff options
context:
space:
mode:
authorbouyer <bouyer@pkgsrc.org>2014-12-03 16:44:14 +0000
committerbouyer <bouyer@pkgsrc.org>2014-12-03 16:44:14 +0000
commitd29d25bae2fe05f0ff43272c0ae9d8d230d1e8bd (patch)
tree2c327be1cec162a355edd01c28667abe5441186b /multimedia/ffmpeg1
parent3ec9ca21954157b1133e8d0b244f3161fc01336c (diff)
downloadpkgsrc-d29d25bae2fe05f0ff43272c0ae9d8d230d1e8bd.tar.gz
Add patch from PR pkg/48680, fixing build on netbsd-7/i386 and newer.
Add -mstackrealign -mpreferred-stack-boundary=4 to CFLAGS on i386 for all gcc 4.x versions, this appears to still be needed with gcc 4.8.4. Bump PKGREVISION for ffmpeg1 and ffplay1 (which uses ffmpeg1 patches)
Diffstat (limited to 'multimedia/ffmpeg1')
-rw-r--r--multimedia/ffmpeg1/Makefile8
-rw-r--r--multimedia/ffmpeg1/distinfo3
-rw-r--r--multimedia/ffmpeg1/patches/patch-libavcodec_x86_ac3dsp_init.c88
3 files changed, 94 insertions, 5 deletions
diff --git a/multimedia/ffmpeg1/Makefile b/multimedia/ffmpeg1/Makefile
index bcc85e2cec9..1fa76014c19 100644
--- a/multimedia/ffmpeg1/Makefile
+++ b/multimedia/ffmpeg1/Makefile
@@ -1,6 +1,7 @@
-# $NetBSD: Makefile,v 1.2 2014/10/10 12:30:34 adam Exp $
+# $NetBSD: Makefile,v 1.3 2014/12/03 16:44:14 bouyer Exp $
PKGNAME= ${DISTNAME:S/ffmpeg/ffmpeg1/}
+PKGREVISION= 1
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://ffmpeg.mplayerhq.hu/
COMMENT= Decoding, encoding and streaming software (v1.x)
@@ -40,15 +41,14 @@ post-install:
.include "../../mk/compiler.mk"
# disable asm on i386 for non-gcc and gcc < 4.2
-# no alignment options needed for gcc >= 4.6 on i386
.if ${MACHINE_ARCH} == "i386"
. if !empty(MACHINE_PLATFORM:MDarwin-*-i386) \
|| !empty(MACHINE_PLATFORM:MSunOS-*-i386) \
|| !empty(CC_VERSION:Mgcc-[123]*) \
- || !empty(CC_VERSION:Mgcc-4.[01]*) \
+ || !empty(CC_VERSION:Mgcc-4.[01].*) \
|| empty(CC_VERSION:Mgcc*)
CONFIGURE_ARGS+= --disable-asm
-. elif !empty(CC_VERSION:Mgcc-4.[2345]*)
+. elif !empty(CC_VERSION:Mgcc-4.*)
CFLAGS+= -mstackrealign -mpreferred-stack-boundary=4
. endif
.endif
diff --git a/multimedia/ffmpeg1/distinfo b/multimedia/ffmpeg1/distinfo
index 9b5d9c66a55..e0ceee1b380 100644
--- a/multimedia/ffmpeg1/distinfo
+++ b/multimedia/ffmpeg1/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.4 2014/11/10 15:38:22 adam Exp $
+$NetBSD: distinfo,v 1.5 2014/12/03 16:44:14 bouyer Exp $
SHA1 (ffmpeg-1.2.10.tar.bz2) = 8e6d59b87b3390facef624ba3e531726de3ef11b
RMD160 (ffmpeg-1.2.10.tar.bz2) = 56b8f285748c52da8ef9c27cad1ace1aa55ef19e
@@ -7,3 +7,4 @@ SHA1 (patch-aa) = 14006874aee07e7e41803269040f0ae0157d931d
SHA1 (patch-ac) = ff8a7a5fdfd4987ef2835bd7360a78efd4310253
SHA1 (patch-ap) = ebbd0c169f228af37ae2dd54b27d5dba11a34c5e
SHA1 (patch-configure) = a04493172f7600cc9ebbda6c140915b1169f5f14
+SHA1 (patch-libavcodec_x86_ac3dsp_init.c) = 603eb10a316edf48e50f64f048772ad4b97cac5a
diff --git a/multimedia/ffmpeg1/patches/patch-libavcodec_x86_ac3dsp_init.c b/multimedia/ffmpeg1/patches/patch-libavcodec_x86_ac3dsp_init.c
new file mode 100644
index 00000000000..d84c53cdb8d
--- /dev/null
+++ b/multimedia/ffmpeg1/patches/patch-libavcodec_x86_ac3dsp_init.c
@@ -0,0 +1,88 @@
+$NetBSD: patch-libavcodec_x86_ac3dsp_init.c,v 1.1 2014/12/03 16:44:14 bouyer Exp $
+
+Fix from PR pkg/48680
+
+--- libavcodec/x86/ac3dsp_init.c.orig 2013-08-11 01:23:26.000000000 +0200
++++ libavcodec/x86/ac3dsp_init.c 2013-10-06 17:43:36.000000000 +0200
+@@ -70,11 +70,11 @@ void ff_ac3_extract_exponents_ssse3(uint
+ "shufps $0, %%xmm6, %%xmm6 \n" \
+ "shufps $0, %%xmm7, %%xmm7 \n" \
+ "1: \n" \
+- "movaps (%0, %2), %%xmm0 \n" \
+- "movaps (%0, %3), %%xmm1 \n" \
+- "movaps (%0, %4), %%xmm2 \n" \
+- "movaps (%0, %5), %%xmm3 \n" \
+- "movaps (%0, %6), %%xmm4 \n" \
++ "movups (%0, %2), %%xmm0 \n" \
++ "movups (%0, %3), %%xmm1 \n" \
++ "movups (%0, %4), %%xmm2 \n" \
++ "movups (%0, %5), %%xmm3 \n" \
++ "movups (%0, %6), %%xmm4 \n" \
+ "mulps %%xmm5, %%xmm0 \n" \
+ "mulps %%xmm6, %%xmm1 \n" \
+ "mulps %%xmm5, %%xmm2 \n" \
+@@ -85,8 +85,8 @@ void ff_ac3_extract_exponents_ssse3(uint
+ "addps %%xmm3, %%xmm0 \n" \
+ "addps %%xmm4, %%xmm2 \n" \
+ mono("addps %%xmm2, %%xmm0 \n") \
+- "movaps %%xmm0, (%0, %2) \n" \
+- stereo("movaps %%xmm2, (%0, %3) \n") \
++ "movups %%xmm0, (%0, %2) \n" \
++ stereo("movups %%xmm2, (%0, %3) \n") \
+ "add $16, %0 \n" \
+ "jl 1b \n" \
+ : "+&r"(i) \
+@@ -106,24 +106,26 @@ void ff_ac3_extract_exponents_ssse3(uint
+ "mov %5, %2 \n" \
+ "1: \n" \
+ "mov -%c7(%6, %2, %c8), %3 \n" \
+- "movaps (%3, %0), %%xmm0 \n" \
++ "movups (%3, %0), %%xmm0 \n" \
+ stereo("movaps %%xmm0, %%xmm1 \n") \
+ "mulps %%xmm4, %%xmm0 \n" \
+ stereo("mulps %%xmm5, %%xmm1 \n") \
+ "2: \n" \
+ "mov (%6, %2, %c8), %1 \n" \
+- "movaps (%1, %0), %%xmm2 \n" \
++ "movups (%1, %0), %%xmm2 \n" \
+ stereo("movaps %%xmm2, %%xmm3 \n") \
+- "mulps (%4, %2, 8), %%xmm2 \n" \
+- stereo("mulps 16(%4, %2, 8), %%xmm3 \n") \
++ "movups (%4, %2, 8), %%xmm4 \n" \
++ "mulps %%xmm4, %%xmm2 \n" \
++ stereo("movups 16(%4, %2, 8), %%xmm4 \n") \
++ stereo("mulps %%xmm4, %%xmm3 \n") \
+ "addps %%xmm2, %%xmm0 \n" \
+ stereo("addps %%xmm3, %%xmm1 \n") \
+ "add $4, %2 \n" \
+ "jl 2b \n" \
+ "mov %5, %2 \n" \
+ stereo("mov (%6, %2, %c8), %1 \n") \
+- "movaps %%xmm0, (%3, %0) \n" \
+- stereo("movaps %%xmm1, (%1, %0) \n") \
++ "movups %%xmm0, (%3, %0) \n" \
++ stereo("movups %%xmm1, (%1, %0) \n") \
+ "add $16, %0 \n" \
+ "jl 1b \n" \
+ : "+&r"(i), "=&r"(j), "=&r"(k), "=&r"(m) \
+@@ -152,7 +154,7 @@ static void ac3_downmix_sse(float **samp
+ matrix_cmp[3][0] == matrix_cmp[4][0]) {
+ MIX5(IF1, IF0);
+ } else {
+- DECLARE_ALIGNED(16, float, matrix_simd)[AC3_MAX_CHANNELS][2][4];
++ float matrix_simd[AC3_MAX_CHANNELS][2][4];
+ float *samp[AC3_MAX_CHANNELS];
+
+ for (j = 0; j < in_ch; j++)
+@@ -166,8 +168,8 @@ static void ac3_downmix_sse(float **samp
+ "movss 4(%2, %0), %%xmm5 \n"
+ "shufps $0, %%xmm4, %%xmm4 \n"
+ "shufps $0, %%xmm5, %%xmm5 \n"
+- "movaps %%xmm4, (%1, %0, 4) \n"
+- "movaps %%xmm5, 16(%1, %0, 4) \n"
++ "movups %%xmm4, (%1, %0, 4) \n"
++ "movups %%xmm5, 16(%1, %0, 4) \n"
+ "jg 1b \n"
+ : "+&r"(j)
+ : "r"(matrix_simd), "r"(matrix)
+