open-standards/wai/pack-conformance/catalogs/expected.json
Transaction Science abc75ec98c wai-pack: staged packages — refinement layers, stills, a piece's ladder, live windows and simulated delivery (W4-4)
The packer writes refinement layers, chooses each piece's representation by
its ladder, packs live, and simulates delivery over MoQ; the corpus gains a
staged golden that the independent verifier re-derives byte for byte.

- Refinements (packaging §5.4): for each refinement rung of a piece's ladder,
  a wai.video.int_refine object over the int_motion base, written by wai-rs's
  refinement encoder (staged::wir1::encode) with the manifest `wai stage
  refine` writes; every layer applied to the decoded base by the reference
  sink before it is kept. The index states each prefix's tier, digest, SSE
  and deadline.
- A piece's ladder and stills (§5.7, plan::piece_ladder): a rule's
  then.ladder, or the component's first base rung, its refinement chain and
  its floors. §3.4 item 10 now requires a rule's ladder to name exactly one
  base, every refinement over a rung it names and every floor. A
  wai.image.png base is a still, the piece's first frame held for the piece,
  written as a PNG whose every byte is stated (png.rs; the verifier's reader
  inflates with miniz_oxide, the one new dependency).
- One coder (pack::Coder) for the on-demand and the live packer; the
  verifier holds each piece to its ladder and its plan's deadline, and
  decodes every prefix (a still held, each layer through the sink).
- Catalogs: the MoQ catalog is a stage set of moq-streaming-format §4.1,
  written by staged::moq (wai_staged, a receipts track and an alias per
  media track, depends on a track of every layer below); `priority` (MOQT's,
  §8.5) and `wai_layer` leave it, and the registry drops `wai_layer`. HTTP
  views carry the component's default base capability only: a still's piece
  plays from the floor there (http-delivery §4.2), and its stage view and
  MoQ tracks list it.
- Live (§9.2, live.rs, `wai-pack live`): frames pushed one at a time, pieces
  coded as the segmenter closes them, windows sealed by version-2 receipts
  chained live-window; its plan, bases and refinements are the on-demand
  package's byte for byte (`wai-pack listing --primary`).
- Delivery (§8.9, delivery.rs, `wai-pack sim`): a thin consumer of
  stage_measure::sim — per-track timeouts, §8.5's priorities, the
  subscriber's cap, group receipts on each track's chain; delivered objects
  accepted by Merkle proof, dropped ones held by inclusion only.
- Corpus: the golden video-staged-01 (fixture, policy, supplied floor and
  supplied_floor.py, which states how it was written), staged-mutations/,
  delivery/; video-base-01 keeps its objects, index and receipt (its MoQ
  catalog and LISTING change).
- pack_verify.py re-derives every layer and still from the source (its own
  rANS coder and deflate), decodes every prefix (staged_verify.py's WIR1 and
  PNG readers), checks the MoQ catalog with staged_verify.py's §4.1 check,
  renders every catalog, and re-derives each delivery case through
  sim_verify.py's simulator. stage_diff.py runs layers, stills, piece plans
  and deliveries differentially.
- Tests 5, 7, 12 and 13 over the staged golden (tests/staged.rs).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 14:21:54 -04:00

52 lines
6.1 KiB
JSON

