Bug#1072403: cantata: FTBFS with ffmpeg 7.0: ffmpeginput.cpp:284:43: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
Source: cantata
Version: 2.5.0.ds1-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/support && /usr/bin/c++ -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_SQL_LIB -DQT_SVG_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/support/support_autogen/include -I/usr/include/aarch64-linux-gnu/qt5 -I/usr/include/aarch64-linux-gnu/qt5/QtMultimedia -I/usr/include/aarch64-linux-gnu/qt5/QtNetwork -I/usr/include/aarch64-linux-gnu/qt5/QtCore -I/usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -I/usr/include/aarch64-linux-gnu/qt5/QtGui -I/<<PKGBUILDDIR>>/3rdparty -I/<<PKGBUILDDIR>> -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu -I/usr/include/aarch64-linux-gnu/qt5/QtWidgets -I/usr/include/aarch64-linux-gnu/qt5/QtXml -I/usr/include/aarch64-linux-gnu/qt5/QtConcurrent -I/usr/include/aarch64-linux-gnu/qt5/QtSvg -I/usr/include/aarch64-linux-gnu/qt5/QtSql -I/usr/include/aarch64-linux-gnu/qt5/QtDBus -I/usr/include/taglib -I/usr/include/neon -I/usr/include/libxml2 -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/support -I/<<PKGBUILDDIR>>/support -g -O2 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -std=gnu++11 -fPIC -I/usr/include/taglib -fexceptions -UQT_NO_EXCEPTIONS -MD -MT support/CMakeFiles/support.dir/messagewidget.cpp.o -MF CMakeFiles/support.dir/messagewidget.cpp.o.d -o CMakeFiles/support.dir/messagewidget.cpp.o -c /<<PKGBUILDDIR>>/support/messagewidget.cpp
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp: In destructor ‘virtual FfmpegInput::~FfmpegInput()’:
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:256:22: warning: ‘int avcodec_close(AVCodecContext*)’ is deprecated [-Wdeprecated-declarations]
> 256 | avcodec_close(handle->codecContext);
> | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
> In file included from /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:21:
> /usr/include/aarch64-linux-gnu/libavcodec/avcodec.h:2387:5: note: declared here
> 2387 | int avcodec_close(AVCodecContext *avctx);
> | ^~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp: In member function ‘virtual unsigned int FfmpegInput::channels() const’:
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:284:43: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
> 284 | return handle ? handle->codecContext->channels : 0;
> | ^~~~~~~~
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp: In member function ‘virtual bool FfmpegInput::setChannelMap(int*) const’:
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:299:41: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
> 299 | if (handle && handle->codecContext->channel_layout) {
> | ^~~~~~~~~~~~~~
> | ch_layout
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:302:60: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
> 302 | while (mapIndex < (unsigned) handle->codecContext->channels) {
> | ^~~~~~~~
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:303:39: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
> 303 | if (handle->codecContext->channel_layout & (1 << bitCounter)) {
> | ^~~~~~~~~~~~~~
> | ch_layout
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp: In member function ‘size_t FfmpegInput::readOnePacket()’:
> /<<PKGBUILDDIR>>/replaygain/ffmpeginput.cpp:473:45: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
> 473 | int numChannels = handle->codecContext->channels;
> | ^~~~~~~~
> make[3]: *** [replaygain/CMakeFiles/cantata-replaygain.dir/build.make:100: replaygain/CMakeFiles/cantata-replaygain.dir/ffmpeginput.cpp.o] Error 1
The full build log is available from:
https://people.debian.org/~sramacher/ffmpeg-7.0/cantata_arm64.build
ffmpeg 7.0 is available in experimental.
Cheers
--
Sebastian Ramacher
Reply to: