Opened 4 years ago

Closed 3 years ago

#8750 closed defect (fixed)

Patch to fix #7124 break the build for powerpc

Reported by: marillat Owned by:
Priority: important Component: swscale
Version: git-master Keywords: ppc regression
Cc: glaubitz@physik.fu-berlin.de Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description (last modified by marillat)

commit 3a557c5d88b7b15b5954ba2743febb055549b536
break the build with gcc 9.3.0 (Debian 9.3.0-13) ffmpeg 4.3 powerpc

Altivec is enabled with "--cpu=g4"

CC	libswscale/ppc/yuv2rgb_altivec.o
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_abgr’:
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro ‘DEFCSP420_CVT’
  437 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro ‘DEFCSP420_CVT’
  437 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:437:1: note: in expansion of macro ‘DEFCSP420_CVT’
  437 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:437:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c:437:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgra’:
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:438:1: note: in expansion of macro ‘DEFCSP420_CVT’
  438 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:438:1: note: in expansion of macro ‘DEFCSP420_CVT’
  438 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:438:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c:438:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgba’:
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:439:1: note: in expansion of macro ‘DEFCSP420_CVT’
  439 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:439:1: note: in expansion of macro ‘DEFCSP420_CVT’
  439 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:439:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c:439:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_argb’:
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:440:1: note: in expansion of macro ‘DEFCSP420_CVT’
  440 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:440:1: note: in expansion of macro ‘DEFCSP420_CVT’
  440 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:440:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c:440:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgb24’:
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:441:1: note: in expansion of macro ‘DEFCSP420_CVT’
  441 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:441:1: note: in expansion of macro ‘DEFCSP420_CVT’
  441 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:441:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c:441:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgr24’:
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:442:1: note: in expansion of macro ‘DEFCSP420_CVT’
  442 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
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);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:442:1: note: in expansion of macro ‘DEFCSP420_CVT’
  442 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:442:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
libswscale/ppc/yuv2rgb_altivec.c:442:1: error: can’t convert a value of type ‘int’ to vector type ‘__vector(16) signed char’ which has different size
cc1: some warnings being treated as errors

Attachments (1)

ffmpeg_altivec_yuv2rgb_novsx.patch (1006 bytes ) - added by Chip Kerchner 4 years ago.

Download all attachments as: .zip

Change History (18)

comment:1 by marillat, 4 years ago

Description: modified (diff)

comment:2 by Carl Eugen Hoyos, 4 years ago

Component: undeterminedswscale
Keywords: ppc regression added
Priority: normalimportant
Version: unspecifiedgit-master

comment:3 by Chip Kerchner, 4 years ago

I suggest adding an inline function for the vec_xl intrinsic in non-VSX environments - see above patch.

comment:4 by marillat, 4 years ago

Still doesn't build

libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_abgr’:
libswscale/ppc/yuv2rgb_altivec.c:348:18: error: too many arguments to function ‘vec_xl’
  348 |             y0 = vec_xl(0, y1i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:447:1: note: in expansion of macro ‘DEFCSP420_CVT’
  447 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:350:18: error: too many arguments to function ‘vec_xl’
  350 |             y1 = vec_xl(0, y2i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:447:1: note: in expansion of macro ‘DEFCSP420_CVT’
  447 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:352:38: error: too many arguments to function ‘vec_xl’
  352 |             u = (vector signed char) vec_xl(0, ui);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:447:1: note: in expansion of macro ‘DEFCSP420_CVT’
  447 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:354:38: error: too many arguments to function ‘vec_xl’
  354 |             v = (vector signed char) vec_xl(0, vi);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:447:1: note: in expansion of macro ‘DEFCSP420_CVT’
  447 | DEFCSP420_CVT(yuv2_abgr,  out_abgr)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgra’:
libswscale/ppc/yuv2rgb_altivec.c:348:18: error: too many arguments to function ‘vec_xl’
  348 |             y0 = vec_xl(0, y1i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:448:1: note: in expansion of macro ‘DEFCSP420_CVT’
  448 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:350:18: error: too many arguments to function ‘vec_xl’
  350 |             y1 = vec_xl(0, y2i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:448:1: note: in expansion of macro ‘DEFCSP420_CVT’
  448 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:352:38: error: too many arguments to function ‘vec_xl’
  352 |             u = (vector signed char) vec_xl(0, ui);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:448:1: note: in expansion of macro ‘DEFCSP420_CVT’
  448 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:354:38: error: too many arguments to function ‘vec_xl’
  354 |             v = (vector signed char) vec_xl(0, vi);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:448:1: note: in expansion of macro ‘DEFCSP420_CVT’
  448 | DEFCSP420_CVT(yuv2_bgra,  out_bgra)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgba’:
libswscale/ppc/yuv2rgb_altivec.c:348:18: error: too many arguments to function ‘vec_xl’
  348 |             y0 = vec_xl(0, y1i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:449:1: note: in expansion of macro ‘DEFCSP420_CVT’
  449 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:350:18: error: too many arguments to function ‘vec_xl’
  350 |             y1 = vec_xl(0, y2i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:449:1: note: in expansion of macro ‘DEFCSP420_CVT’
  449 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:352:38: error: too many arguments to function ‘vec_xl’
  352 |             u = (vector signed char) vec_xl(0, ui);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:449:1: note: in expansion of macro ‘DEFCSP420_CVT’
  449 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:354:38: error: too many arguments to function ‘vec_xl’
  354 |             v = (vector signed char) vec_xl(0, vi);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:449:1: note: in expansion of macro ‘DEFCSP420_CVT’
  449 | DEFCSP420_CVT(yuv2_rgba,  out_rgba)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_argb’:
libswscale/ppc/yuv2rgb_altivec.c:348:18: error: too many arguments to function ‘vec_xl’
  348 |             y0 = vec_xl(0, y1i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:450:1: note: in expansion of macro ‘DEFCSP420_CVT’
  450 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:350:18: error: too many arguments to function ‘vec_xl’
  350 |             y1 = vec_xl(0, y2i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:450:1: note: in expansion of macro ‘DEFCSP420_CVT’
  450 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:352:38: error: too many arguments to function ‘vec_xl’
  352 |             u = (vector signed char) vec_xl(0, ui);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:450:1: note: in expansion of macro ‘DEFCSP420_CVT’
  450 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:354:38: error: too many arguments to function ‘vec_xl’
  354 |             v = (vector signed char) vec_xl(0, vi);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:450:1: note: in expansion of macro ‘DEFCSP420_CVT’
  450 | DEFCSP420_CVT(yuv2_argb,  out_argb)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_rgb24’:
libswscale/ppc/yuv2rgb_altivec.c:348:18: error: too many arguments to function ‘vec_xl’
  348 |             y0 = vec_xl(0, y1i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:451:1: note: in expansion of macro ‘DEFCSP420_CVT’
  451 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:350:18: error: too many arguments to function ‘vec_xl’
  350 |             y1 = vec_xl(0, y2i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:451:1: note: in expansion of macro ‘DEFCSP420_CVT’
  451 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:352:38: error: too many arguments to function ‘vec_xl’
  352 |             u = (vector signed char) vec_xl(0, ui);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:451:1: note: in expansion of macro ‘DEFCSP420_CVT’
  451 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:354:38: error: too many arguments to function ‘vec_xl’
  354 |             v = (vector signed char) vec_xl(0, vi);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:451:1: note: in expansion of macro ‘DEFCSP420_CVT’
  451 | DEFCSP420_CVT(yuv2_rgb24, out_rgb24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c: In function ‘altivec_yuv2_bgr24’:
libswscale/ppc/yuv2rgb_altivec.c:348:18: error: too many arguments to function ‘vec_xl’
  348 |             y0 = vec_xl(0, y1i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:452:1: note: in expansion of macro ‘DEFCSP420_CVT’
  452 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:350:18: error: too many arguments to function ‘vec_xl’
  350 |             y1 = vec_xl(0, y2i);                                              \
      |                  ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:452:1: note: in expansion of macro ‘DEFCSP420_CVT’
  452 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:352:38: error: too many arguments to function ‘vec_xl’
  352 |             u = (vector signed char) vec_xl(0, ui);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:452:1: note: in expansion of macro ‘DEFCSP420_CVT’
  452 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)
      |                                    ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:354:38: error: too many arguments to function ‘vec_xl’
  354 |             v = (vector signed char) vec_xl(0, vi);                           \
      |                                      ^~~~~~
libswscale/ppc/yuv2rgb_altivec.c:452:1: note: in expansion of macro ‘DEFCSP420_CVT’
  452 | DEFCSP420_CVT(yuv2_bgr24, out_bgr24)
      | ^~~~~~~~~~~~~
libswscale/ppc/yuv2rgb_altivec.c:287:36: note: declared here
  287 | static inline vector unsigned char vec_xl(const ubyte *addr)

comment:5 by marillat, 4 years ago

The latest patch is the same than the first one.

in reply to:  5 comment:6 by Chip Kerchner, 4 years ago

Replying to marillat:

The latest patch is the same than the first one.

Changed the compiler directive to !HAVE_VSX (also I replaced the patch so you are NOT seeing the old one). Plus I added a missing offset parameter from the 1st patch.

Last edited 4 years ago by Chip Kerchner (previous) (diff)

by Chip Kerchner, 4 years ago

comment:7 by marillat, 4 years ago

Build fine now :)

Thanks for the patch.

comment:8 by John Paul Adrian Glaubitz, 4 years ago

Hello!

I just ran into this issue as well. Any chance it can be fixed?

See: https://trac.ffmpeg.org/ticket/8855

comment:9 by John Paul Adrian Glaubitz, 4 years ago

Cc: glaubitz@physik.fu-berlin.de added

in reply to:  8 comment:10 by marillat, 4 years ago

Replying to glaubitz:

Hello!

I just ran into this issue as well. Any chance it can be fixed?

This bug has been fixed in the patch ffmpeg_altivec_yuv2rgb_novsx.patch​

in reply to:  8 comment:11 by marillat, 4 years ago

Replying to glaubitz:

Hello!

I just ran into this issue as well. Any chance it can be fixed?

This bug has been fixed in comment:7 ffmpeg_altivec_yuv2rgb_novsx.patch​

Last edited 4 years ago by marillat (previous) (diff)

comment:12 by John Paul Adrian Glaubitz, 4 years ago

Yes, but has the patch has not been merged yet.

See: https://github.com/FFmpeg/FFmpeg/commits/master/libswscale/ppc

comment:13 by John Paul Adrian Glaubitz, 4 years ago

Hi!

Is there a chance this fix could get merged into ffmpeg master?

The build is still broken on older POWER systems.

Thanks,
Adrian

comment:14 by Marton Balint, 3 years ago

Please send the patch to the ffmpeg-devel mailing list.

comment:16 by John Paul Adrian Glaubitz, 3 years ago

Hi!

Any news on this? The ffmpeg package is still broken on powerpc and ppc64 in Debian unstable:

https://buildd.debian.org/status/package.php?p=ffmpeg&suite=sid

Would be great if this could be fixed before the next point release. I think the fix is trival enough to be added without further testing besides the tests from Debian.

Adrian

comment:17 by Andriy Gelman, 3 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.