build: stop probing for openh264 in the project FFmpeg

openh264 is redundant for the editor — H.264 decodes use FFmpeg's native
decoder and H.264 encodes go through libx264 — but the probe still
enabled it wherever a pkg-config file existed, and FFmpeg links its
external codec libraries dynamically. The editor therefore required the
distributor's libopenh264 soname package (Debian's libopenh264-7, the
openKylin container's libopenh264-8 while the openKylin livecd only
ships -7), a dependency the editor never exercises. Drop the probe and
the -dev package from install-deps.sh on every platform.
This commit is contained in:
2026-09-24 21:26:47 +08:00
parent fac63e24d4
commit 982593aa2c
2 changed files with 16 additions and 13 deletions
+7 -4
View File
@@ -138,11 +138,14 @@ if [ -d /opt/homebrew/lib/pkgconfig/openjpeg ]; then
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH:-}:/opt/homebrew/lib/pkgconfig/openjpeg"
fi
enable_if_pkg libopenjp2 libopenjpeg
# openh264 is redundant for us (decode: FFmpeg's native h264; encode:
# x264) and snappy only feeds the hap encoder; neither MinGW package
# satisfies the static link — skip both on Windows.
# snappy only feeds the hap encoder and the MinGW package does not
# satisfy the static link — skip it on Windows. openh264 is deliberately
# not probed anywhere: it is redundant (decode: FFmpeg's native h264;
# encode: libx264) and every external FFmpeg links dynamically turns
# into a runtime dependency on the distributor's soname package
# (libopenh264-7 vs -8 across releases), which is exactly the kind of
# dependency the editor should not carry for an unused codec.
if [ -z "${MSYSTEM:-}" ]; then
enable_if_pkg openh264 libopenh264
enable_if_pkg snappy libsnappy
fi
enable_if_pkg webp libwebp
+9 -9
View File
@@ -59,7 +59,7 @@ if [[ "$OSTYPE" == msys* || "$OSTYPE" == cygwin* || -n "${MSYSTEM:-}" ]]; then
mingw-w64-ucrt-x86_64-nasm \
mingw-w64-ucrt-x86_64-x264 mingw-w64-ucrt-x86_64-x265 \
mingw-w64-ucrt-x86_64-dav1d mingw-w64-ucrt-x86_64-libvpx \
mingw-w64-ucrt-x86_64-openh264 mingw-w64-ucrt-x86_64-openjpeg2 \
mingw-w64-ucrt-x86_64-openjpeg2 \
mingw-w64-ucrt-x86_64-libtheora mingw-w64-ucrt-x86_64-libwebp \
mingw-w64-ucrt-x86_64-lame mingw-w64-ucrt-x86_64-opus \
mingw-w64-ucrt-x86_64-libvorbis mingw-w64-ucrt-x86_64-speex \
@@ -79,7 +79,7 @@ fi
case "$(uname -s)" in
Darwin)
run brew install cmake pkg-config nasm \
x264 x265 dav1d libvpx openh264 openjpeg theora webp \
x264 x265 dav1d libvpx openjpeg theora webp \
lame opus libvorbis speex snappy libass freetype fribidi \
fontconfig gnutls
;;
@@ -89,17 +89,17 @@ case "$(uname -s)" in
PKGS=(
build-essential clang libclang-dev cmake python3 pkg-config nasm
libx264-dev libx265-dev libdav1d-dev libvpx-dev
libopenh264-dev libopenjp2-7-dev libtheora-dev libwebp-dev
libopenjp2-7-dev libtheora-dev libwebp-dev
libmp3lame-dev libopus-dev libvorbis-dev libspeex-dev
libsnappy-dev libass-dev libfreetype-dev libfribidi-dev
libfontconfig-dev libgnutls28-dev
libva-dev libdrm-dev
git
)
# A single unavailable package (e.g. Ubuntu's multiverse-only
# libopenh264-dev on images without that component) must not kill
# the whole install: the FFmpeg configure probes every optional
# piece, so degrade to installing the rest individually.
# A single unavailable package (e.g. a codec library a minimal
# image does not carry) must not kill the whole install: the
# FFmpeg configure probes every optional piece, so degrade to
# installing the rest individually.
if ! run "${SUDO[@]}" apt-get install -y "${PKGS[@]}"; then
echo "Some packages are unavailable here; installing the rest individually" >&2
for pkg in "${PKGS[@]}"; do
@@ -130,7 +130,7 @@ case "$(uname -s)" in
DNFPKGS=(
gcc gcc-c++ clang clang-devel cmake python3 pkgconf-pkg-config nasm
x264-devel x265-devel libdav1d-devel libvpx-devel
openh264-devel openjpeg-devel libtheora-devel libwebp-devel
openjpeg-devel libtheora-devel libwebp-devel
lame-devel opus-devel libvorbis-devel speex-devel
snappy-devel libass-devel freetype-devel fribidi-devel
fontconfig-devel gnutls-devel libva-devel libdrm-devel
@@ -144,7 +144,7 @@ case "$(uname -s)" in
fi
elif command -v pacman >/dev/null; then
run "${SUDO[@]}" pacman -S --needed --noconfirm base-devel clang cmake python pkgconf nasm \
x264 x265 dav1d libvpx openh264 openjpeg2 libtheora libwebp \
x264 x265 dav1d libvpx openjpeg2 libtheora libwebp \
lame opus libvorbis speex snappy libass freetype2 fribidi \
fontconfig gnutls ffnvcodec-headers libva libdrm
else