diff options
author | rin <rin@pkgsrc.org> | 2020-07-07 09:23:06 +0000 |
---|---|---|
committer | rin <rin@pkgsrc.org> | 2020-07-07 09:23:06 +0000 |
commit | 6f53d3de103807e412d8635d441b2924fdefcd16 (patch) | |
tree | 5ff7a7c519e962066a206d9922e218082ba559ee /multimedia | |
parent | d3d5297e722f999ab4af64c93b0f9ce7af58a7cf (diff) | |
download | pkgsrc-6f53d3de103807e412d8635d441b2924fdefcd16.tar.gz |
Fix build for powerpc machines that have AltiVec but no VSX support.
Workaround for upstream commit 3a557c5d88b7b15b5954ba2743febb055549b536:
https://github.com/FFmpeg/FFmpeg/commit/3a557c5d88b7b15b5954ba2743febb055549b53
Bump revision.
Diffstat (limited to 'multimedia')
-rw-r--r-- | multimedia/ffmpeg4/Makefile | 4 | ||||
-rw-r--r-- | multimedia/ffmpeg4/distinfo | 3 | ||||
-rw-r--r-- | multimedia/ffmpeg4/patches/patch-libswscale_ppc_yuv2rgb__altivec.c | 51 |
3 files changed, 55 insertions, 3 deletions
diff --git a/multimedia/ffmpeg4/Makefile b/multimedia/ffmpeg4/Makefile index ebb074f388e..462385d8ea4 100644 --- a/multimedia/ffmpeg4/Makefile +++ b/multimedia/ffmpeg4/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.33 2020/06/26 21:02:27 nia Exp $ +# $NetBSD: Makefile,v 1.34 2020/07/07 09:23:06 rin Exp $ PKGNAME= ${DISTNAME:S/ffmpeg/ffmpeg4/} -PKGREVISION= 1 +PKGREVISION= 2 MAINTAINER= pkgsrc-users@NetBSD.org HOMEPAGE= https://ffmpeg.org/ COMMENT= Decoding, encoding and streaming software (v4.x) diff --git a/multimedia/ffmpeg4/distinfo b/multimedia/ffmpeg4/distinfo index 89f1824d176..a72121e613a 100644 --- a/multimedia/ffmpeg4/distinfo +++ b/multimedia/ffmpeg4/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.18 2020/06/29 19:22:34 nia Exp $ +$NetBSD: distinfo,v 1.19 2020/07/07 09:23:06 rin Exp $ SHA1 (ffmpeg-4.3.tar.xz) = dd618212469347feb5deb8934023ef6e1ae5f533 RMD160 (ffmpeg-4.3.tar.xz) = 8e5d102b55e2f8b1c4da585eb9d003ab03e5e30e @@ -19,3 +19,4 @@ SHA1 (patch-libavdevice_sunau__enc.c) = efe765b99ad6379d0237c619ac0dce41306431be SHA1 (patch-libavutil_common.h) = d0f1093bc82567807b39dde990ee347f90a082c9 SHA1 (patch-libavutil_x86_asm.h) = 8f48f9e8ec08b5176bb40fc0021f3bb913dbef22 SHA1 (patch-libavutil_x86_cpu.c) = 9c97e68fde0fcb19741e034a803d509040ea4487 +SHA1 (patch-libswscale_ppc_yuv2rgb__altivec.c) = 79b439ea89fd5926a20a725d0a2ca1b091366ea5 diff --git a/multimedia/ffmpeg4/patches/patch-libswscale_ppc_yuv2rgb__altivec.c b/multimedia/ffmpeg4/patches/patch-libswscale_ppc_yuv2rgb__altivec.c new file mode 100644 index 00000000000..c53c89a713d --- /dev/null +++ b/multimedia/ffmpeg4/patches/patch-libswscale_ppc_yuv2rgb__altivec.c @@ -0,0 +1,51 @@ +$NetBSD: patch-libswscale_ppc_yuv2rgb__altivec.c,v 1.1 2020/07/07 09:23:06 rin Exp $ + +Fix build for powerpc machines that have AltiVec but no VSX support. + +Workaround for upstream commit 3a557c5d88b7b15b5954ba2743febb055549b536: +https://github.com/FFmpeg/FFmpeg/commit/3a557c5d88b7b15b5954ba2743febb055549b536 + +--- libswscale/ppc/yuv2rgb_altivec.c.orig 2020-06-16 03:54:24.000000000 +0900 ++++ libswscale/ppc/yuv2rgb_altivec.c 2020-07-07 17:01:02.342931087 +0900 +@@ -283,6 +283,23 @@ static inline void cvtyuvtoRGB(SwsContex + * ------------------------------------------------------------------------------ + */ + ++#if HAVE_VSX ++static inline vector unsigned char ffmpeg_vec_xl(const ubyte *xi) ++{ ++ return vec_xl(0, xi) ++} ++#else ++static inline vector unsigned char ffmpeg_vec_xl(const ubyte *xi) ++{ ++ const vector unsigned char *xivP; ++ vector unsigned char align_perm; ++ ++ xivP = (const vector unsigned char *) xi; ++ align_perm = vec_lvsl(0, xi); ++ return (vector unsigned char) vec_perm(xivP[0], xivP[1], align_perm); ++} ++#endif ++ + #define DEFCSP420_CVT(name, out_pixels) \ + static int altivec_ ## name(SwsContext *c, const unsigned char **in, \ + int *instrides, int srcSliceY, int srcSliceH, \ +@@ -335,13 +352,13 @@ static int altivec_ ## name(SwsContext * + vec_dstst(oute, (0x02000002 | (((w * 3 + 32) / 32) << 16)), 1); \ + \ + for (j = 0; j < w / 16; j++) { \ +- y0 = vec_xl(0, y1i); \ ++ y0 = ffmpeg_vec_xl(y1i); \ + \ +- y1 = vec_xl(0, y2i); \ ++ y1 = ffmpeg_vec_xl(y2i); \ + \ +- u = (vector signed char) vec_xl(0, ui); \ ++ u = (vector signed char) ffmpeg_vec_xl(ui); \ + \ +- v = (vector signed char) vec_xl(0, vi); \ ++ v = (vector signed char) ffmpeg_vec_xl(vi); \ + \ + u = (vector signed char) \ + vec_sub(u, \ |