Tuesday, September 24, 2024

Re: UPDATE: FFmpeg 6.1.1

On Sun, Sep 22, 2024 at 07:55:38AM +0200, Rafael Sadowski wrote:
> Could some throw this into a bulk build please?
>
> The entire Qt5/Qt6 ecosystem depends on FFmpeg API >= 5.

This doesn't look too bad. The qtwebengines depend on an extra symbol
that would need to be patched into system ffmpeg since the chromium
devs didn't want to listen to the ffmpeg devs:

https://ffmpeg.org/pipermail/ffmpeg-devel/2021-September/285401.html

That's a bit annoying. Link to the patch below.

vlc has some vaapi issues. I haven't looked further. A few of the other
fallout has patches floating around the net, others don't seem to be
ready for new ffmpeg and others are probably ready for removal.

Here's the short list. Not sure how badly the bulk was cut short, seems
to have affected mostly the Qt ecosystem.

audio/chromaprint
audio/moc
audio/potamus
emulators/ppsspp
games/alephone/alephone
graphics/openscenegraph
multimedia/synfig
telephony/linphone/mediastreamer2
x11/qt5/qtwebengine!
x11/qt6/qtwebengine!
x11/vlc

More details below. Logs available on request.

audio/chromaprint

In file included from /tmp/pobj/chromaprint-1.5.1/chromaprint-1.5.1/src/cmd/fpcalc.cpp:7:
/tmp/pobj/chromaprint-1.5.1/chromaprint-1.5.1/src/audio/ffmpeg_audio_reader.h:117:16: error: assi
gning to 'AVInputFormat *' from 'const AVInputFormat *' discards qualifiers
m_input_fmt = av_find_input_format(name);
^~~~~~~~~~~~~~~~~~~~~~~~~~

looks like github HEAD has fixes.


audio/moc

/tmp/pobj/moc-2.5.2/moc-2.5.2/decoder_plugins/ffmpeg/ffmpeg.c:200:2: error: unknown type name 'AVCodecContext'
AVCodecContext *enc;
^
/tmp/pobj/moc-2.5.2/moc-2.5.2/decoder_plugins/ffmpeg/ffmpeg.c:315:28: error: no member named 'codec' in 'struct AVStream'
if (ic->streams[result]->codec->codec_type == AVMEDIA_TYPE_AUDIO)
~~~~~~~~~~~~~~~~~~~

upstream seems dead. Others package a 2.6 beta version


audio/potamus

ld: error: undefined symbol: av_register_all
>>> referenced by input-avcodec.c:242
>>> potamus-input-avcodec.o:(input_new_avcodec)

ld: error: undefined symbol: avcodec_register_all
>>> referenced by input-avcodec.c:243
>>> potamus-input-avcodec.o:(input_new_avcodec)

seems dead upstream, we are about the last ones who package it


emulators/ppsspp

/tmp/pobj/ppsspp-1.17.1/ppsspp-1.17.1/Core/HW/SimpleAudioDec.cpp:84:11: error: assigning to 'AVCo
dec *' from 'const AVCodec *' discards qualifiers
codec_ = avcodec_find_decoder((AVCodecID)audioCodecId);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

https://github.com/hrydgard/ppsspp/pull/18825


games/alephone/alephone

SDL_ffmpeg.c:296:58: error: no member named 'codec' in 'struct AVStream'
if ( old->_ffmpeg ) avcodec_close( old->_ffmpeg->codec );
~~~~~~~~~~~~ ^


graphics/openscenegraph

In file included from /tmp/pobj/openscenegraph-3.6.5/OpenSceneGraph-OpenSceneGraph-3.6.5/src/osgP
lugins/ffmpeg/FFmpegDecoderAudio.hpp:10:
/tmp/pobj/openscenegraph-3.6.5/OpenSceneGraph-OpenSceneGraph-3.6.5/src/osgPlugins/ffmpeg/FFmpegPa
cket.hpp:45:17: error: use of undeclared identifier 'av_free_packet'; did you mean 'av_init_packet'?
av_free_packet(&packet);
^~~~~~~~~~~~~~
av_init_packet


multimedia/synfig:

trgt_av.cpp:106:2: error: unknown type name 'AVCodecContext'
AVCodecContext *video_context;


telephony/linphone/mediastreamer2

In file included from /tmp/pobj/mediastreamer2-5.3.41/mediastreamer2-5.3.41/src/voip/msvideo.c:25
:
/tmp/pobj/mediastreamer2-5.3.41/mediastreamer2-5.3.41/src/utils/ffmpeg-priv.h:121:17: error: conf
licting types for 'avcodec_alloc_context3'
AVCodecContext *avcodec_alloc_context3(AVCodec *codec);
^
/usr/local/include/libavcodec/avcodec.h:2306:17: note: previous declaration is here
AVCodecContext *avcodec_alloc_context3(const AVCodec *codec);

x11/qt5/qtwebengine

ERROR: Unmodified ffmpeg >= 5.0 is not supported. Please configure with -qt-webengine-ffmpeg.

x11/qt6/qtwebengine

WARNING: QtWebEngine won't be built. Unmodified ffmpeg >= 5.0 is not supported.

then fails to package:

Error: /tmp/pobj/qt6-qtwebengine-6.6.3/fake-amd64/usr/local/lib/libQt6WebEngineCore.so.1.0 does not exist

this is about av_stream_get_first_dts(), see e.g.

https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/95aab0fd83619408995720ce53d7a74790580220%5E%21/


x11/vlc

checking for libavcodec/vaapi.h... no
configure: WARNING: libva is present but libavcodec/vaapi.h is missing
...
Error: /tmp/pobj/vlc-3.0.20/fake-amd64/usr/local/lib/vlc/plugins/codec/libvaapi_drm_plugin.so does not exist
Error: /tmp/pobj/vlc-3.0.20/fake-amd64/usr/local/lib/vlc/plugins/codec/libvaapi_plugin.so does not exist
pkg_create: can't continue

No comments:

Post a Comment