commit: 44b6376a81a1912b0a5337585b694d38521025e9 Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Wed Oct 7 17:03:52 2020 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Wed Oct 7 17:07:01 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=44b6376a
media-video/ffmpeg: fix ppc build for 4.3.1 See: https://trac.ffmpeg.org/ticket/8750 Package-Manager: Portage-3.0.4, Repoman-3.0.1 Signed-off-by: Sam James <sam <AT> gentoo.org> media-video/ffmpeg/ffmpeg-4.3.1.ebuild | 1 + .../files/ffmpeg-4.3-altivec-novsx-yuv2rgb.patch | 23 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/media-video/ffmpeg/ffmpeg-4.3.1.ebuild b/media-video/ffmpeg/ffmpeg-4.3.1.ebuild index e1d995bd1cf..f1f6178b251 100644 --- a/media-video/ffmpeg/ffmpeg-4.3.1.ebuild +++ b/media-video/ffmpeg/ffmpeg-4.3.1.ebuild @@ -327,6 +327,7 @@ S=${WORKDIR}/${P/_/-} PATCHES=( "${FILESDIR}"/chromium-r1.patch "${FILESDIR}"/${PN}-4.3-fix-build-without-SSSE3.patch + "${FILESDIR}"/${PN}-4.3-altivec-novsx-yuv2rgb.patch ) MULTILIB_WRAPPED_HEADERS=( diff --git a/media-video/ffmpeg/files/ffmpeg-4.3-altivec-novsx-yuv2rgb.patch b/media-video/ffmpeg/files/ffmpeg-4.3-altivec-novsx-yuv2rgb.patch new file mode 100644 index 00000000000..40e7f916172 --- /dev/null +++ b/media-video/ffmpeg/files/ffmpeg-4.3-altivec-novsx-yuv2rgb.patch @@ -0,0 +1,23 @@ +Fixes build on ppc. +https://trac.ffmpeg.org/attachment/ticket/8750/ffmpeg_altivec_yuv2rgb_novsx.patch +diff --git a/libswscale/ppc/yuv2rgb_altivec.c b/libswscale/ppc/yuv2rgb_altivec.c +index 536545293d..930ef6b98f 100644 +--- a/libswscale/ppc/yuv2rgb_altivec.c ++++ b/libswscale/ppc/yuv2rgb_altivec.c +@@ -283,6 +283,16 @@ static inline void cvtyuvtoRGB(SwsContext *c, vector signed short Y, + * ------------------------------------------------------------------------------ + */ + ++#if !HAVE_VSX ++static inline vector unsigned char vec_xl(signed long long offset, const ubyte *addr) ++{ ++ const vector unsigned char *v_addr = (const vector unsigned char *) (addr + offset); ++ vector unsigned char align_perm = vec_lvsl(offset, addr); ++ ++ return (vector unsigned char) vec_perm(v_addr[0], v_addr[1], align_perm); ++} ++#endif /* !HAVE_VSX */ ++ + #define DEFCSP420_CVT(name, out_pixels) \ + static int altivec_ ## name(SwsContext *c, const unsigned char **in, \ + int *instrides, int srcSliceY, int srcSliceH, \
