[FFmpeg-devel] [PATCH 09/12] swscale/internal: constify SwsFunc
Martin Storsjö
martin at martin.st
Tue Oct 8 09:10:05 EEST 2024
On Tue, 8 Oct 2024, Niklas Haas wrote:
>> Sorry for not checking this earlier, but PowerPC 32- and 64-bit builds
>> with AltiVec enabled now fail with:
>>
>> src/libswscale/ppc/yuv2yuv_altivec.c: In function ‘ff_get_unscaled_swscale_ppc’:
>> src/libswscale/ppc/yuv2yuv_altivec.c:199:33: error: assignment to
>> ‘SwsFunc’ {aka ‘int (*)(SwsContext *, const unsigned char * const*,
>> const int *, int, int, unsigned char * const*, const int *)’} from
>> incompatible pointer type ‘int (*)(SwsContext *, const uint8_t **, int
>> *, int, int, uint8_t **, int *)’ {aka ‘int (*)(SwsContext *, const
>> unsigned char **, int *, int, int, unsigned char **, int *)’}
>> [-Wincompatible-pointer-types]
>> 199 | c->convert_unscaled = yv12toyuy2_unscaled_altivec;
>> | ^
>> src/libswscale/ppc/yuv2yuv_altivec.c:201:33: error: assignment to
>> ‘SwsFunc’ {aka ‘int (*)(SwsContext *, const unsigned char * const*,
>> const int *, int, int, unsigned char * const*, const int *)’} from
>> incompatible pointer type ‘int (*)(SwsContext *, const uint8_t **, int
>> *, int, int, uint8_t **, int *)’ {aka ‘int (*)(SwsContext *, const
>> unsigned char **, int *, int, int, unsigned char **, int *)’}
>> [-Wincompatible-pointer-types]
>> 201 | c->convert_unscaled = yv12touyvy_unscaled_altivec;
>> | ^
>> make: *** [src/ffbuild/common.mak:81: libswscale/ppc/yuv2yuv_altivec.o] Error 1
>
> My bad for missing this one. Is there a public way I can test build on different
> platforms before submitting series? I would have thought that posting it on the
> ML is enough to trigger FATE runs on all platforms, but I didn't get any email
> reply to the series.
No, there's no such infrastructure for running FATE across the various
(individually driven) instances that voluntarily run tests more or less
frequently, unfortunately. There is some minimal testing hooked up via
patchwork though.
In this case, also, the issue is that older compilers treat this issue as
a warning, while newer compilers are more strict and make it an error -
see
http://fate.ffmpeg.org/log.cgi?log=compile&slot=aarch64-linux-clang-10&time=20241008042010
vs
http://fate.ffmpeg.org/log.cgi?time=20241008032612&log=compile&slot=aarch64-linux-clang-trunk
In my testing, I ran into similar issues on both aarch64 and i686, while
x86_64 and armv7 seem to be fine. I'll push fixes for those architectures.
// Martin
More information about the ffmpeg-devel
mailing list