open-standards/wai/live-conformance/channels
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science b929c31aec
Some checks failed
joule-moq-remote host agent / joule-moq-remote · does this change touch it (pull_request) Successful in 6s
wai-app and Create / wai-app · does this change touch it (pull_request) Successful in 7s
joule-moq-web browser client / joule-moq-web · does this change touch it (pull_request) Successful in 8s
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (pull_request) Successful in 10s
wai-audit collector and player integration / does this change touch it (pull_request) Successful in 11s
standards workspaces build + test / which workspaces this change touches (pull_request) Successful in 10s
wai-web reach builds / wai-web reach · does this change touch it (pull_request) Successful in 15s
joule-moq-room room service / joule-moq-room · does this change touch it (pull_request) Successful in 16s
WAI operation catalogue / does this change touch it (pull_request) Successful in 8s
WAI energy receipts / does this change touch it (pull_request) Successful in 10s
WAI conformance / does this change touch it (pull_request) Successful in 11s
WAI examples / WAI examples · does this change touch them (pull_request) Successful in 10s
wai-key-proxy / does this change touch it (pull_request) Successful in 9s
wai-fleet service / does this change touch it (pull_request) Successful in 10s
wai-ops-gpu integer operators on GPUs / does this change touch it (pull_request) Successful in 8s
wai-ledger service / does this change touch it (pull_request) Successful in 8s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 7s
wai-app and Create / wai-app · tests, clippy, the line language's verifier (linux) (pull_request) Successful in 42s
joule-moq-remote host agent / joule-moq-remote, every target (macos) (pull_request) Successful in 53s
wai-quantum docs, course and locales / does this change touch it (pull_request) Successful in 19s
wai-quantum studio and desktop / does this change touch it (pull_request) Successful in 19s
wai-quantum for JavaScript / does this change touch it (pull_request) Successful in 19s
WAI Studio / does this change touch it (pull_request) Successful in 8s
wai-sink-swift native sink package / does this change touch it (pull_request) Successful in 9s
wai-sink-android native sink library / does this change touch it (pull_request) Successful in 10s
wai-audit collector and player integration / collector · linux (pull_request) Successful in 1m9s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 24s
wai-web wasm32 / does this change touch it (pull_request) Successful in 11s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (pull_request) Successful in 1m36s
wai-audit collector and player integration / collector, player integration and the browser end to end · macos (pull_request) Successful in 1m46s
WAI conformance / codec wrappers · fuzz smoke, text decode limits, C entry points, provenance, the semantic path (pull_request) Successful in 1m0s
joule-moq-remote host agent / joule-moq-remote, every target (linux-arm64) (pull_request) Successful in 1m40s
wai-web reach builds / wai-web reach builds · the package of record, every output as recorded (pull_request) Successful in 2m43s
wai-fleet service / service · macos (pull_request) Successful in 35s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (pull_request) Successful in 3m14s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (pull_request) Successful in 3m1s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 32s
WAI conformance / fast integer kernels, every x86_64 kernel set (AVX-512 silicon) (pull_request) Successful in 3m16s
WAI conformance / faces from keypoints under wasm32-wasip2 (wasmtime) (pull_request) Successful in 1m50s
wai-ledger service / service · macos (pull_request) Successful in 42s
wai-key-proxy / proxy · linux (pull_request) Successful in 1m10s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 19s
joule-moq-room room service / joule-moq-room, every target (pull_request) Successful in 4m10s
wai-fleet service / service · linux (pull_request) Successful in 2m25s
wai-ledger service / service · linux (pull_request) Successful in 1m34s
WAI operation catalogue / the catalogue and every door · linux (pull_request) Successful in 6m47s
WAI conformance / quantum core and corpus under wasm32-wasip2 (wasmtime) (pull_request) Successful in 6m18s
wai-pack / wai-pack · linux (pull_request) Successful in 1m48s
wai-app and Create / wai-app · Create, browser end-to-end (macos) (pull_request) Successful in 7m41s
wai-quantum docs, course and locales / the Studio's words in every locale · linux (pull_request) Successful in 19s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 8m8s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 9m57s
standards workspaces build + test / joule-code-rs (joule-code/joule-code-rs, joule-code-rs, linux-arm64, true) (pull_request) Successful in 9m13s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 29s
wai-quantum for JavaScript / javascript · linux (pull_request) Successful in 3m27s
WAI Studio / the catalogue's actions, the unit tests and the core · linux (pull_request) Successful in 55s
wai-ops-gpu integer operators on GPUs / Metal GPU and browser WebGPU (macos) (pull_request) Successful in 8m9s
wai-pack / wai-pack · macos (pull_request) Successful in 4m18s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 1m7s
wai-quantum docs, course and locales / the course and the command line's languages · linux (pull_request) Successful in 5m2s
wai-quantum studio and desktop / studio · browser (pull_request) Successful in 4m26s
wai-web reach builds / wai-web reach builds · this tree's wai-web, every rung on its engine line (pull_request) Successful in 12m22s
joule-moq-web browser client / joule-moq-web · browser end-to-end (macos) (pull_request) Successful in 12m53s
wai-ops-gpu integer operators on GPUs / builds · no adapter is not a pass (linux) (pull_request) Successful in 8m14s
WAI examples / WAI examples · portable · linux (pull_request) Successful in 10m35s
standards workspaces build + test / macOS energy backends (pull_request) Successful in 13m37s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 2m25s
wai-quantum studio and desktop / desktop app · macos (pull_request) Successful in 2m57s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 12m12s
WAI conformance / cargo-class corpora · macos (pull_request) Failing after 15m22s
WAI examples / WAI examples · the archive, the readiness check, the browser and Apple · macos (pull_request) Successful in 15m0s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 2m2s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 6m7s
WAI conformance / each feature of the independent verifiers' steps compiles alone (pull_request) Successful in 13m26s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 17s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 19m6s
WAI examples / WAI examples · android-app · linux-arm64 (pull_request) Successful in 5m43s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m33s
wai-sink-android native sink library / every ABI, the AAR, and the instrumented tests in a headless emulator · macos (pull_request) Successful in 7m49s
WAI Studio / Studio in WebKit · linux (pull_request) Successful in 11m10s
wai-quantum docs, course and locales / every command and snippet in the docs · linux (pull_request) Successful in 16m14s
WAI Studio / Studio in Chromium and Firefox · macos (pull_request) Successful in 11m0s
wai-sink-android native sink library / the JNI layer and the platform-free half on the host JVM · linux-arm64 (pull_request) Successful in 2m52s
wai-sink-swift native sink package / libwai slices, desktop tests, simulator tests · macos (pull_request) Successful in 11m38s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 7m31s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 25m3s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 1h7m0s
wai: the corpus's SCTE-35 sections, five bytes of pts_adjustment
The generator wrote four bytes where splice_info_section() has five (the
encryption bits and the 33-bit pts_adjustment), so splice_command_type fell on
byte 12 and every cue took the hashed cue_id: the splice_event_id path of §4.8
was never reached, and both implementations agreed on the wrong bytes. A
falsification that broke that path showed it. The sections now have the layout
of SCTE 35-1 §9.6, and a unit test reads §14.2's splice_insert() and §14.1's
time_signal() samples: 0x4800008F, and the break id's hash.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-29 17:35:12 -04:00
..
aired-misreported.channel.json wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
art-hl-101.svg wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
art-hl-102.svg wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
art-nf-1.svg wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
art-tk-7.svg wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
media_rss_loop.channel.json wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
README.md wai: register wai.video.lineup, its magic WLU1, and the CI step 2026-10-29 17:23:18 -04:00
sample-a.mrss.xml wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
sample-b.mrss.xml wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
sample.after.now-next.json wai: register wai.video.lineup, its magic WLU1, and the CI step 2026-10-29 17:23:18 -04:00
sample.before.now-next.json wai: register wai.video.lineup, its magic WLU1, and the CI step 2026-10-29 17:23:18 -04:00
sample.channel.json wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
sample.guide.xml wai: register wai.video.lineup, its magic WLU1, and the CI step 2026-10-29 17:23:18 -04:00
sample.json wai: the corpus's SCTE-35 sections, five bytes of pts_adjustment 2026-10-29 17:35:12 -04:00
sample.m3u8 wai: the corpus's SCTE-35 sections, five bytes of pts_adjustment 2026-10-29 17:35:12 -04:00
sample.now-next.json wai: register wai.video.lineup, its magic WLU1, and the CI step 2026-10-29 17:23:18 -04:00
sample.part.guide.xml wai: register wai.video.lineup, its magic WLU1, and the CI step 2026-10-29 17:23:18 -04:00
sample.xmltv.xml wai-rs: channel_lineup, the import, the lineup and the guide, with its corpus 2026-10-29 17:12:37 -04:00
vectors.json wai: the corpus's SCTE-35 sections, five bytes of pts_adjustment 2026-10-29 17:35:12 -04:00

