tooling/ffmpeg: mark completed builds; refresh the pairing comment

- touch $PREFIX/.build-complete after a successful install: the CI cache
  rejects a restored tree without it (a failed run's partial save) and
  rebuilds instead;
- the old comment claimed every ffmpeg-next/FFmpeg pairing is broken
  upstream. Verified locally instead: ffmpeg-next 9.0.0 compiles against
  both release/8.1 and release/9.0 (cargo check of a scratch crate and of
  oak-codec against the 9.0 build), so the pinned version is a project
  choice, not a compatibility workaround.
This commit is contained in:
2026-09-24 18:49:54 +08:00
parent dd003ba6bb
commit bd447e1a7d
+10 -6
View File
@@ -21,12 +21,12 @@
# export FFMPEG_DIR="$(pwd)/.cache/ffmpeg"
#
# Why a script instead of ffmpeg-next's `build` cargo feature: the
# feature clones release/<crate-version>, and every such pairing is
# broken upstream (9.0.0 -> FFmpeg 9.0 headers removed AVCodec fields;
# 8.1.0 -> FFmpeg 8.1 added enum variants; 8.0.0 -> FFmpeg 8.0 renamed
# FF_PROFILE_* to AV_PROFILE_*). The one known-good pairing is
# ffmpeg-next 9.0.0 against FFmpeg 8.x headers, so this script builds
# release/8.0.
# feature clones release/<crate-version>, tying the FFmpeg version to the
# crate version; the project pins its own (FFMPEG_VERSION below) and
# ships a known-good pairing. ffmpeg-next 9.0.0 compiles against both the
# FFmpeg 8.x and 9.x headers — verified locally with this script's builds
# of release/8.1 and release/9.0 — so the version below is a project
# choice, not a compatibility workaround.
#
# Oak is GPL, so the GPL-licensed parts of FFmpeg and every free-license
# external codec library are enabled. Hardware acceleration is enabled
@@ -202,6 +202,10 @@ echo ">> make -j$JOBS"
make -j"$JOBS"
make install
# Marker for the CI cache: a restored tree without it is incomplete (a
# failed run's partial save) and is discarded/ rebuilt.
touch "$PREFIX/.build-complete"
cat <<EOF
Done. To build Oak against this FFmpeg: