Bug#1072439: obs-studio: FTBFS with ffmpeg 7.0: obs-ffmpeg-mpegts.c:442:25: error: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Werror=incompatible-pointer-types]
Source: obs-studio
Version: 30.1.2+dfsg-1
Severity: important
Tags: trixie sid ftbfs
Usertags: ffmpeg-7.0
Hi,
during a rebuild of the reverse dependencies for the transition to
ffmpeg 7.0, your package failed to build
Relevant part (hopefully):
> /usr/bin/cc -DENABLE_HEVC -DHAVE_OBSCONFIG_H -DNEW_MPEGTS_OUTPUT -Dobs_ffmpeg_EXPORTS -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/config -I/<<PKGBUILDDIR>>/libobs -I/<<PKGBUILDDIR>>/deps/media-playback -I/<<PKGBUILDDIR>>/deps/opts-parser -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -DFFMPEG_MUX_FIXED=\"/usr/lib/aarch64-linux-gnu/obs-plugins/obs-ffmpeg/obs-ffmpeg-mux\" -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fvisibility=hidden -Wno-error=deprecated-declarations -std=gnu17 -fPIC -Werror -Wextra -Wvla -Wno-error=vla -Wswitch -Wno-error=switch -Wformat -Wformat-security -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Werror-implicit-function-declaration -Wno-missing-braces -Wno-error=maybe-uninitialized -Wno-error=type-limits -DSIMDE_ENABLE_OPENMP -fopenmp-simd -MD -MT plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-mpegts.c.o -MF plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-mpegts.c.o.d -o plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-mpegts.c.o -c /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c
> /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c: In function ‘allocate_custom_aviocontext’:
> /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c:442:25: error: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Werror=incompatible-pointer-types]
> 442 | (int (*)(void *, uint8_t *, int))librist_write, NULL);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | |
> | int (*)(void *, uint8_t *, int) {aka int (*)(void *, unsigned char *, int)}
> In file included from /usr/include/aarch64-linux-gnu/libavformat/avformat.h:319,
> from /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-output.h:6,
> from /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c:25:
> /usr/include/aarch64-linux-gnu/libavformat/avio.h:404:25: note: expected ‘int (*)(void *, const uint8_t *, int)’ {aka ‘int (*)(void *, const unsigned char *, int)’} but argument is of type ‘int (*)(void *, uint8_t *, int)’ {aka ‘int (*)(void *, unsigned char *, int)’}
> 404 | int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size),
> | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c:446:25: error: passing argument 6 of ‘avio_alloc_context’ from incompatible pointer type [-Werror=incompatible-pointer-types]
> 446 | (int (*)(void *, uint8_t *, int))libsrt_write, NULL);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> | |
> | int (*)(void *, uint8_t *, int) {aka int (*)(void *, unsigned char *, int)}
> /usr/include/aarch64-linux-gnu/libavformat/avio.h:404:25: note: expected ‘int (*)(void *, const uint8_t *, int)’ {aka ‘int (*)(void *, const unsigned char *, int)’} but argument is of type ‘int (*)(void *, uint8_t *, int)’ {aka ‘int (*)(void *, unsigned char *, int)’}
> 404 | int (*write_packet)(void *opaque, const uint8_t *buf, int buf_size),
> | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> cc1: all warnings being treated as errors
> [258/483] /usr/bin/cc -DENABLE_HEVC -DHAVE_OBSCONFIG_H -DNEW_MPEGTS_OUTPUT -Dobs_ffmpeg_EXPORTS -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/config -I/<<PKGBUILDDIR>>/libobs -I/<<PKGBUILDDIR>>/deps/media-playback -I/<<PKGBUILDDIR>>/deps/opts-parser -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -DFFMPEG_MUX_FIXED=\"/usr/lib/aarch64-linux-gnu/obs-plugins/obs-ffmpeg/obs-ffmpeg-mux\" -DSIMDE_ENABLE_OPENMP -fopenmp-simd -O3 -fvisibility=hidden -Wno-error=deprecated-declarations -std=gnu17 -fPIC -Werror -Wextra -Wvla -Wno-error=vla -Wswitch -Wno-error=switch -Wformat -Wformat-security -Wunused-parameter -Wno-unused-function -Wno-missing-field-initializers -fno-strict-aliasing -Werror-implicit-function-declaration -Wno-missing-braces -Wno-error=maybe-uninitialized -Wno-error=type-limits -DSIMDE_ENABLE_OPENMP -fopenmp-simd -MD -MT plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-vaapi.c.o -MF plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-vaapi.c.o.d -o plugins/obs-ffmpeg/CMakeFiles/obs-ffmpeg.dir/obs-ffmpeg-vaapi.c.o -c /<<PKGBUILDDIR>>/plugins/obs-ffmpeg/obs-ffmpeg-vaapi.c
> ninja: build stopped: subcommand failed.
> dh_auto_build: error: cd obj-aarch64-linux-gnu && LC_ALL=C.UTF-8 ninja -j2 -v returned exit code 1
> make: *** [debian/rules:38: binary-arch] Error 25
The full build log is available from:
https://people.debian.org/~sramacher/ffmpeg-7.0/obs-studio_arm64.build
ffmpeg 7.0 is available in experimental.
Cheers
--
Sebastian Ramacher
Reply to: