FFmpeg core 0.12.10 corresponding source

This bundle supplies the complete nineteen source archives, locked source
identities, build scripts, selected notices and recorded reconstruction proof
for Everyday Toolset's single-thread @ffmpeg/core 0.12.10 ESM WebAssembly file.
The binary reports FFmpeg 5.1.4 and Emscripten 3.1.40, with GPL components enabled.
The GNU GPL version 2 or later applies to that core. The upstream files retain
their own copyright, licensing and patent notices; those notices are included
unchanged within each complete source archive as well as under notices/.
The small JavaScript @ffmpeg/ffmpeg wrapper has its separate MIT license.

Contents

- source-manifest.json: exact upstream repository, reference, commit and archive
  checksum for all nineteen sources, plus the pinned compiler image.
- archives/: complete Git source archives. Sources are included here; no Git
  account, private repository access or moving branch is needed to rebuild.
- notices/: full selected upstream license/copyright/patent texts. Additional
  file-specific notices remain in the complete source archives.
- rebuild-source.py and rebuild.sh: portable reconstruction entry point and
  compiler recipe. The original upstream recipe is in the ffmpeg.wasm archive.
- rebuild-report.json and build-tools.txt: the observed native build comparison
  and host build-tool package versions, retained with the source proof.
- SHA256SUMS: SHA-256 for every other regular file in this bundle.

Rebuild on Linux x86_64

Use Python 3.12 or later, Docker and at least 5 GiB of memory available to the
compiler. Run from this extracted directory:

  python3 rebuild-source.py --verify
  python3 rebuild-source.py /absolute/path/to/a-new-build-directory

The output directory must not exist. The command pulls the exact recorded
emscripten/emsdk 3.1.40 image and runs the build in a disposable Linux/amd64
container limited to two CPUs. It installs normal build utilities from the
compiler image's Ubuntu package sources. These common build tools and Docker
need network access; every application/library source is already supplied.
The measured package versions are in build-tools.txt. The Emscripten source
and the exact SDL2 port source are included as locked archives.

Each library is built in the upstream dependency order with stage-specific
dependencies, optimization -O3 and SIMD enabled. The single-thread core uses
the original ffmpeg.wasm v12.15 build scripts and FFmpeg n5.1.4 sources. The
only recipe adjustment changes unbounded make -j to make -j2; rebuild-source.py
applies it to the freshly extracted scripts. rebuild.sh contains the exact
FFmpeg configure and link arguments. No application/library source is edited.

Build output is saved to build.log in the new directory. Successful compilation
produces rebuilt/ffmpeg-core.js, rebuilt/ffmpeg-core.wasm and build-tools.txt.
The entry point compares the WASM and JavaScript checksums with the distributed
npm files and fails on either mismatch. The archived rebuild report describes the actual
verification run; it is not a promise that changed compilers or system tools
produce the same bytes. Keep logs and investigate differences before replacing
a distributed binary or claiming a new source-to-binary match.

Emscripten and other common compiler/system components retain their upstream
licenses. Their inclusion here does not change the application components'
licenses. Source archives include upstream references to development/test-only
submodules; the ffmpeg.wasm browser test-data and zimg googletest submodules are
not needed by this build. No external unit-test suite is enabled by the recipe.

Source and notices are supplied alongside the engine at the same website.
The source provision and upstream redistribution rights are not restricted by
Everyday Toolset's first-party website-code terms.
