[FFmpeg-trac] #7124(swscale:closed): Unexpected results from YUV-RGB color space conversion optimization on POWER8/LE
FFmpeg
trac at avcodec.org
Wed Jun 17 15:13:06 EEST 2020
#7124: Unexpected results from YUV-RGB color space conversion optimization on
POWER8/LE
-------------------------------------+-----------------------------------
Reporter: seiko | Owner:
Type: defect | Status: closed
Priority: normal | Component: swscale
Version: git-master | Resolution: fixed
Keywords: ppc altivec | Blocked By:
Blocking: | Reproduced by developer: 1
Analyzed by developer: 1 |
-------------------------------------+-----------------------------------
Comment (by marillat):
This patch break the build with gcc 9.3.0 (Debian 9.3.0-13) ffmpeg 4.3
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
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/7124#comment:10>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list