Features are not “done” until their bytes are checked against an oracle (Shaka Packager) and, where useful, independent tools.
| Gate | Command | What it checks |
|---|---|---|
| Unit / integration | just test |
Hermetic synthetic fixtures per crate |
| Clippy + fmt | just check-all |
Style + correctness lints |
| Shaka differential | just oracle <input> |
CMAF box structure, MPD, HLS vs Shaka |
| Real corpus | just oracle-corpus |
Decode + Shaka + CEA-608 vs ccextractor |
| Throughput | ./scripts/bench_throughput.sh |
Wall-clock package vs Shaka |
| Fuzz (optional) | cargo +nightly fuzz run mp4_box_reader |
Demuxer crash resistance |
These tools are not vendored. Run them on packaged output when preparing a release or validating a customer asset.
- Package:
sheathe package in.mp4 -o out --dash --hls - Upload
out/manifest.mpd+ segments to the DASH-IF Conformance Tool or run a local validator if you maintain one. - On-demand profile: add
--on-demandand validateisoff-on-demandprofile.
sheathe package in.mp4 -o out --hls --dash
mediastreamvalidator out/master.m3u8Requires Apple’s HLS tools (macOS). Useful for #EXT-X-KEY, I-frame playlists,
and LL-HLS tag shape.
Encryption is oracle-verified against Shaka Packager’s pssh / tenc / senc
bytes (just oracle with --enc-key). Full DRM license-server integration is
out of scope for hermetic CI (requires client certs + live endpoints).
# Requires nightly + cargo-fuzz
cargo install cargo-fuzz
cargo +nightly fuzz run mp4_box_reader -- -max_total_time=60
cargo +nightly fuzz run ts_packet -- -max_total_time=60
cargo +nightly fuzz run mkv_ebml -- -max_total_time=60Targets live under fuzz/fuzz_targets/.