wai-conformance's C2PA job failed `the_sdk_version_pinned_is_the_lockfiles` (run 30917):55d4f1ca6moved wai-rs's lockfile from the c2pa crate 0.91.7 to 0.91.11, and SDK_VERSION, the corpus's vectors.json and its README still named 0.91.7. Every claim the SDK signs names its version in claim_generator_info, so each of the corpus's files named 0.91.7 too. Signed again with 0.91.11 by `wai_c2pa_sdk_identity_vectors gen`. SDK_VERSION is 0.91.11. Old and new vectors.json differ only in sdk.version and each vector's sha256 (all 20 new); every expect and every pinned report of the SDK's validator is the same, and every PNG names 0.91.11 in its claim. Before the regeneration, 0.91.11's validator already reported of the files 0.91.7 signed exactly what was pinned (the committed-corpus test and `verify` passed at 0.91.11 in CI and here). So 0.91.11 changed nothing a verdict reads: D6's reading of the two releases holds (recorded there), the validator accepts whole every default identity assertion of both corpora, and reports exactly cawg.x509.signature.mismatch of the strict form. c2pa-binding §9.3, the corpus's README and the conformance table say the corpus is written with the SDK the lockfile holds, and again only when that version moves. Reproduced on an aarch64 build host atd0b303206: the job's identity step failed only that test (13 passed, 1 failed). After, on a macOS arm64 build host, every step of the C2PA job: no system crypto in the graph; c2pa_emit 9 passed; the session receipt 2 passed; c2pa_emit::identity 14 passed and `verify` PASS on both counts; provenance builds without c2pa. Also c2pa_sdk_identity_verify.py (57 mutated copies refused, 16 of 16 weakened verifiers caught), clippy --all-targets --no-default-features --features c2pa_emit,c2pa_envelope -D warnings clean, and `wai breaking` against main with its 21 findings (the 20 files and SDK_VERSION) each acknowledged in the change note. Proved by the next wai-conformance run on main (C2PA manifest emission). Co-Authored-By: Claude Opus 5.5 <[email protected]>
189 lines
21 KiB
Markdown
189 lines
21 KiB
Markdown
# live-conformance — the `wai.live` family
|
|
|
|
Conformance corpora of the live and interactive extensions, one directory per extension,
|
|
and the independent verifier of each, beside it.
|
|
|
|
| directory | extension | generator | verifier |
|
|
|---|---|---|---|
|
|
| [`events/`](events/) | [live-events](../extensions/live-events.md) (`wai.live.events`) | `wai_live_events_vectors gen` | `live_events_verify.py` |
|
|
| [`offers/`](offers/) | [shoppable-events](../extensions/shoppable-events.md) (`wai.live.offer`) | `wai_shoppable_events_vectors gen` | `shoppable_events_verify.py` |
|
|
| [`rooms/`](rooms/) | [live-rooms](../extensions/live-rooms.md) (`wai.live.room`) | `wai_live_room_vectors gen` | `live_rooms_verify.py` |
|
|
| [`takes/`](takes/) | [capture-binding](../extensions/capture-binding.md) (`wai.capture.take`) | `wai_capture_take_vectors gen` | `capture_take_verify.py` |
|
|
| [`compose/`](compose/) | [live-compose](../extensions/live-compose.md) (`wai.live.compose`) | `wai_live_compose_vectors gen` | `live_compose_verify.py` |
|
|
| [`compose-ad-track/`](compose-ad-track/) | [live-compose](../extensions/live-compose.md) §5.10 (`wai.live.compose`: per-session ad tracks, `WAT1`) | `wai_compose_ad_track_vectors gen` | `compose_ad_track_verify.py` |
|
|
| [`recordings/`](recordings/) | [live-recording](../extensions/live-recording.md) (`wai.live.recording`) | `wai_live_record_vectors gen` | `live_record_verify.py` |
|
|
| [`captions/`](captions/) | [timed-text](../extensions/timed-text.md) (`wai.text.timed`) | `wai_timed_text_vectors gen` | `timed_text_verify.py` |
|
|
| [`metering/`](metering/) | [live-metering](../extensions/live-metering.md) (`wai.live.metering`) | `wai_live_metering_vectors gen` | `live_metering_verify.py` |
|
|
| [`steering/`](steering/) | [energy-steering](../extensions/energy-steering.md) (`wai.live.steering`) | `wai_energy_steering_vectors gen` | `energy_steering_verify.py` |
|
|
| [`moderation/`](moderation/) | [live-moderation](../extensions/live-moderation.md) (`wai.live.moderation`) | `wai_live_moderation_vectors gen` | `live_moderation_verify.py` |
|
|
| [`ads/`](ads/) | [live-ads](../extensions/live-ads.md) (`wai.live.ads`) | `wai_live_ads_vectors gen` | `live_ads_verify.py` |
|
|
| [`e2ee/`](e2ee/) | [confidentiality](../extensions/confidentiality.md) (`wai.live.e2ee`) | `joule_moq_e2ee_vectors gen` (joule-moq-mls) | `e2ee_verify.py` |
|
|
| [`messaging/`](messaging/) | [live-messaging](../extensions/live-messaging.md) (`wai.live.message`, `wai.live.call`) | `wai_live_messaging_vectors gen` | `live_messaging_verify.py` |
|
|
| [`watermark/`](watermark/) | [forensic-watermark](../extensions/forensic-watermark.md) (`wai.live.watermark`) | `wai_live_watermark_vectors gen` | `live_watermark_verify.py` |
|
|
| [`c2pa-live/`](c2pa-live/) | [live-provenance](../extensions/live-provenance.md) (`wai.live.provenance`) | `wai_live_provenance_vectors gen` | `c2pa_live_verify.py` |
|
|
| [`c2pa-envelope/`](c2pa-envelope/) | [c2pa-binding](../extensions/c2pa-binding.md) (`wai.asset.c2pa`) | `wai_c2pa_envelope_vectors gen` | `c2pa_live_verify.py` |
|
|
| [`c2pa-identity/`](c2pa-identity/) | [c2pa-binding](../extensions/c2pa-binding.md) §4.8 to §4.10, §6.4 (soft bindings, the ISCC soft binding and identifier, identity assertions, trust lists) | `wai_c2pa_identity_vectors gen` | `c2pa_live_verify.py` |
|
|
| [`c2pa-sdk-identity/`](c2pa-sdk-identity/) | [c2pa-binding](../extensions/c2pa-binding.md) §4.11 (identity assertions in manifests a C2PA SDK signed) | `wai_c2pa_sdk_identity_vectors gen` wrote it with the SDK the lockfile holds; its files are pinned by digest, written again only when that version moves | `c2pa_sdk_identity_verify.py` |
|
|
| [`iscc/`](iscc/) | [iscc](../extensions/iscc.md) (ISO 24138 codes) | `wai_iscc_vectors gen`, beside the public vectors it replays | `iscc_verify.py` |
|
|
| [`synthesis/`](synthesis/) | [synthesis](../extensions/synthesis.md) (`wai.media.synthesis`) | `wai_synthesis_vectors gen` | `synthesis_verify.py` |
|
|
| [`usage/`](usage/) | [ai-usage](../extensions/ai-usage.md) (`wai.ai.usage`) | `wai_ai_usage_vectors gen` | `ai_usage_verify.py` |
|
|
| [`contribution/`](contribution/) | [contribution](../extensions/contribution.md) (`wai.media.contribution`) | `wai_contribution_vectors gen` | `contribution_verify.py` |
|
|
| [`settlement/`](settlement/) | [settlement](../extensions/settlement.md) (`wai.delivery.settlement`) | `wai_settlement_vectors gen` | `settlement_verify.py` |
|
|
| [`audit/`](audit/) | [stream-audit](../extensions/stream-audit.md) (`wai.delivery.audit`) | `wai_stream_audit_vectors gen` | `stream_audit_verify.py` |
|
|
| [`native-sink/`](native-sink/) | [native-sink](../extensions/native-sink.md) (a native host's sink: verification, stream-audit's records, ending) | `wai_native_sink_vectors gen` | `native_sink_verify.py` |
|
|
| [`certification/`](certification/) | [certification](../extensions/certification.md) (a certifier's refusals, `cert-refusal/1`, and publications, `cert-publication/1`) | `wai_certification_vectors gen` | `certification_verify.py` |
|
|
| [`browser/`](browser/) | [browser-sink](../extensions/browser-sink.md) (routing, constraint sets, energy entries, `contentBinding`) | `wai_browser_sink_vectors gen` | `browser_sink_verify.py` |
|
|
| [`browser-floor/`](browser-floor/) | [browser-sink](../extensions/browser-sink.md) §14.9 (a graphics component's text floor, read and presented) | `wai_browser_floor_vectors gen` | `browser_floor_verify.py` |
|
|
| [`takedown/`](takedown/) | [takedown](../extensions/takedown.md) (`wai.media.takedown`) | `wai_takedown_vectors gen` | `takedown_verify.py` |
|
|
| [`audit-chain/`](audit-chain/) | [audit-chain](../extensions/audit-chain.md) (`wai.audit.chain`) | `wai_audit_chain_vectors gen` | `audit_chain_verify.py` |
|
|
| [`data-export/`](data-export/) | [data-export](../extensions/data-export.md) (`wai.data.export`) | `wai_data_export_vectors gen` | `data_export_verify.py` |
|
|
| [`data-deletion/`](data-deletion/) | [data-deletion](../extensions/data-deletion.md) (`wai.data.deletion`) | `wai_data_deletion_vectors gen` | `data_deletion_verify.py` |
|
|
| [`coperformance/`](coperformance/) | [co-performance](../extensions/co-performance.md) (`wai.live.coperformance`) | `wai_co_performance_vectors gen` | `co_performance_verify.py` |
|
|
| [`influence/`](influence/) | [influence](../extensions/influence.md) (`wai.media.influence`) | `wai_influence_vectors gen` | `influence_verify.py` |
|
|
| [`direction/`](direction/) | [direction](../extensions/direction.md) (`wai.media.direction`) | `wai_direction_vectors gen` | `direction_verify.py` |
|
|
| [`bearers/`](bearers/) | [bearer-receipts](../extensions/bearer-receipts.md) (`wai.bearer.receipts`) | `wai_bearer_vectors gen` | `bearer_verify.py` |
|
|
| [`compact-return/`](compact-return/) | [bearer-receipts](../extensions/bearer-receipts.md) §13 (the compact return profile) | `wai_compact_return_vectors gen` | `compact_return_verify.py` |
|
|
| [`carousel/`](carousel/) | [carousel](../extensions/carousel.md) (`wai.bearer.carousel`) | `wai_carousel_vectors gen` | `carousel_verify.py` |
|
|
| [`audience-scte224/`](audience-scte224/) | [audience-decision](../extensions/audience-decision.md) §10 (SCTE 224 documents as blackouts) | `tests/audience_scte224.rs`, with `WAI_AUDIENCE_SCTE224_WRITE=1` | `audience_scte224_verify.py` |
|
|
| [`ad-signalling/`](ad-signalling/) | [live-ads](../extensions/live-ads.md) §13 (ad creative signalling on a MoQ event timeline) and §14 (content stitching over MoQ) | `tests/ad_signalling.rs`, with `WAI_AD_SIGNALLING_WRITE=1` | `ad_signalling_verify.py` |
|
|
| [`stitched-session/`](stitched-session/) | [player-integration](../extensions/player-integration.md) §3 (*A stitched session*: the ingredients a player integration handed, and the session's binding and claims held to them) | `tests/stitched_session.rs`, with `WAI_STITCHED_SESSION_WRITE=1` | `stitched_session_verify.py`; `joule-moq-web/web/ads/session.test.mjs` |
|
|
| [`protected-cmsf/`](protected-cmsf/) | [moq-streaming-format](../extensions/moq-streaming-format.md) §4.9 (protected CMAF tracks over MoQ, a key for each key period) | wai-pack's `tests/cmsf.rs`, with `WAI_PROTECTED_CMSF_WRITE=1` | `protected_cmsf_verify.py` |
|
|
| [`carousel-moq-fec/`](carousel-moq-fec/) | [carousel](../extensions/carousel.md) §8.3 (the MoQ FEC catalog binding) and [bearer-receipts](../extensions/bearer-receipts.md) §9.7 (multicast endpoints) | `tests/carousel_moq_fec.rs`, with `WAI_CAROUSEL_MOQ_FEC_WRITE=1` | `carousel_moq_fec_verify.py` |
|
|
| [`holdings/`](holdings/) | [holdings](../extensions/holdings.md) (`wai.delivery.holdings`) | `wai_holdings_vectors gen` | `holdings_verify.py` |
|
|
| [`hls-clips/`](hls-clips/) | [hls-clips](../extensions/hls-clips.md) (`wai.delivery.hls_clip`) | `wai_hls_clip_vectors gen` | `hls_clips_verify.py` |
|
|
| [`peer-delivery/`](peer-delivery/) | [peer-delivery](../extensions/peer-delivery.md) (the exchange; no capability) | `wai_peer_delivery_vectors gen` | `peer_delivery_verify.py` |
|
|
| [`http-egress/`](http-egress/) | [live-http-egress](../extensions/live-http-egress.md) (an egress's trace; no capability) | `wai_live_egress_vectors gen` | `http_egress_verify.py` |
|
|
| [`signal-health/`](signal-health/) | [signal-health](../extensions/signal-health.md) (`wai.live.signal_health`) | `wai_signal_health_vectors gen` | `signal_health_verify.py` |
|
|
| [`timeliness/`](timeliness/) | [timeliness](../extensions/timeliness.md) (`wai.delivery.timeliness`) | `wai_timeliness_vectors gen` | `timeliness_verify.py` |
|
|
| [`prices/`](prices/) | [rung-price](../extensions/rung-price.md) (`wai.delivery.rung_price`) | `wai_rung_price_vectors gen` | `rung_price_verify.py` |
|
|
| [`price-documents/`](price-documents/) | [price-document](../extensions/price-document.md) (`wai.price.document`) | `wai_price_document_vectors gen` | `price_document_verify.py` |
|
|
| [`cache-authority/`](cache-authority/) | [cache-authority](../extensions/cache-authority.md) (`wai.delivery.cache`) | `wai_cache_authority_vectors gen` | `cache_authority_verify.py` |
|
|
| [`audience/`](audience/) | [audience-decision](../extensions/audience-decision.md) (`wai.video.audience`, `wai.delivery.territory`) | `wai_audience_decision_vectors gen` | `audience_decision_verify.py` |
|
|
| [`sink-predicate/`](sink-predicate/) | [sink-predicate](../extensions/sink-predicate.md) (`wai.delivery.sink_predicate`) | `wai_sink_predicate_vectors gen` | `sink_predicate_verify.py` |
|
|
| [`sink-reel/`](sink-reel/) | [sink-predicate](../extensions/sink-predicate.md) §9 (`wai.delivery.sink_reel`) | `wai_sink_reel_vectors gen` | `sink_reel_verify.py` |
|
|
| [`machine-coding/`](machine-coding/) | [task-fidelity](../extensions/task-fidelity.md) §5 (the `split-computation` claim), [machine-descriptors](../extensions/machine-descriptors.md), [format-probes](../extensions/format-probes.md) §19 | `wai_machine_coding_vectors gen` | `machine_coding_verify.py` |
|
|
| [`energy-methods/`](energy-methods/) | [energy-methods](../extensions/energy-methods.md) (exports of signed energy records under the industry's measurement and reporting methods) | `wai_energy_methods_vectors gen` | `energy_methods_verify.py` |
|
|
| [`impressions/`](impressions/) | [impression-aggregates](../extensions/impression-aggregates.md) (`wai.delivery.impressions`) | `wai_impression_aggregate_vectors gen` | `impression_aggregate_verify.py` |
|
|
| [`access/`](access/) | [access-services](../extensions/access-services.md) (`wai.access.services`) | `wai_access_services_vectors gen` | `access_services_verify.py` |
|
|
| [`presentation/`](presentation/) | [ad-presentation](../extensions/ad-presentation.md) (`wai.live.ad_presentation`) | `wai_ad_presentation_vectors gen` | `ad_presentation_verify.py` |
|
|
| [`age/`](age/) | [age-assurance](../extensions/age-assurance.md) (`wai.age.assurance`) | `wai_age_assurance_vectors gen` | `age_assurance_verify.py` |
|
|
| [`exploration/`](exploration/) | [exploration](../extensions/exploration.md) (`wai.media.exploration`) | `wai_exploration_vectors gen` | `exploration_verify.py` |
|
|
| [`cowatch/`](cowatch/) | [co-watch](../extensions/co-watch.md) (`wai.live.cowatch`) | `wai_co_watch_vectors gen` | `co_watch_verify.py` |
|
|
| [`worlds/`](worlds/) | [live-worlds](../extensions/live-worlds.md) (`wai.live.world`) | `wai_live_world_vectors gen` | `live_worlds_verify.py` |
|
|
| [`world-gen/`](world-gen/) | [model-generation](../extensions/model-generation.md) (`wai.world.generation`) | `wai_world_gen_vectors gen` (from the real runs under `world-gen/runs/`) | `world_gen_verify.py` |
|
|
| [`synthesis-mark/`](synthesis-mark/) | [synthesis](../extensions/synthesis.md) §7.4 to §7.8 (the watermark scheme `wai-mark:tent64`) | `wai_synthesis_mark_vectors gen` | `synthesis_mark_verify.py` |
|
|
| [`upscale/`](upscale/) | [exact-upscale](../extensions/exact-upscale.md) (`wai.media.upscale`) | `wai_upscale_vectors gen` | `upscale_verify.py` |
|
|
| [`models/`](models/) | [model-governance](../extensions/model-governance.md) (`wai.sink.models`) | `wai_model_policy_vectors gen` | `model_policy_verify.py` |
|
|
| [`prior-carriage/`](prior-carriage/) | [prior-carriage](../extensions/prior-carriage.md) §15 and [http-delivery](../extensions/http-delivery.md) §8.7 (where a parameter set is fetched) | `wai_prior_carriage_vectors gen` | `prior_carriage_verify.py` |
|
|
| [`dred/`](dred/) | [opus-dred](../extensions/opus-dred.md) (`wai.audio.opus.dred.int`) | `wai_dred_vectors gen` (with the draft's weights file, `dred/fetch.sh`) | `dred_verify.py` |
|
|
| [`aggregate/`](aggregate/) | [telemetry-aggregation](../extensions/telemetry-aggregation.md) (`wai.telemetry.aggregate`) | `wai_telemetry_aggregate_vectors gen` | `telemetry_aggregate_verify.py` |
|
|
| [`tonemap/`](tonemap/) | [exact-tonemap](../extensions/exact-tonemap.md) (`wai.media.tonemap`, `wai.meta.gainmap`, `wai.meta.st2094_50`) | `wai_tonemap_vectors gen` | `tonemap_verify.py` |
|
|
| [`robustness/`](robustness/) | [robustness-evidence](../extensions/robustness-evidence.md) (`wai.media.robustness`) | `wai_robustness_vectors gen` | `robustness_verify.py` |
|
|
| [`detection/`](detection/) | [detection](../extensions/detection.md) (`wai.media.detection`) | `wai_detection_vectors gen` | `detection_verify.py` |
|
|
| [`splat/`](splat/) | [splat-exact](../extensions/splat-exact.md) (`wai.splat.exact`) | `wai_splat_exact_vectors gen` | `splat_exact_verify.py` |
|
|
| [`loc/`](loc/) | [loc-carriage](../extensions/loc-carriage.md) (WAI envelopes on LOC objects) | `loc_vectors gen` (a joule-moq example) | `loc_verify.py` |
|
|
| [`avatar-face/`](avatar-face/) | [avatars](../extensions/avatars.md) §6 to §13 (`wai.avatar.face`) | `wai_avatar_face_vectors gen` | `avatar_face_verify.py` |
|
|
| [`termination/`](termination/) | [stream-termination](../extensions/stream-termination.md) (`wai.live.termination`) and [capability-constraints](../extensions/capability-constraints.md) §4 (the display match) | `wai_stream_termination_vectors gen` | `stream_termination_verify.py` |
|
|
| [`keys/`](keys/) | [key-release](../extensions/key-release.md) (the proxy form of `wai.video.keys`) | `wai_key_release_vectors gen` | `key_release_verify.py` |
|
|
| [`links/`](links/) | [live-contribution](../extensions/live-contribution.md) (`wai.live.contribution`) | `joule-moq-ingest-link-vectors --out` (joule-moq-ingest) | `live_contribution_verify.py` |
|
|
| [`st2110/`](st2110/) | [essence-contribution](../extensions/essence-contribution.md) §4 to §8 (uncompressed essence over RTP: descriptions, video rows, PCM, ancillary data, SCTE 104 in it) | `joule-moq-ingest-st2110-vectors --out` (joule-moq-ingest) | `st2110_verify.py` |
|
|
| [`telephony/`](telephony/) | [telephony-bridge](../extensions/telephony-bridge.md) §4 to §8 (SIP messages, digest credentials, offers and answers, the bridge's user agent, RTP, G.711 and telephone events) | `joule-moq-ingest-telephony-vectors --out` (joule-moq-ingest) | `telephony_verify.py` |
|
|
| [`remote/`](remote/) | [remote-desktop](../extensions/remote-desktop.md) (`wai.live.remote`) | `wai_remote_desktop_vectors gen` | `remote_desktop_verify.py` |
|
|
|
|
**Provenance.** Generated here: each directory's corpus is written by its row's generator
|
|
(`gen`, in `wai/wai-rs`), from records authored in code and from fixed seeds, and each
|
|
directory's README says how. `c2pa-live/` cuts its media from the packaging corpus's AV1
|
|
floor; `c2pa-envelope/` carries pictures its generator draws, and `c2pa-identity/` pictures it
|
|
draws and marks with `wai-mark:tent64`, with the robustness record the harness measures over them
|
|
and trust lists of its own test anchors in the C2PA Trust List's form; `iscc/` holds, beside
|
|
pictures its generator draws, `public.json`, the ISCC public test vectors as transcribed and
|
|
pinned by digest (`iscc/README.md`); `detection/` measures its stand-in detector over pictures it
|
|
draws; `contribution/` and
|
|
`influence/` generate their pictures with `wai.generate.spectral`
|
|
and the model file of that capability's conformance vector (`influence/` also with a second
|
|
model file written from it); `takedown/` carries the registry of clocks the repository
|
|
publishes, `registry/takedown-clocks.json`, as written there; and `upscale/` reads two priors
|
|
that `tools/wai_int_sr_train.py` trained on pictures it generates (`upscale/README.md`).
|
|
`tonemap/` renders generated HDR scenes to its stills with the reference's own encoder, and
|
|
tone-maps the frames of the `int_video` clip of the integer video corpus.
|
|
`robustness/` generates its pictures with the dead-leaves generator of `synthesis_mark` and
|
|
with `wai.generate.spectral`, and measures the synthesis corpus's measurement sets, whose
|
|
samples it does not hold.
|
|
`splat/` carries the learned cloud of `wai-rs/tests/vectors/int_splat/` beside scenes
|
|
authored as attribute bytes.
|
|
`joule_moq_e2ee_vectors gen` (in
|
|
`joule-code/joule-code-rs/crates/joule-moq-mls`) writes `e2ee/vectors.json` from fixed seeds,
|
|
and `e2ee/` also holds the test vectors RFC 9605 and `draft-ietf-moq-secure-objects-01`
|
|
publish, as printed (`e2ee/README.md`), and `aggregate/vdaf-22/` the Prio3 test vectors of
|
|
`draft-irtf-cfrg-vdaf-22`, as published at the commit that draft names (`aggregate/README.md`).
|
|
`dred/` names the weights file of draft-ietf-mlcodec-opus-dred-07 by its SHA-256 and holds no
|
|
copy: its generator and its verifier read the file the draft names, which `dred/fetch.sh`
|
|
fetches and checks. One recorded record: `metering/relay-record.wmh` and its ledger, which the
|
|
reference relay signed in its test. `avatar-face/` reads a generator, two identity priors and
|
|
their keypoint tracks that `tools/wai_avatar_face_train.py` wrote from faces it generates
|
|
(`avatar-face/README.md`).
|
|
|
|
Each verifier is written from its extension's text, shares no code with the reference
|
|
(`wai-rs`, or for `e2ee/`, `joule-moq` and `joule-moq-mls`, and for `links/`,
|
|
`joule-moq-ingest`), and is run by
|
|
`.github/workflows/wai-conformance.yml` beside the reference's own check:
|
|
|
|
```
|
|
python3 live_events_verify.py events
|
|
python3 shoppable_events_verify.py offers
|
|
python3 live_rooms_verify.py rooms
|
|
python3 capture_take_verify.py takes
|
|
python3 live_compose_verify.py compose
|
|
python3 live_record_verify.py recordings
|
|
python3 timed_text_verify.py captions
|
|
python3 access_services_verify.py access
|
|
python3 live_metering_verify.py metering
|
|
python3 energy_steering_verify.py steering
|
|
python3 live_moderation_verify.py moderation
|
|
python3 live_ads_verify.py ads
|
|
python3 ad_presentation_verify.py presentation
|
|
python3 e2ee_verify.py e2ee
|
|
python3 live_messaging_verify.py messaging
|
|
python3 live_watermark_verify.py watermark
|
|
python3 c2pa_live_verify.py c2pa-live
|
|
python3 c2pa_live_verify.py c2pa-envelope
|
|
python3 c2pa_live_verify.py c2pa-identity
|
|
python3 iscc_verify.py iscc
|
|
python3 synthesis_verify.py synthesis
|
|
python3 synthesis_mark_verify.py synthesis-mark
|
|
python3 upscale_verify.py upscale
|
|
python3 model_policy_verify.py models
|
|
python3 avatar_face_verify.py avatar-face
|
|
python3 ai_usage_verify.py usage
|
|
python3 contribution_verify.py contribution
|
|
python3 settlement_verify.py settlement
|
|
python3 price_document_verify.py price-documents
|
|
python3 stream_audit_verify.py audit
|
|
python3 native_sink_verify.py native-sink
|
|
python3 browser_sink_verify.py browser
|
|
python3 browser_floor_verify.py browser-floor
|
|
python3 takedown_verify.py takedown
|
|
python3 audit_chain_verify.py audit-chain
|
|
python3 data_export_verify.py data-export
|
|
python3 data_deletion_verify.py data-deletion
|
|
python3 co_performance_verify.py coperformance
|
|
python3 age_assurance_verify.py age
|
|
python3 influence_verify.py influence
|
|
python3 direction_verify.py direction
|
|
python3 exploration_verify.py exploration
|
|
python3 co_watch_verify.py cowatch
|
|
python3 dred_verify.py dred <weights-file>
|
|
python3 telemetry_aggregate_verify.py aggregate
|
|
python3 tonemap_verify.py tonemap
|
|
python3 robustness_verify.py robustness
|
|
python3 detection_verify.py detection
|
|
python3 splat_exact_verify.py splat
|
|
python3 stream_termination_verify.py termination
|
|
python3 key_release_verify.py keys
|
|
python3 live_contribution_verify.py links
|
|
python3 st2110_verify.py --self-test st2110
|
|
python3 telephony_verify.py --self-test telephony
|
|
python3 remote_desktop_verify.py remote
|
|
python3 live_worlds_verify.py worlds
|
|
python3 hls_clips_verify.py hls-clips
|
|
```
|