Source: ffmpeg
Version: 7:4.3.1-2
Severity: important
Tags: patch
User: debian-powerpc@lists.debian.org
Usertags: powerpc ppc64
X-Debbugs-Cc: debian-powerpc@lists.debian.org

Hello!

ffmpeg currently FTBFS on powerpc and ppc64 [1]:

src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_abgr’:
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: implicit declaration of 
function ‘vec_xl’; did you mean ‘vec_rl’? 
[-Werror=implicit-function-declaration]
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  437 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=2 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST 
-DHAVE_AV_CONFIG_H -DBUILDING_swscale -g -O2 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE   
-std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread  
-I/usr/include/p11-kit-1  -I/usr/include/lilv-0 -I/usr/include/sratom-0 
-I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz 
-I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include 
-I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid 
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b    
-I/usr/include/libdrm -I/usr/include/uuid -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 
-I/usr/include/fribidi  -I/usr/include/openjpeg-2.3  -I/usr/include/opus 
-I/usr/include/opus -D_REENTRANT  -pthread -I/usr/include/librsvg-2.0 
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid 
-I/usr/include/cairo -I/usr/include/glib-2.0 
-I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 
-I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16     
-I/usr/include/srt -I/usr/include/p11-kit-1           -isystem 
/usr/include/mit-krb5 -I/usr/include/pgm-5.2  -I/usr/include/libxml2            
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith 
-Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes 
-Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses 
-Wno-switch -Wno-format-zero-length -Wno-pointer-sign 
-Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -O3 
-fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security 
-Werror=implicit-function-declaration -Werror=missing-prototypes 
-Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto 
-Wno-maybe-uninitialized -D_REENTRANT -I/usr/include/SDL2  -MMD -MF 
libswscale/swscale_unscaled.d -MT libswscale/swscale_unscaled.o -c -o 
libswscale/swscale_unscaled.o src/libswscale/swscale_unscaled.c
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  437 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  340 |             y1 = vec_xl(0, y2i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  437 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:437:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c:437:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgra’:
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:438:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  438 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  340 |             y1 = vec_xl(0, y2i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:438:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  438 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:438:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c:438:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=2 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST 
-DHAVE_AV_CONFIG_H -DBUILDING_swscale -g -O2 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE   
-std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread  
-I/usr/include/p11-kit-1  -I/usr/include/lilv-0 -I/usr/include/sratom-0 
-I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz 
-I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include 
-I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid 
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b    
-I/usr/include/libdrm -I/usr/include/uuid -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 
-I/usr/include/fribidi  -I/usr/include/openjpeg-2.3  -I/usr/include/opus 
-I/usr/include/opus -D_REENTRANT  -pthread -I/usr/include/librsvg-2.0 
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid 
-I/usr/include/cairo -I/usr/include/glib-2.0 
-I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 
-I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16     
-I/usr/include/srt -I/usr/include/p11-kit-1           -isystem 
/usr/include/mit-krb5 -I/usr/include/pgm-5.2  -I/usr/include/libxml2            
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith 
-Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes 
-Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses 
-Wno-switch -Wno-format-zero-length -Wno-pointer-sign 
-Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -O3 
-fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security 
-Werror=implicit-function-declaration -Werror=missing-prototypes 
-Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto 
-Wno-maybe-uninitialized -D_REENTRANT -I/usr/include/SDL2  -MMD -MF 
libswscale/utils.d -MT libswscale/utils.o -c -o libswscale/utils.o 
src/libswscale/utils.c
src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgba’:
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:439:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  439 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  340 |             y1 = vec_xl(0, y2i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:439:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  439 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:439:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c:439:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_argb’:
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:440:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  440 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  340 |             y1 = vec_xl(0, y2i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:440:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  440 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:440:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c:440:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgb24’:
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:441:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  441 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  340 |             y1 = vec_xl(0, y2i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:441:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  441 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:441:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c:441:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgr24’:
src/libswscale/ppc/yuv2rgb_altivec.c:338:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  338 |             y0 = vec_xl(0, y1i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:442:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  442 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:340:18: error: incompatible types when 
assigning to type ‘__vector unsigned char’ {aka ‘__vector(16) unsigned char’} 
from type ‘int’
  340 |             y1 = vec_xl(0, y2i);                                        
      \
      |                  ^~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:442:1: note: in expansion of macro 
‘DEFCSP420_CVT’
  442 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
src/libswscale/ppc/yuv2rgb_altivec.c:442:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
src/libswscale/ppc/yuv2rgb_altivec.c:442:1: error: cannot convert a value of 
type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=2 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST 
-DHAVE_AV_CONFIG_H -DBUILDING_swscale -g -O2 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE   
-std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread  
-I/usr/include/p11-kit-1  -I/usr/include/lilv-0 -I/usr/include/sratom-0 
-I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz 
-I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include 
-I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid 
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b    
-I/usr/include/libdrm -I/usr/include/uuid -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 
-I/usr/include/fribidi  -I/usr/include/openjpeg-2.3  -I/usr/include/opus 
-I/usr/include/opus -D_REENTRANT  -pthread -I/usr/include/librsvg-2.0 
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid 
-I/usr/include/cairo -I/usr/include/glib-2.0 
-I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 
-I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16     
-I/usr/include/srt -I/usr/include/p11-kit-1           -isystem 
/usr/include/mit-krb5 -I/usr/include/pgm-5.2  -I/usr/include/libxml2            
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith 
-Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes 
-Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses 
-Wno-switch -Wno-format-zero-length -Wno-pointer-sign 
-Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -O3 
-fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security 
-Werror=implicit-function-declaration -Werror=missing-prototypes 
-Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto 
-Wno-maybe-uninitialized -D_REENTRANT -I/usr/include/SDL2  -MMD -MF 
libswscale/vscale.d -MT libswscale/vscale.o -c -o libswscale/vscale.o 
src/libswscale/vscale.c
gcc -I. -Isrc/ -Wdate-time -D_FORTIFY_SOURCE=2 -U_FORTIFY_SOURCE 
-D_FORTIFY_SOURCE=2 -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE 
-D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 -DPIC -DZLIB_CONST 
-DHAVE_AV_CONFIG_H -DBUILDING_swscale -g -O2 
-fdebug-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -Wformat 
-Werror=format-security -fno-strict-overflow -fstack-protector-all -fPIE   
-std=c11 -fomit-frame-pointer -fPIC -maltivec -mabi=altivec -pthread  
-I/usr/include/p11-kit-1  -I/usr/include/lilv-0 -I/usr/include/sratom-0 
-I/usr/include/sord-0 -I/usr/include/serd-0 -I/usr/include/harfbuzz 
-I/usr/include/glib-2.0 -I/usr/lib/powerpc64-linux-gnu/glib-2.0/include 
-I/usr/include/uuid -I/usr/include/fribidi -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/libxml2 -I/usr/include/uuid 
-I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/bs2b    
-I/usr/include/libdrm -I/usr/include/uuid -I/usr/include/freetype2 
-I/usr/include/libpng16 -I/usr/include/freetype2 -I/usr/include/libpng16 
-I/usr/include/fribidi  -I/usr/include/openjpeg-2.3  -I/usr/include/opus 
-I/usr/include/opus -D_REENTRANT  -pthread -I/usr/include/librsvg-2.0 
-I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libmount -I/usr/include/blkid 
-I/usr/include/cairo -I/usr/include/glib-2.0 
-I/usr/lib/powerpc64-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 
-I/usr/include/uuid -I/usr/include/freetype2 -I/usr/include/libpng16     
-I/usr/include/srt -I/usr/include/p11-kit-1           -isystem 
/usr/include/mit-krb5 -I/usr/include/pgm-5.2  -I/usr/include/libxml2            
-g -Wdeclaration-after-statement -Wall -Wdisabled-optimization -Wpointer-arith 
-Wredundant-decls -Wwrite-strings -Wtype-limits -Wundef -Wmissing-prototypes 
-Wno-pointer-to-int-cast -Wstrict-prototypes -Wempty-body -Wno-parentheses 
-Wno-switch -Wno-format-zero-length -Wno-pointer-sign 
-Wno-unused-const-variable -Wno-bool-operation -Wno-char-subscripts -O3 
-fno-math-errno -fno-signed-zeros -fno-tree-vectorize -Werror=format-security 
-Werror=implicit-function-declaration -Werror=missing-prototypes 
-Werror=return-type -Werror=vla -Wformat -fdiagnostics-color=auto 
-Wno-maybe-uninitialized -D_REENTRANT -I/usr/include/SDL2  -MMD -MF 
libswscale/yuv2rgb.d -MT libswscale/yuv2rgb.o -c -o libswscale/yuv2rgb.o 
src/libswscale/yuv2rgb.c
cc1: some warnings being treated as errors
make[2]: *** [/<<PKGBUILDDIR>>/ffbuild/common.mak:59: 
libswscale/ppc/yuv2rgb_altivec.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/<<PKGBUILDDIR>>/debian/standard'

Upstream has a patch for that, see [2]. Could you backport that patch?

Thanks,
Adrian

> [1] 
> https://buildd.debian.org/status/fetch.php?pkg=ffmpeg&arch=ppc64&ver=7%3A4.3.1-2&stamp=1597687204&raw=0
> [2] https://trac.ffmpeg.org/ticket/8750

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaub...@debian.org
`. `'   Freie Universitaet Berlin - glaub...@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
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,     \

Reply via email to