open-standards/wai/encode-conformance
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 52ce41504b encode-conformance (#484): the README's provenance line
tests/corpus_provenance.rs requires every corpus README to state its provenance
on a **Provenance.** line; encode-conformance's said it in its table only. The
line restates the table: what is generated, what an encoder made once and is
kept, and which generator writes the rest.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-26 09:09:09 -04:00
..
mutated encode corpus: a stream with no picture parameter set, which only the every-parameter-set rule refuses 2026-10-26 03:20:26 -04:00
records encode corpus: a stream with no picture parameter set, which only the every-parameter-set rule refuses 2026-10-26 03:20:26 -04:00
rendition wai platform-encode: the source's frame rate as its header writes it, and corpus cases for a trailing access unit, a second SPS, the source's rate and range, and a misnamed object 2026-10-26 03:17:04 -04:00
streams wai: platform-encode extension text, the encode corpus (fixture streams from each interface, generated records and negative controls), the stream checks in the text's order 2026-10-26 02:30:52 -04:00
cases.json encode corpus: a stream with no picture parameter set, which only the every-parameter-set rule refuses 2026-10-26 03:20:26 -04:00
encode_verify.py encode_verify.py: the source's rate as its header writes it; record.rs: is_multiple_of 2026-10-26 03:18:25 -04:00
plan.txt wai: platform-encode extension text, the encode corpus (fixture streams from each interface, generated records and negative controls), the stream checks in the text's order 2026-10-26 02:30:52 -04:00
README.md encode-conformance (#484): the README's provenance line 2026-10-26 09:09:09 -04:00
source.y4m wai: platform-encode extension text, the encode corpus (fixture streams from each interface, generated records and negative controls), the stream checks in the text's order 2026-10-26 02:30:52 -04:00
streams.json wai: platform-encode extension text, the encode corpus (fixture streams from each interface, generated records and negative controls), the stream checks in the text's order 2026-10-26 02:30:52 -04:00

encode-conformance/: the corpus of wai.video.encode

The corpus of platform-encode §10.1.

path what how it is made
streams/ AVC and HEVC elementary streams made through each encoder interface (§3): platform-* by the media framework's hardware engine, va-1-* and va-2-* by two GPUs' encode engines through the video acceleration API, gpu-driver-* by a GPU driver's encode interface, software-* by the runtime-loaded software library fixtures: made once by `wai encode avc
streams.json each fixture's SHA-256 wai_encode_vectors gen
source.y4m, plan.txt the source every fixture was made from (256×144, 12 frames, 30 fps) and its IDR plan generated
mutated/ streams derived from a fixture by one edit, each breaking one rule of §4.3 generated
records/, cases.json a record per case, signed with the corpus key (32 bytes of 0x45), and every case's files and outcome generated
rendition/ encoded renditions (§9) of the packaging golden pack-conformance/packs/video-base-01: streams/ fixtures made from its source with its plan, cases/ and cases.json, accepted and mutated wai-pack rendition-vectors gen (key: 32 bytes of 0x46)
encode_verify.py the second implementation, written from the extension's text —

Provenance. Generated here, as the table states: source.y4m and plan.txt are generated; each fixture under streams/ and rendition/streams/ was made once from that source by wai encode through the encoder interface its name gives, and is kept, not regenerated; streams.json, mutated/, records/ and cases.json are written by wai_encode_vectors gen, and rendition/'s cases by wai-pack rendition-vectors gen. Every input is generated in this repository.

The identities in the records are the corpus's, not the encoders' that made the streams. The software library made the same bytes on three hosts of two architectures; nothing here relies on that.

Check:

cd wai/wai-rs && cargo run --locked -q --no-default-features --features platform_encode --bin wai_encode_vectors -- verify ../encode-conformance
cd wai/wai-pack && cargo run --locked -q --bin wai-pack -- rendition-vectors check ../encode-conformance/rendition
python3 -I wai/encode-conformance/encode_verify.py wai/encode-conformance