Commit 50b7678
chore(ffmpeg): vendor windows-x86_64 prebuilt tree + strip from-source CI
Captured from CI run 26067455150 build-windows job (commit f31bb80 —
the one-shot upload-artifact step). Together with the already-bundled
macos-arm64 + macos-x86_64 trees, all three macOS+Windows ffmpeg
trees are now in the repo. Linux remains the only platform building
from source on CI (next iteration after the JUCE_LINUX camera-code
conditional lands).
Bundled tree contents (140 files, 7.3 MB):
- include/{libavcodec,libavformat,libavutil,libswscale,wels}/ — headers
- lib/ — ffmpeg 7.1.2 + openh264 2.1.1 Windows DLLs alongside the MSVC
.lib import libraries that scripts/build_ffmpeg_lgpl.sh's post-process
generates via gendef + dlltool. Consumers (cmake/ffmpeg.cmake WIN32
path) link against .lib at build time and find the .dll at runtime
via JamWide.exe-adjacent path (the workflow's Stage artifacts step
copies the DLLs next to the executable).
.gitignore: vendored .lib files were excluded by the existing `*.lib`
general rule at line 41 (originally meant for build-output static
libraries that shouldn't be committed). Added a `!libs/ffmpeg/**/*.lib`
exception AFTER the general rule (gitignore later-rule-wins semantics)
to whitelist the vendored MSVC import libraries.
CI workflow (Windows job) simplification:
- Stripped the "Vendor LGPL ffmpeg" step (15-25 min from-source ffmpeg
+ openh264 build via MSYS2 + autotools + gendef + dlltool). Now a
no-op git checkout.
- Stripped the "Upload vendored windows-x86_64 ffmpeg tree" one-shot
capture step — served its purpose, tree now bundled.
- Minimized MSYS2 install from `base-devel mingw-w64-x86_64-gcc
mingw-w64-x86_64-pkg-config mingw-w64-x86_64-nasm
mingw-w64-x86_64-binutils mingw-w64-x86_64-tools-git autoconf
automake make git` (full build toolchain) down to `base-devel`
(just bash + strings for the LGPL discipline gate).
- KEPT the Verify LGPL discipline step — iterates the bundled tree to
assert no libx264 contamination on every push.
Net Windows CI time: ~25-30 min → ~6-8 min per run (saves ~20 min,
matching the mac speedup from the earlier from-source removal). And
the entire MSYS2 toolchain-rot surface (which took 3 separate fix
commits — gendef PATH, .lib generation, pkgconfig) goes away.
Net repo size: +7.3 MB. Negligible compared to JUCE/clap/wdl submodules.
scripts/build_ffmpeg_lgpl.sh stays in the repo unchanged — useful for
bumping ffmpeg or openh264 version (re-run, commit refreshed tree) or
reproducibility verification.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent f31bb80 commit 50b7678
147 files changed
Lines changed: 34135 additions & 36 deletions
File tree
- .github/workflows
- libs/ffmpeg/windows-x86_64
- include
- libavcodec
- libavformat
- libavutil
- libswscale
- wels
- lib
- pkgconfig
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
184 | 184 | | |
185 | 185 | | |
186 | 186 | | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
192 | 195 | | |
193 | 196 | | |
194 | 197 | | |
195 | 198 | | |
196 | 199 | | |
197 | 200 | | |
198 | | - | |
199 | | - | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
206 | | - | |
207 | 201 | | |
208 | | - | |
209 | | - | |
210 | | - | |
211 | | - | |
212 | | - | |
213 | | - | |
214 | | - | |
215 | | - | |
216 | | - | |
217 | | - | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
218 | 214 | | |
219 | 215 | | |
220 | 216 | | |
221 | | - | |
222 | | - | |
223 | | - | |
224 | | - | |
225 | | - | |
226 | | - | |
227 | | - | |
228 | | - | |
229 | | - | |
230 | | - | |
231 | | - | |
232 | | - | |
233 | 217 | | |
234 | 218 | | |
235 | 219 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
31 | 33 | | |
32 | 34 | | |
33 | 35 | | |
| |||
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
41 | 47 | | |
42 | 48 | | |
43 | 49 | | |
| |||
Lines changed: 36 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
Lines changed: 37 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
0 commit comments