Files

1.8 KiB

Standalone media decoder tools

The desktop distribution must include FFmpeg and FFprobe alongside its Google worker. End users should not install tools or configure paths. Development and release preparation use:

python tools/media-runtime/provision.py --stage
python -m unittest discover -s tools/media-runtime -p 'test_*.py'

The manifest pins a dated BtbN release, exact archive size, and published SHA-256. Provisioning checks the cache or downloads/verifies the archive, extracts only the two standalone decoder executables and notices, and stages them under the native resources directory. Executables and archives are ignored by Git. No global installation occurs. Movie/audio decoding runs in bounded subprocesses.

Windows x86-64/ARM64 and Linux x86-64/ARM64 have pinned artifacts. Only Windows x86-64 and Linux x86-64 have executed CPU checks. Linux checks verify pinned archive provenance, both tool versions, a four-second speech WAV probe and decoding to a null sink with hardware acceleration disabled. This does not certify playback or a codec matrix; see Linux evidence. A vetted macOS decoder build/staging path remains a release gate; generic media code can accept native tools through explicit paths. The selected build is FFmpeg 9.0.2 with LGPL configuration. Keep original notices and corresponding source/build provenance with distribution; installer licensing and all-platform execution are still open production gates.

Source/build provenance:

FFmpeg capabilities vary by build. An unsupported or corrupt file must report an error while remaining filename-searchable; it must never freeze search or be silently reported as fully indexed.