{
"cases": [
{
"index": "catalogs/one-deadline.wsix",
"namespace": "catalogs",
"layer_lag_ms": [
0,
200,
400
],
"default_deadline": 1500,
"floor": {
"codec": "av01.0.00M.08",
"w": 64,
"h": 36
},
"moq": "{\"tracks\":[{\"altGroup\":1,\"isLive\":false,\"name\":\"v/l0\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_motion\"],\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":6758122338894672,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l0/receipts\",\"wai_staged\":{\"layer\":0,\"lead_ms\":null,\"set\":\"v\"}},{\"depends\":[\"v/l0\"],\"isLive\":false,\"name\":\"v/l1\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_refine\"],\"wai_delivery_timeout_ms\":1300,\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":7122743273789469,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l1/receipts\",\"wai_staged\":{\"layer\":1,\"lead_ms\":null,\"set\":\"v\"}},{\"depends\":[\"v/l0\",\"v/l1\"],\"isLive\":false,\"name\":\"v/l2\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_refine\"],\"wai_delivery_timeout_ms\":1100,\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":5138816494470210,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l2/receipts\",\"wai_staged\":{\"layer\":2,\"lead_ms\":null,\"set\":\"v\"}},{\"altGroup\":1,\"codec\":\"av01.0.00M.08\",\"height\":36,\"name\":\"v/floor\",\"namespace\":\"catalogs\",\"packaging\":\"cmaf\",\"renderGroup\":1,\"width\":64},{\"isLive\":false,\"name\":\"v/l0/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"},{\"isLive\":false,\"name\":\"v/l1/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"},{\"isLive\":false,\"name\":\"v/l2/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"}],\"version\":1}\n"
},
{
"index": "catalogs/layer-1-on-its-own-deadline.wsix",
"namespace": "catalogs",
"layer_lag_ms": [
0,
200,
400
],
"default_deadline": 1500,
"floor": {
"codec": "av01.0.00M.08",
"w": 64,
"h": 36
},
"moq": "{\"tracks\":[{\"altGroup\":1,\"isLive\":false,\"name\":\"v/l0\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_motion\"],\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":6758122338894672,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l0/receipts\",\"wai_staged\":{\"layer\":0,\"lead_ms\":null,\"set\":\"v\"}},{\"depends\":[\"v/l0\"],\"isLive\":false,\"name\":\"v/l1@800\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_refine\"],\"wai_delivery_timeout_ms\":600,\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":6300050926507138,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l1@800/receipts\",\"wai_staged\":{\"layer\":1,\"lead_ms\":null,\"set\":\"v\"}},{\"depends\":[\"v/l0\",\"v/l1@800\"],\"isLive\":false,\"name\":\"v/l2\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_refine\"],\"wai_delivery_timeout_ms\":1100,\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":5138816494470210,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l2/receipts\",\"wai_staged\":{\"layer\":2,\"lead_ms\":null,\"set\":\"v\"}},{\"altGroup\":1,\"codec\":\"av01.0.00M.08\",\"height\":36,\"name\":\"v/floor\",\"namespace\":\"catalogs\",\"packaging\":\"cmaf\",\"renderGroup\":1,\"width\":64},{\"isLive\":false,\"name\":\"v/l0/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"},{\"isLive\":false,\"name\":\"v/l1@800/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"},{\"isLive\":false,\"name\":\"v/l2/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"}],\"version\":1}\n"
},
{
"index": "catalogs/both-layers-on-800.wsix",
"namespace": "catalogs",
"layer_lag_ms": [
0,
200,
400
],
"default_deadline": 1500,
"floor": {
"codec": "av01.0.00M.08",
"w": 64,
"h": 36
},
"moq": "{\"tracks\":[{\"altGroup\":1,\"isLive\":false,\"name\":\"v/l0\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_motion\"],\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":6758122338894672,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l0/receipts\",\"wai_staged\":{\"layer\":0,\"lead_ms\":null,\"set\":\"v\"}},{\"depends\":[\"v/l0\"],\"isLive\":false,\"name\":\"v/l1@800\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_refine\"],\"wai_delivery_timeout_ms\":600,\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":6300050926507138,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l1@800/receipts\",\"wai_staged\":{\"layer\":1,\"lead_ms\":null,\"set\":\"v\"}},{\"depends\":[\"v/l0\",\"v/l1@800\"],\"isLive\":false,\"name\":\"v/l2@800\",\"namespace\":\"catalogs\",\"packaging\":\"wai\",\"renderGroup\":1,\"role\":\"video\",\"wai_capabilities\":[\"wai.video.int_refine\"],\"wai_delivery_timeout_ms\":400,\"wai_determinism\":\"decode-equivalence\",\"wai_receipt_alias\":2193082958864004,\"wai_receipts\":true,\"wai_receipts_track\":\"v/l2@800/receipts\",\"wai_staged\":{\"layer\":2,\"lead_ms\":null,\"set\":\"v\"}},{\"altGroup\":1,\"codec\":\"av01.0.00M.08\",\"height\":36,\"name\":\"v/floor\",\"namespace\":\"catalogs\",\"packaging\":\"cmaf\",\"renderGroup\":1,\"width\":64},{\"isLive\":false,\"name\":\"v/l0/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"},{\"isLive\":false,\"name\":\"v/l1@800/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"},{\"isLive\":false,\"name\":\"v/l2@800/receipts\",\"namespace\":\"catalogs\",\"packaging\":\"wai-receipts\"}],\"version\":1}\n"
}
]
}