Repository navigation
build: drop FFmpeg from the build and packages - #813
Merged
Merged
Conversation
Nothing calls FFmpeg any more: images decode through libjpeg-turbo and LodePNG (#808) and audio through dr_libs, libvorbis and libopus (#809). The build still pulled it in, though. The portable Linux builds compiled FFmpeg n7.1 (and a static zlib for it) from source at configure time only for the linker to discard it, the .deb needed the distro libav*-dev packages to configure, and the Windows zip and MSI shipped seven FFmpeg DLLs that nothing imports. Remove the source build, the pkg-config, vcpkg and conda-prefix lookups and every FFmpeg link line; drop the libav*/libsw* build dependencies from debian/control and the Dockerfile; delete the FFmpeg DLLs from src/lib and the Inno and WiX installers. zlib1.dll stays: libcurl.dll imports it. THIRD_PARTY_NOTICES.txt loses the FFmpeg entry and, with it, the LGPL-2.1 text, which nothing else needed. The ASR test now triggers on the audio decoders instead of the FFmpeg DLLs and the long-gone FFTW files. Co-Authored-By: Claude <[email protected]>
The HRX tarball check from #804 only looked for a shared FFmpeg in one tarball. Replace it with a script that every Linux package runs through (XRT, HRX and models-from-source tarballs, all four .deb): it fails if a bundled file, any ELF NEEDED entry or a .deb Depends names FFmpeg, the GPL codecs distro FFmpeg pulls in (x264, x265, xvid, libdvdnav, libdvdread), FFTW or GNU readline. Against the v1.0.9 HRX tarball it reports all of them; current main's packages pass. The FFmpeg configure/build log artifacts go with the source build. Co-Authored-By: Claude <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Since #808 (images) and #809 (audio, Whisper), no code calls FFmpeg. The build still pulled it in:
.deb: CMake still required the distrolibav*/libsw*packages via pkg-config, so they stayed inBuild-Depends.avcodec,avdevice,avfilter,avformat,avutil,swresample,swscale) that neitherflm.exenor any other DLL imports.This PR removes all of that:
src/CMakeLists.txt: drop the static FFmpeg/zlib source build, the pkg-config/vcpkg/conda-prefix lookups and every FFmpeg link line.debian/control,Dockerfile: droplibavcodec-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev. (nasmstays; libjpeg-turbo uses it for SIMD.)src/lib/*.dll,src/inno/flm.iss,src/wix/flm.wxs: delete the FFmpeg DLLs.zlib1.dllstays becauselibcurl.dllimports it. The MSI uses<MajorUpgrade>, so upgrades remove the old files.THIRD_PARTY_NOTICES.txt: remove the FFmpeg entry and renumber. The LGPL-2.1 text stays, because the HRX Linux tarball still bundles LGPL-2.1 libraries (GnuTLS, libtasn1, librtmp, keyutils, glibc pieces) through libcurl. zlib's "Used in" now says only the HRX tarball bundleslibz.so.1.docs/linux-getting-started.mdnow listslibedit-devinstead, which the build has required since fix(cli): use libedit instead of GNU readline for line editing #805).asr-test.yml: trigger on the audio decoders (src/cmake/FlmAudioCodecs.cmake,src/include/dr_libs) instead of the FFmpeg DLLs and the FFTW files removed in fix: replace FFTW with pocketfft and ship third-party notices #798.🤖 Generated with Claude Code