[Pkg-kde-extras] Bug#1072453: subtitlecomposer: FTBFS with ffmpeg 7.0: streamprocessor.cpp:277:25: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?

Sebastian Ramacher sramacher at debian.org
Sun Jun 2 14:26:37 BST 2024


Source: subtitlecomposer
Version: 0.8.0-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/src && /usr/bin/c++ -DKCOREADDONS_LIB -DQT_CONCURRENT_LIB -DQT_CORE_LIB -DQT_DBUS_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_QML_LIB -DQT_WIDGETS_LIB -DQT_XML_LIB -D_DEFAULT_SOURCE -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/src -I/<<PKGBUILDDIR>>/src -I/<<PKGBUILDDIR>>/obj-aarch64-linux-gnu/src/subtitlecomposer-lib_autogen/include -I/<<PKGBUILDDIR>>/src/widgets -I/usr/include/AL -isystem /usr/include/aarch64-linux-gnu/qt5 -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore -isystem /usr/lib/aarch64-linux-gnu/qt5/mkspecs/linux-g++ -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets/5.15.13 -isystem /usr/include/aarch64-linux-gnu/qt5/QtWidgets/5.15.13/QtWidgets -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui/5.15.13 -isystem /usr/include/aarch64-linux-gnu/qt5/QtGui/5.15.13/QtGui -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore/5.15.13 -isystem /usr/include/aarch64-linux-gnu/qt5/QtCore/5.15.13/QtCore -isystem /usr/include/aarch64-linux-gnu/qt5/QtQml -isystem /usr/include/aarch64-linux-gnu/qt5/QtNetwork -isystem /usr/include/KF5/KCoreAddons -isystem /usr/include/KF5 -isystem /usr/include/KF5/KWidgetsAddons -isystem /usr/include/KF5/KTextWidgets -isystem /usr/include/KF5/SonnetUi -isystem /usr/include/KF5/Sonnet -isystem /usr/include/KF5/KI18n -isystem /usr/include/KF5/KCodecs -isystem /usr/include/KF5/SonnetCore -isystem /usr/include/KF5/KIOCore -isystem /usr/include/KF5/KIO -isystem /usr/include/KF5/KService -isystem /usr/include/KF5/KConfig -isystem /usr/include/KF5/KConfigCore -isystem /usr/include/aarch64-linux-gnu/qt5/QtDBus -isystem /usr/include/aarch64-linux-gnu/qt5/QtConcurrent -isystem /usr/include/KF5/KIOFileWidgets -isystem /usr/include/KF5/KIOWidgets -isystem /usr/include/KF5/KIOGui -isystem /usr/include/KF5/KWindowSystem -isystem /usr/include/KF5/KJobWidgets -isystem /usr/include/KF5/Solid -isystem /usr/include/KF5/KCompletion -isystem /usr/include/KF5/KBookmarks -isystem /usr/include/aarch64-linux-gnu/qt5/QtXml -isystem /usr/include/KF5/KItemViews -isystem /usr/include/KF5/KXmlGui -isystem /usr/include/KF5/KConfigWidgets -isystem /usr/include/KF5/KConfigGui -isystem /usr/include/KF5/KAuthWidgets -isystem /usr/include/KF5/KAuthCore -isystem /usr/include/KF5/KAuth -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 -fno-operator-names -fno-exceptions -Wall -Wextra -Wcast-align -Wchar-subscripts -Wformat-security -Wno-long-long -Wpointer-arith -Wundef -Wnon-virtual-dtor -Woverloaded-virtual -Werror=return-type -Werror=init-self -Wvla -Wdate-time -Wsuggest-override -Wlogical-op -std=gnu++11 -fvisibility=hidden -fvisibility-inlines-hidden -fPIC -MD -MT src/CMakeFiles/subtitlecomposer-lib.dir/translate/translatedialog.cpp.o -MF CMakeFiles/subtitlecomposer-lib.dir/translate/translatedialog.cpp.o.d -o CMakeFiles/subtitlecomposer-lib.dir/translate/translatedialog.cpp.o -c /<<PKGBUILDDIR>>/src/translate/translatedialog.cpp
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp: In member function ‘bool SubtitleComposer::StreamProcessor::initAudio(int, const WaveFormat&)’:
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:277:25: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
>   277 |         if(!m_codecCtx->channel_layout)
>       |                         ^~~~~~~~~~~~~~
>       |                         ch_layout
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:278:29: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
>   278 |                 m_codecCtx->channel_layout = av_get_default_channel_layout(m_codecCtx->channels);;
>       |                             ^~~~~~~~~~~~~~
>       |                             ch_layout
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:278:88: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
>   278 |                 m_codecCtx->channel_layout = av_get_default_channel_layout(m_codecCtx->channels);;
>       |                                                                                        ^~~~~~~~
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:278:46: error: ‘av_get_default_channel_layout’ was not declared in this scope
>   278 |                 m_codecCtx->channel_layout = av_get_default_channel_layout(m_codecCtx->channels);;
>       |                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:281:61: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channels’
>   281 |                 m_audioStreamFormat.setChannels(m_codecCtx->channels);
>       |                                                             ^~~~~~~~
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:282:52: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
>   282 |                 m_audioChannelLayout = m_codecCtx->channel_layout;
>       |                                                    ^~~~~~~~~~~~~~
>       |                                                    ch_layout
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:284:40: error: ‘av_get_default_channel_layout’ was not declared in this scope
>   284 |                 m_audioChannelLayout = av_get_default_channel_layout(m_audioStreamFormat.channels());
>       |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:288:47: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
>   288 |         const bool convChannels = m_codecCtx->channel_layout != m_audioChannelLayout;
>       |                                               ^~~~~~~~~~~~~~
>       |                                               ch_layout
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:294:37: error: ‘AVCodecContext’ {aka ‘struct AVCodecContext’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
>   294 |                         m_codecCtx->channel_layout, m_codecCtx->sample_fmt, m_codecCtx->sample_rate,
>       |                                     ^~~~~~~~~~~~~~
>       |                                     ch_layout
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:292:32: error: ‘swr_alloc_set_opts’ was not declared in this scope; did you mean ‘swr_alloc_set_opts2’?
>   292 |                 m_swResample = swr_alloc_set_opts(nullptr,
>       |                                ^~~~~~~~~~~~~~~~~~
>       |                                swr_alloc_set_opts2
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp: In member function ‘void SubtitleComposer::StreamProcessor::processAudio()’:
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:366:33: error: ‘AVFrame’ {aka ‘struct AVFrame’} has no member named ‘channel_layout’; did you mean ‘ch_layout’?
>   366 |                 frameResampled->channel_layout = m_audioChannelLayout;
>       |                                 ^~~~~~~~~~~~~~
>       |                                 ch_layout
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:434:59: error: ‘AVFrame’ {aka ‘struct AVFrame’} has no member named ‘pkt_duration’; did you mean ‘duration’?
>   434 |                                                 if(frame->pkt_duration)
>       |                                                           ^~~~~~~~~~~~
>       |                                                           duration
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:435:84: error: ‘AVFrame’ {aka ‘struct AVFrame’} has no member named ‘pkt_duration’; did you mean ‘duration’?
>   435 |                                                         timeFrameDuration = frame->pkt_duration * 1000 * m_avStream->time_base.num / m_avStream->time_base.den;
>       |                                                                                    ^~~~~~~~~~~~
>       |                                                                                    duration
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:451:133: error: ‘AVFrame’ {aka ‘struct AVFrame’} has no member named ‘channels’
>   451 |                                                 emit audioDataAvailable(frameResampled->data[0], qint32(frameSize * frameResampled->channels),
>       |                                                                                                                                     ^~~~~~~~
> /<<PKGBUILDDIR>>/src/streamprocessor/streamprocessor.cpp:456:115: error: ‘AVFrame’ {aka ‘struct AVFrame’} has no member named ‘channels’
>   456 |                                                 emit audioDataAvailable(frame->data[0], qint32(frameSize * frame->channels),
>       |                                                                                                                   ^~~~~~~~
> make[3]: *** [src/CMakeFiles/subtitlecomposer-lib.dir/build.make:1530: src/CMakeFiles/subtitlecomposer-lib.dir/streamprocessor/streamprocessor.cpp.o] Error 1


The full build log is available from:
https://people.debian.org/~sramacher/ffmpeg-7.0/subtitlecomposer_arm64.build

ffmpeg 7.0 is available in experimental.

Cheers

-- 
Sebastian Ramacher



More information about the pkg-kde-extras mailing list