open-standards/wai/platform-decode-conformance/grain-free-av1/cases.json
Transaction Science bf1de9b1ad
Some checks failed
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 17s
wai-quantum energy-landscape jobs / does this change touch it (push) Successful in 18s
joule-code conformance gate / joule-moq-relay, its own energy on a counter (macos) (push) Successful in 1m6s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Failing after 47s
wai-quantum energy-landscape jobs / the module under wasm32-wasip2 (wasmtime) (push) Successful in 2m44s
joule-code conformance gate / Build + round-trip C1-C4 vectors (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote · does this change touch it (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (push) Has been cancelled
joule-moq-remote host agent / joule-moq-remote, every target (macos) (push) Has been cancelled
joule-moq-room room service / joule-moq-room · does this change touch it (push) Has been cancelled
joule-moq-room room service / joule-moq-room, every target (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · does this change touch it (push) Has been cancelled
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (push) Has been cancelled
wai-app and Create / wai-app · does this change touch it (push) Has been cancelled
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (push) Has been cancelled
wai-app and Create / wai-app · Create, browser end-to-end (macos) (push) Has been cancelled
wai-fleet service / does this change touch it (push) Has been cancelled
wai-fleet service / service · linux (push) Has been cancelled
wai-fleet service / service · macos (push) Has been cancelled
WAI Studio / does this change touch it (push) Has been cancelled
WAI Studio / the catalogue's actions, the unit tests and the core · linux (push) Has been cancelled
WAI Studio / Studio in Chromium and Firefox · macos (push) Has been cancelled
WAI Studio / Studio in WebKit · linux (push) Has been cancelled
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Has been cancelled
joule-code conformance gate / joule-moq-ingest, every target (push) Has been cancelled
joule-code conformance gate / joule-moq-relay, every target (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · macos (push) Successful in 3m33s
wai-quantum energy-landscape jobs / native against WebAssembly, over many seeds (push) Successful in 4m41s
wai-audit collector and player integration / does this change touch it (push) Has been cancelled
wai-audit collector and player integration / collector · linux (push) Has been cancelled
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (push) Has been cancelled
WAI operation catalogue / does this change touch it (push) Has been cancelled
WAI operation catalogue / the catalogue and every door · linux (push) Has been cancelled
wai-key-proxy / does this change touch it (push) Has been cancelled
wai-key-proxy / proxy · linux (push) Has been cancelled
wai-ledger service / does this change touch it (push) Has been cancelled
wai-ledger service / service · linux (push) Has been cancelled
wai-ledger service / service · macos (push) Has been cancelled
wai-quantum for JavaScript / does this change touch it (push) Has been cancelled
wai-quantum for JavaScript / javascript · linux (push) Has been cancelled
wai-quantum studio and desktop / does this change touch it (push) Has been cancelled
wai-quantum studio and desktop / studio · browser (push) Has been cancelled
wai-quantum studio and desktop / desktop app · macos (push) Has been cancelled
wai-quantum studio and desktop / desktop app · linux (push) Has been cancelled
wai-quantum studio and desktop / desktop app · windows (push) Has been cancelled
wai-quantum energy-landscape jobs / the same bits · linux-arm64 (push) Has been cancelled
wai-sink-android native sink library / does this change touch it (push) Has been cancelled
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (push) Has been cancelled
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (push) Has been cancelled
wai-sink-swift native sink package / does this change touch it (push) Has been cancelled
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (push) Has been cancelled
wai-quantum energy-landscape jobs / reader, kernels, answers and the stated result · linux, release (push) Has been cancelled
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Successful in 5m15s
wai cross-architecture byte-equality / does this change touch it (push) Has been cancelled
wai cross-architecture byte-equality / linux-aarch64 (push) Has been cancelled
wai cross-architecture byte-equality / linux-x86_64 (push) Has been cancelled
wai cross-architecture byte-equality / macos-arm64 (reference) (push) Has been cancelled
wai cross-architecture byte-equality / windows-x86_64 (push) Has been cancelled
wai: a refinement over the platform-decoded floor, wai.video.int_refine over a grain-free AV1 base
platform-decode §6 makes the zeroth-condition wai.video.av1 rendition, as the platform
decodes it, a base of the residual refinement layers. A stream every sequence header of
which has film_grain_params_present 0 decodes to the decoding process's frames on every
conforming decoder; a page shows its WebCodecs decoder conforming with a probe (published
SHA-256 of each frame's I420 samples), and the base's RGB8 units are the frames by the JFIF
conversion in 16-bit fixed point, so layers written once against the reference decode reach
the same stage hashes natively and in a page. A stream with film grain anywhere is refused
as a base before it is decoded.

SPEC §5's Base admission admits wai.video.av1 under wai.video.int_refine only where the base
step holds decode-equivalence (codecs::admission_needs_exact_base); staged-delivery §5 and
§6.1 give that base step its tier and units; browser-sink §4.1 and §4.4 say what the probe is
for, and change no route. wai-rs gains staged::av1 (with libdav1d under av1_base),
platform_decode::av1_stream and the grain flag; wai-web gains StageBase.fromAv1, av1Base and
av1Probe and a page that decodes through WebCodecs. The corpus
platform-decode-conformance/grain-free-av1/ holds the stream, its reference decode and probe,
two layers, a stream with film grain and seven cases, checked by wai_av1_refine_vectors,
tests/av1_refine.rs, verify.py (second implementation), the wasm32 replay and the page.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-11-09 10:46:06 -05:00

632 lines
19 KiB
JSON

{
"about": "platform-decode §6: a grain-free wai.video.av1 base and two wai.video.int_refine layers written against its reference decode, and a stream with film grain. A case makes the base from base.i420 (the frames a decoder gave, I420, concatenated) as its decoder states: reference (libdav1d) or probe-matched at decode-equivalence, unprobed at none (staged::av1::base_from_i420); the sink is staged::StageSink with a hold bound of 16 envelopes and 1000 ms, no cost limit, a chain budget of 2^30 and a record budget of 2^20; step i (from 0) offers its envelope at i + 1 ms with no receipt verified, and expire@t expires holds at t ms. expect states the base's refusal, every step's reports (applied, held and refused units by index), and each unit's stage, producer (a file name), tier and stage hash (SHA-256 of its RGB8 buffer, null below decode-equivalence), and the clip hash.",
"stage0_sha256": [
"db13cc89edc0c514a0384df73bbe15ee4ae49dd9d696f8a0914025a7118abe48",
"af4c99dcf604d88527cb5b65020d527f9707f1c4987c6e0e34bbb475bb21da45",
"60231e5c248499ed148f0d16652f73f263bb83a5e434a046e30fd31be64bea4f",
"3b71eef58c781c3e904c95d3656a729c4b90596c1c16d229f6837058fa00a980",
"647fcbf6538d814d4b3cc6dc861f2fb116e26362a1b9a2bc39a362b7ba806f2c",
"a981d61185c9136885df631d24819961a09354f07e6ec40cbcd0574a72eedc50",
"3e21d854b9555b49bd09f94894f2527f83f5b5fce81b0bf3b9fd1348005c86c4",
"8ee3a2e91582cd849f62ae163d69063042b4c0892905527e7504e06a68266b51"
],
"cases": [
{
"name": "stage0",
"about": "the base alone: every frame's RGB8 unit from its I420 samples by the JFIF integer conversion, at decode-equivalence",
"base": "base.wai",
"decoder": "reference",
"steps": [],
"expect": {
"base_refusal": null,
"steps": [],
"units": [
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "db13cc89edc0c514a0384df73bbe15ee4ae49dd9d696f8a0914025a7118abe48"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "af4c99dcf604d88527cb5b65020d527f9707f1c4987c6e0e34bbb475bb21da45"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "60231e5c248499ed148f0d16652f73f263bb83a5e434a046e30fd31be64bea4f"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "3b71eef58c781c3e904c95d3656a729c4b90596c1c16d229f6837058fa00a980"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "647fcbf6538d814d4b3cc6dc861f2fb116e26362a1b9a2bc39a362b7ba806f2c"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "a981d61185c9136885df631d24819961a09354f07e6ec40cbcd0574a72eedc50"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "3e21d854b9555b49bd09f94894f2527f83f5b5fce81b0bf3b9fd1348005c86c4"
},
{
"stage": 0,
"producer": "base.wai",
"tier": "decode-equivalence",
"sha256": "8ee3a2e91582cd849f62ae163d69063042b4c0892905527e7504e06a68266b51"
}
],
"clip_sha256": "50c5e02132f649634fa180bd44e685445e30c28dbe796a7ed3803c1c82a59f30"
}
},
{
"name": "one-layer",
"about": "layer 1 over a platform decode whose probe matched: every frame at stage 1",
"base": "base.wai",
"decoder": "probe-matched",
"steps": [
"layer1.wai"
],
"expect": {
"base_refusal": null,
"steps": [
{
"step": "layer1.wai",
"reports": [
{
"envelope": "layer1.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
}
]
}
],
"units": [
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "cedb1c476e73b35923c3220b0c927935fe0777ede72d01f37fd9175a09a3fa04"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "0fc2ef0ef7c9269cc14c3a742ece94942834709fcf75fc523fac5dc7d33e9e57"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "6b31fe73e0075b68899cae45c356e68322ba7f1910da4e0c2ad262fba9e718d5"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "d43e71a14860bb2abeaef0cd03d4e3f097ebb60444477414e8794c6fd52a9310"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "1c45c95c42789dc62af324f01156077df05c1e54755441271b60cb862308af9a"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "a386c3327ab0054a3da2b878007dd64eec822481cd30c42f0f6beb6ca2889017"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "40750eccbd8487f1fd284ac11c553d493a572c2a892cfc1ae14d8d9c26044fa3"
},
{
"stage": 1,
"producer": "layer1.wai",
"tier": "decode-equivalence",
"sha256": "d1975fb20b0aceb916919905d658bd8da77d392ea7b1adbee18c13530b98f72c"
}
],
"clip_sha256": "0f93122aa78dc26b5b65d32b87a0296296bca9abd0f198e1b0be59c1cf726e22"
}
},
{
"name": "two-layers",
"about": "layers 1 and 2 over a platform decode whose probe matched: every frame at stage 2, the source clip",
"base": "base.wai",
"decoder": "probe-matched",
"steps": [
"layer1.wai",
"layer2.wai"
],
"expect": {
"base_refusal": null,
"steps": [
{
"step": "layer1.wai",
"reports": [
{
"envelope": "layer1.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
}
]
},
{
"step": "layer2.wai",
"reports": [
{
"envelope": "layer2.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
}
]
}
],
"units": [
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "ee98c2236f7b3f7ad868bbadade8304c3c5953ed77e9012d3908a5aa7bf981ad"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "453f6c11ee02e3eef1bc1415c750ac08bcdf30554b038acf6d079b9f35ab7e9b"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "71cc2df86257d1431ad170977740c20edfacf612a786662031798279e8533bf5"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "8280f97fb5cc5a6693a578d99faad4013fd0fc1dd5c7df7b6b7208048148f338"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "2f05af50b2f88787d58d7f85e9067a73b5bef8931817ff25f11c4dedf1b23387"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "a4c3b1580a240862ac3b4e9f89082e376b0b9e2c18fe00550c0846de081289ee"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "aa915623294df5d7eb3edd22bb9335f6bfbd8d1ffbee4b418524f45c1cae6a72"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "13ff9deb7fcfdafb17a7a651c66903ceac9a99a6d2dcf7987a6b379cc50f140d"
}
],
"clip_sha256": "0fc5916472f2367797a0b74eb878c45cfd762c74f84cb09e589444461f04f129"
}
},
{
"name": "two-layers-reference",
"about": "the same over the reference decode: the same stage hashes",
"base": "base.wai",
"decoder": "reference",
"steps": [
"layer1.wai",
"layer2.wai"
],
"expect": {
"base_refusal": null,
"steps": [
{
"step": "layer1.wai",
"reports": [
{
"envelope": "layer1.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
}
]
},
{
"step": "layer2.wai",
"reports": [
{
"envelope": "layer2.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
}
]
}
],
"units": [
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "ee98c2236f7b3f7ad868bbadade8304c3c5953ed77e9012d3908a5aa7bf981ad"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "453f6c11ee02e3eef1bc1415c750ac08bcdf30554b038acf6d079b9f35ab7e9b"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "71cc2df86257d1431ad170977740c20edfacf612a786662031798279e8533bf5"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "8280f97fb5cc5a6693a578d99faad4013fd0fc1dd5c7df7b6b7208048148f338"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "2f05af50b2f88787d58d7f85e9067a73b5bef8931817ff25f11c4dedf1b23387"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "a4c3b1580a240862ac3b4e9f89082e376b0b9e2c18fe00550c0846de081289ee"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "aa915623294df5d7eb3edd22bb9335f6bfbd8d1ffbee4b418524f45c1cae6a72"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "13ff9deb7fcfdafb17a7a651c66903ceac9a99a6d2dcf7987a6b379cc50f140d"
}
],
"clip_sha256": "0fc5916472f2367797a0b74eb878c45cfd762c74f84cb09e589444461f04f129"
}
},
{
"name": "two-layers-out-of-order",
"about": "layer 2 before layer 1: held for every frame (layer-gap pending), then applied with layer 1 as one batch",
"base": "base.wai",
"decoder": "probe-matched",
"steps": [
"layer2.wai",
"layer1.wai"
],
"expect": {
"base_refusal": null,
"steps": [
{
"step": "layer2.wai",
"reports": [
{
"envelope": "layer2.wai",
"reason": null,
"held_for_base": false,
"applied": [],
"held": [
0,
1,
2,
3,
4,
5,
6,
7
],
"refused": []
}
]
},
{
"step": "layer1.wai",
"reports": [
{
"envelope": "layer1.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
},
{
"envelope": "layer2.wai",
"reason": null,
"held_for_base": false,
"applied": [
0,
1,
2,
3,
4,
5,
6,
7
],
"held": [],
"refused": []
}
]
}
],
"units": [
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "ee98c2236f7b3f7ad868bbadade8304c3c5953ed77e9012d3908a5aa7bf981ad"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "453f6c11ee02e3eef1bc1415c750ac08bcdf30554b038acf6d079b9f35ab7e9b"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "71cc2df86257d1431ad170977740c20edfacf612a786662031798279e8533bf5"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "8280f97fb5cc5a6693a578d99faad4013fd0fc1dd5c7df7b6b7208048148f338"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "2f05af50b2f88787d58d7f85e9067a73b5bef8931817ff25f11c4dedf1b23387"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "a4c3b1580a240862ac3b4e9f89082e376b0b9e2c18fe00550c0846de081289ee"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "aa915623294df5d7eb3edd22bb9335f6bfbd8d1ffbee4b418524f45c1cae6a72"
},
{
"stage": 2,
"producer": "layer2.wai",
"tier": "decode-equivalence",
"sha256": "13ff9deb7fcfdafb17a7a651c66903ceac9a99a6d2dcf7987a6b379cc50f140d"
}
],
"clip_sha256": "0fc5916472f2367797a0b74eb878c45cfd762c74f84cb09e589444461f04f129"
}
},
{
"name": "unprobed",
"about": "layer 1 over a platform decode with no probe run: the base step holds no tier, and SPEC §5's Base admission refuses the layer (base-not-admitted)",
"base": "base.wai",
"decoder": "unprobed",
"steps": [
"layer1.wai"
],
"expect": {
"base_refusal": null,
"steps": [
{
"step": "layer1.wai",
"reports": [
{
"envelope": "layer1.wai",
"reason": "base-not-admitted",
"held_for_base": false,
"applied": [],
"held": [],
"refused": []
}
]
}
],
"units": [
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
},
{
"stage": 0,
"producer": "base.wai",
"tier": "none",
"sha256": null
}
],
"clip_sha256": null
}
},
{
"name": "film-grain",
"about": "a stream with film_grain_params_present 1: refused as a base (av1_film_grain) before it is decoded, so the layer naming it is held for a base and discarded at the hold bound (base-absent)",
"base": "base-grain.wai",
"decoder": "reference",
"steps": [
"layer1-over-grain.wai",
"expire@5000"
],
"expect": {
"base_refusal": "av1_film_grain",
"steps": [
{
"step": "layer1-over-grain.wai",
"reports": [
{
"envelope": "layer1-over-grain.wai",
"reason": null,
"held_for_base": true,
"applied": [],
"held": [],
"refused": []
}
]
},
{
"step": "expire@5000",
"reports": [
{
"envelope": "layer1-over-grain.wai",
"reason": "base-absent",
"held_for_base": false,
"applied": [],
"held": [],
"refused": []
}
]
}
],
"units": null,
"clip_sha256": null
}
}
]
}