{ "format": "wai-frame-stream-catalog/1", "about": "Catalog entries of MoQ tracks with and without wai_frame_stream (moq-streaming-format ยง4.3): `read` is `ok`, `none` (the track declares no frame stream) or the code that refuses the entry; each object is checked against the declaration with its MOQT Object ID, and expects `ok` or a code.", "cases": [ { "name": "declared", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ], "wai_frame_stream": { "capability": "wai.video.int_motion.frame" } }, "read": "ok", "objects": [ { "envelope": "int-payload-conformance/frame-stream/streams/int_video/00.wai", "object_id": 0, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/int_video/01.wai", "object_id": 1, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/int_video/02.wai", "object_id": 2, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/int_video/03.wai", "object_id": 3, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/int_video/04.wai", "object_id": 4, "expect": "ok" } ] }, { "name": "plain_track", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion" ] }, "read": "none", "objects": [] }, { "name": "undeclared_frame_capability", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ] }, "read": "catalog_frame_stream_malformed", "objects": [] }, { "name": "null_member", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ], "wai_frame_stream": null }, "read": "catalog_frame_stream_malformed", "objects": [] }, { "name": "member_not_object", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ], "wai_frame_stream": true }, "read": "catalog_frame_stream_malformed", "objects": [] }, { "name": "base_capability", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion" ], "wai_frame_stream": { "capability": "wai.video.int_motion" } }, "read": "catalog_frame_stream_malformed", "objects": [] }, { "name": "not_listed", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_hyper.frame" ], "wai_frame_stream": { "capability": "wai.video.int_motion.frame" } }, "read": "catalog_frame_stream_malformed", "objects": [] }, { "name": "listed_with_another", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame", "wai.video.int_hyper" ], "wai_frame_stream": { "capability": "wai.video.int_motion.frame" } }, "read": "catalog_frame_stream_malformed", "objects": [] }, { "name": "object_capability", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ], "wai_frame_stream": { "capability": "wai.video.int_motion.frame" } }, "read": "ok", "objects": [ { "envelope": "int-payload-conformance/frame-stream/streams/int_video/00.wai", "object_id": 0, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/capability_mismatch/01.wai", "object_id": 1, "expect": "catalog_frame_mismatch" } ] }, { "name": "object_unlinked", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ], "wai_frame_stream": { "capability": "wai.video.int_motion.frame" } }, "read": "ok", "objects": [ { "envelope": "int-payload-conformance/frame-stream/streams/int_video/00.wai", "object_id": 0, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/link_missing/01.wai", "object_id": 1, "expect": "catalog_frame_mismatch" } ] }, { "name": "object_id", "entry": { "namespace": "example/cam1", "name": "cam1/frames", "packaging": "wai", "isLive": true, "role": "video", "wai_capabilities": [ "wai.video.int_motion.frame" ], "wai_frame_stream": { "capability": "wai.video.int_motion.frame" } }, "read": "ok", "objects": [ { "envelope": "int-payload-conformance/frame-stream/streams/int_video/00.wai", "object_id": 0, "expect": "ok" }, { "envelope": "int-payload-conformance/frame-stream/streams/int_video/01.wai", "object_id": 2, "expect": "catalog_frame_mismatch" } ] } ] }