live-conformance/channels — channel lineup and guide

The corpus of extensions/channel-lineup.md §11: a sample linear channel as operators exchange it, imported into its wai.video.channel receipt and its WLU1 lineup, its guides, and what a verifier states of each. Every file but this one is written from fixed seeds by wai_channel_lineup_vectors gen (feature channel_lineup), and wai_channel_lineup_vectors verify <dir> and tests/channel_lineup.rs require them byte for byte. The second implementation is ../channel_lineup_verify.py, run as python3 -I channel_lineup_verify.py channels.

The sample channel, sample-1, is two hours on 2026-10-29 from 18:00 UTC, four programmes of three content owners, with four ad breaks:

file what
sample.xmltv.xml the schedule: XMLTV, with a document type declaration, a second channel's programme beside it, and times in three zone forms
sample-a.mrss.xml, sample-b.mrss.xml two owners' Media RSS catalogues: content, durations, titles, categories, thumbnails, ratings and country restrictions, one item under media:group, one item no programme names
sample.m3u8 the channel's Media Playlist: SCTE-35 date ranges with real splice_insert() and time_signal() sections and their CRC, an out/in pair split across two tags of one ID, one duration from END-DATE, and a date range that is not a break
sample.json the same channel in the JSON form
art-*.svg the artwork the icons and thumbnails name
sample.channel.json the receipt the sample yields, its first hour the window
sample.guide.xml, sample.part.guide.xml XMLTV guides of the whole schedule and of a range
sample.now-next.json, sample.before.now-next.json, sample.after.now-next.json now/next documents inside a break, before the schedule and after it
media_rss_loop.channel.json the receipt of one owner's items alone, back to back
aired-misreported.channel.json a receipt, signed, whose program-as-run its window does not give
vectors.json the operator's key, and every vector

vectors.json holds:

  • operator: the key that signs every receipt and lineup, and its seed (a published seed: a test key that attests nothing);
  • imports: each with its inputs (§4.1: the files it reads, owners, id_system, xmltv_channel, start_ms, the artwork set by file name, the window, signer_id and parent_receipt_hash), its edits, and its outcome: {"refused": reason}, or the receipt's file and identity, the lineup's bytes and digest in hexadecimal, and the cues (each break's id, its start and its live-events cue payload in hexadecimal);
  • verifications: each with its receipt file, its lineup bytes in hexadecimal, its guide file or null, its edits, and its facts, what §8.3 states: verdict, part, receipt, lineup, guide (format, from_ms, to_ms, at_ms, and its programmes, each start_ms, stop_ms, asset_id and aired), and entry.

An edit is applied to a copy of the file it names before the vector is run: {"file", "find", "replace"} replaces the one occurrence of find (an edit whose find does not occur exactly once is a broken vector); with "repeat": n it keeps find and writes replace n times after it; and {"file", "pad"} appends that many space bytes. Each control is the sample with one such change, or with one input changed.