From: Theo Buehler Subject: Re: UPDATE: FFmpeg 6.1.1 To: Rafael Sadowski Cc: ports@openbsd.org Date: Tue, 24 Sep 2024 12:28:35 +0200 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