Bug#1072427: kodi: FTBFS with ffmpeg 7.0: DVDDemuxFFmpeg.cpp:424:37: error: ‘const AVInputFormat’ {aka ‘const struct AVInputFormat’} has no member named ‘read_probe’
Source: kodi
Version: 2:20.5+dfsg-2
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):
> cd /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/build/cores/VideoPlayer/demuxers && /usr/bin/c++ -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/lib -I/<<PKGBUILDDIR>>/xbmc -I/<<PKGBUILDDIR>>/xbmc/platform/linux -I/<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/build -I/<<PKGBUILDDIR>>/xbmc/platform/posix -isystem /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/build/include -isystem /usr/include/dbus-1.0 -isystem /usr/lib/aarch64-linux-gnu/dbus-1.0/include -isystem /usr/include/pipewire-0.3 -isystem /usr/include/spa-0.2 -isystem /usr/include/python3.11 -isystem /usr/include/samba-4.0 -isystem /usr/include/libxml2 -isystem /<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/build/cores/RetroPlayer/messages -isystem /usr/include/freetype2 -isystem /usr/include/fribidi -isystem /usr/include/lzo -isystem /usr/include/libdrm -g -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -O3 -Wdate-time -D_FORTIFY_SOURCE=2 -D_XBMC -DDEB_VERSION=\"2:20.5+dfsg-2\" -Wall -Wdouble-promotion -Wmissing-field-initializers -Wsign-compare -Wextra -Wno-unused-parameter -Wno-cast-function-type -Wnon-virtual-dtor -O2 -g -DNDEBUG -std=c++17 -DTARGET_POSIX -DTARGET_LINUX -D_GNU_SOURCE -DHAVE_LINUX_UDMABUF=1 -DHAVE_LINUX_DMA_HEAP=1 -DHAVE_LINUX_DMA_BUF=1 -DHAVE_MKOSTEMP=1 -DHAVE_LINUX_MEMFD=1 -DHAVE_STATX=1 -D__STDC_CONSTANT_MACROS -D_FILE_OFFSET_BITS=64 -DHAS_POSIX_NETWORK -DHAS_LINUX_NETWORK -DHAS_BUILTIN_SYNC_ADD_AND_FETCH=1 -DHAS_BUILTIN_SYNC_SUB_AND_FETCH=1 -DHAS_BUILTIN_SYNC_VAL_COMPARE_AND_SWAP=1 -DHAVE_INOTIFY=1 -DHAVE_POSIX_FADVISE=1 -DHAVE_LOCALTIME_R=1 -DHAVE_GMTIME_R=1 -DHAVE_INTTYPES_H=1 -DHAS_ALSA=1 -DHAS_AVAHI=1 -DHAS_ZEROCONF=1 -DHAVE_LIBBLURAY=1 -DHAVE_LIBBLURAY_BDJ=1 -DHAVE_LIBCEC=1 -DHAS_DBUS=1 -DHAS_ISO9660PP=1 -DHAVE_LCMS2=1 -DCMS_NO_REGISTER_KEYWORD=1 -DHAS_LIRC=1 -DHAS_WEB_SERVER=1 -DHAS_WEB_INTERFACE=1 -DHAS_FILESYSTEM_NFS=1 -DHAS_NFS_SET_TIMEOUT -DHAS_NFS_MOUNT_GETEXPORTS_TIMEOUT -DHAS_PIPEWIRE=1 -DHAS_AIRPLAY=1 -DHAS_PULSEAUDIO=1 -DHAS_PYTHON=1 -DHAS_FILESYSTEM_SMB=1 -DHAS_SNDIO=1 -DHAVE_LIBUDEV=1 -DHAS_UDFREAD=1 -DHAVE_LIBXSLT=1 -DHAVE_LIBVA=1 -DDATE_HAS_STRINGVIEW -DFFMPEG_VER_SHA=\"4.4.1\" -DHAVE_GCRYPT=1 -DSPDLOG_FMT_EXTERNAL -DSPDLOG_DEBUG_ON -DSPDLOG_NO_ATOMIC_LEVELS -DSPDLOG_ENABLE_PATTERN_PADDING -DSPDLOG_COMPILED_LIB -I/usr/include -DSPDLOG_SHARED_LIB -DHAS_EGL=1 -DHAVE_EGLEXTANGLE=1 -DHAVE_X11=1 -DHAVE_LIBXRANDR=1 -DHAVE_HDR_OUTPUT_METADATA=1 -DHAVE_DRM_MODIFIER_NAME=1 -DHAS_GLES=3 -DHAVE_WAYLAND=1 -DHAVE_GBM=1 -DHAS_GBM_BO_MAP=1 -DHAS_GBM_MODIFIERS=1 -DHAS_MYSQL=1 -DHAS_UPNP=1 -DHAS_DVD_DRIVE -DHAS_CDDA_RIPPER -DHAS_AIRTUNES=1 -DBIN_INSTALL_PATH=\"/usr/lib/aarch64-linux-gnu/kodi\" -DINSTALL_PATH=\"/usr/share/kodi\" -Werror=double-promotion -Werror=missing-field-initializers -Werror=sign-compare -MD -MT build/cores/VideoPlayer/demuxers/CMakeFiles/dvddemuxers.dir/DVDDemuxFFmpeg.cpp.o -MF CMakeFiles/dvddemuxers.dir/DVDDemuxFFmpeg.cpp.o.d -o CMakeFiles/dvddemuxers.dir/DVDDemuxFFmpeg.cpp.o -c /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp: In member function ‘bool CDVDDemuxFFmpeg::Open(const std::shared_ptr<CDVDInputStream>&, bool)’:
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:424:37: error: ‘const AVInputFormat’ {aka ‘const struct AVInputFormat’} has no member named ‘read_probe’
> 424 | if (iformat2 && iformat2->read_probe(&pd) > AVPROBE_SCORE_MAX / 4)
> | ^~~~~~~~~~
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:433:39: error: ‘const AVInputFormat’ {aka ‘const struct AVInputFormat’} has no member named ‘read_probe’
> 433 | if (iformat2 && iformat2->read_probe(&pd) > AVPROBE_SCORE_MAX / 4)
> | ^~~~~~~~~~
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp: In member function ‘virtual bool CDVDDemuxFFmpeg::SeekTime(double, bool, double*)’:
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:1376:38: error: ‘const struct AVInputFormat’ has no member named ‘read_seek’
> 1376 | if (m_pFormatContext->iformat->read_seek)
> | ^~~~~~~~~
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp: In member function ‘CDemuxStream* CDVDDemuxFFmpeg::AddStream(int)’:
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:1754:44: warning: ‘uint8_t* av_stream_get_side_data(const AVStream*, AVPacketSideDataType, size_t*)’ is deprecated [-Wdeprecated-declarations]
> 1754 | side_data = av_stream_get_side_data(pStream, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, &size);
> | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> In file included from /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.h:19,
> from /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:9:
> /usr/include/aarch64-linux-gnu/libavformat/avformat.h:2122:10: note: declared here
> 2122 | uint8_t *av_stream_get_side_data(const AVStream *stream,
> | ^~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:1761:44: warning: ‘uint8_t* av_stream_get_side_data(const AVStream*, AVPacketSideDataType, size_t*)’ is deprecated [-Wdeprecated-declarations]
> 1761 | side_data = av_stream_get_side_data(pStream, AV_PKT_DATA_CONTENT_LIGHT_LEVEL, &size);
> | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/aarch64-linux-gnu/libavformat/avformat.h:2122:10: note: declared here
> 2122 | uint8_t *av_stream_get_side_data(const AVStream *stream,
> | ^~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp: In member function ‘StreamHdrType CDVDDemuxFFmpeg::DetermineHdrType(AVStream*)’:
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:2608:30: warning: ‘uint8_t* av_stream_get_side_data(const AVStream*, AVPacketSideDataType, size_t*)’ is deprecated [-Wdeprecated-declarations]
> 2608 | if (av_stream_get_side_data(pStream, AV_PKT_DATA_DOVI_CONF, nullptr)) // DoVi
> | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/aarch64-linux-gnu/libavformat/avformat.h:2122:10: note: declared here
> 2122 | uint8_t *av_stream_get_side_data(const AVStream *stream,
> | ^~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp:2616:35: warning: ‘uint8_t* av_stream_get_side_data(const AVStream*, AVPacketSideDataType, size_t*)’ is deprecated [-Wdeprecated-declarations]
> 2616 | else if (av_stream_get_side_data(pStream, AV_PKT_DATA_MASTERING_DISPLAY_METADATA, nullptr))
> | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /usr/include/aarch64-linux-gnu/libavformat/avformat.h:2122:10: note: declared here
> 2122 | uint8_t *av_stream_get_side_data(const AVStream *stream,
> | ^~~~~~~~~~~~~~~~~~~~~~~
> make[4]: *** [build/cores/VideoPlayer/demuxers/CMakeFiles/dvddemuxers.dir/build.make:163: build/cores/VideoPlayer/demuxers/CMakeFiles/dvddemuxers.dir/DVDDemuxFFmpeg.cpp.o] Error 1
The full build log is available from:
https://people.debian.org/~sramacher/ffmpeg-7.0/kodi_arm64.build
ffmpeg 7.0 is available in experimental.
Cheers
--
Sebastian Ramacher
Reply to: