Some checks failed
WAI breaking changes and the conformance runner / WAI breaking · does this change touch WAI (push) Successful in 10s
WAI breaking changes and the conformance runner / WAI breaking · wire, record and API against main · linux (push) Failing after 1m29s
WAI breaking changes and the conformance runner / WAI breaking and conform · their tests, and the independent verifiers through wai conform · linux (push) Failing after 2m24s
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Successful in 4m25s
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-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-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-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-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 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
platform-decode §2 reads the query a page asks the platform from the payload of every capability browser-sink §4.1 gives a user-agent decoder, not only AV1 and HEVC. §2.1 adds VP9 (the codec string from the first key frame's uncompressed header, the level from VP9's level table over the frame size and the mean rate of the IVF timestamps, the matrix of its colour space), AVC (avc1 and the SPS's profile, constraint byte and level, the size after the cropping rectangle) and VP8. §2.2 adds the audio query, asked of AudioDecoder.isConfigSupported and of decodingInfo with an AudioConfiguration: Ogg Opus (its OpusHead the description), one Opus packet (the TOC byte), FLAC (STREAMINFO; the marker and metadata the description) and AAC in ADTS (mp4a.40.<object type>, or mp4a.66 to mp4a.68 for MPEG-2). §2.3 reads, by the same readers, the chunks a page gives the decoder and which of them are key. §3: answers to several configurations under one codec string are merged, so no object is routed to a decoder that refused its configuration. browser-sink §3 takes the audio answers into the report; §14.3 has the composing page ask about every alternative platform-decode maps and decode one routed ua through WebCodecs from §2.3's chunks. wai::platform_decode: Query::Video and Query::Audio, chunks, chunks_json, merge_answers, media_of. wai-web: platformMapped, platformChunks, platformMerge; compose.js asks and decodes through them for every mapped capability, video and audio. platform-decode-conformance/queries.json: the query and chunk summary of real payloads of every mapped capability (payloads/, written by payloads/make.sh with an independent prober's readings in prober.tsv, and the identify and encode corpora's streams), and planted faults with their outcomes. live-conformance/browser_sink_verify.py, given that directory, recomputes every case with its own readers and requires every mutated copy to fail. verify_platform_decode.mjs reads every payload through the wasm32 build in Chromium and WebKit and decodes it where the platform accepts its configuration; platform-decode §5 records the run. Co-Authored-By: Claude Opus 5.5 <[email protected]>
920 lines
23 KiB
JSON
920 lines
23 KiB
JSON
{
|
|
"about": "platform-decode \u00a72: the query a sink reads from an entry's payload, and \u00a72.3: the chunks it gives the decoder. payload_file names a WAI1 envelope under wai/ whose payload is the entry's; payload_raw a file whose bytes are the payload; sps_hex is an HEVC SPS NAL unit, header included, as an Annex B stream carries it. rate is the presentation rate a sink gives a payload that states none. mutate is a planted fault: [byte offset, bits flipped] edits of the payload before it is read. expect holds members of the query's JSON form (platform_decode::query_json), chunks the summary of its chunks (platform_decode::chunks_json), and refused: true a payload that gives no query or no chunks. The two AV1 objects are floor objects of the packaging corpus (SPEC \u00a75's AV1 framing); their codec string is the one the packager wrote into the pack's HLS master. The SPS is the one the platform's HEVC encoder wrote through WebCodecs, configured as hvc1.1.6.L93.B0 for 640x360 with prefer-hardware (a hint the user agent may ignore, so nothing here says which encoder ran): it states general_level_idc 63 (level 2.1), and the codec string the encoder declared for its output repeated the configured one. The other payloads were written by real encoders and muxers: identify-conformance/ext/ (its tools/make_external.sh), encode-conformance/streams/ (the platform's and a software encoder), and payloads/ (payloads/make.sh; payloads/prober.tsv is what an independent media prober read of each).",
|
|
"cases": [
|
|
{
|
|
"id": "corpus-floor-object-60-units",
|
|
"capability": "wai.video.av1",
|
|
"payload_file": "pack-conformance/packs/video-base-01/package/objects/35c7a45323b7afe979c123fa885f35cc55fabd2a1954759aebe4b95dbc76361f.wai",
|
|
"expect": {
|
|
"codec": "av01.0.00M.08",
|
|
"width": 64,
|
|
"height": 36,
|
|
"codedWidth": 64,
|
|
"codedHeight": 36,
|
|
"framerate": [
|
|
25,
|
|
1
|
|
],
|
|
"bitrate": 7230,
|
|
"bitDepth": 8
|
|
}
|
|
},
|
|
{
|
|
"id": "corpus-floor-object-40-units",
|
|
"capability": "wai.video.av1",
|
|
"payload_file": "pack-conformance/packs/video-base-01/package/objects/761c4649427c51796a2b699568775765b209ee80d2f4fc1cf040838c6724aa2d.wai",
|
|
"expect": {
|
|
"codec": "av01.0.00M.08",
|
|
"width": 64,
|
|
"height": 36,
|
|
"codedWidth": 64,
|
|
"codedHeight": 36,
|
|
"framerate": [
|
|
25,
|
|
1
|
|
],
|
|
"bitrate": 8715,
|
|
"bitDepth": 8
|
|
}
|
|
},
|
|
{
|
|
"id": "platform-encoder-sps",
|
|
"capability": "wai.video.hevc",
|
|
"sps_hex": "420101016000000300b0000003000003003fa005020171f2e206ee45914bff2e7f13fa9b8086808040",
|
|
"expect": {
|
|
"codec": "hev1.1.6.L63.B0",
|
|
"width": 640,
|
|
"height": 360,
|
|
"codedWidth": 640,
|
|
"codedHeight": 368,
|
|
"bitDepth": 8
|
|
}
|
|
},
|
|
{
|
|
"id": "vp9-profile-0",
|
|
"capability": "wai.video.vp9",
|
|
"payload_raw": "identify-conformance/ext/vp9.ivf",
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "vp09.00.10.08",
|
|
"width": 32,
|
|
"height": 32,
|
|
"codedWidth": 32,
|
|
"codedHeight": 32,
|
|
"framerate": [
|
|
10,
|
|
1
|
|
],
|
|
"bitrate": 21627,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"vp09.00.10.08\"",
|
|
"width": 32,
|
|
"height": 32,
|
|
"bitrate": 21627,
|
|
"framerate": 10.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 3,
|
|
"keys": 1,
|
|
"firstKey": true,
|
|
"bytes": 743,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "vp9-profile-1-444",
|
|
"capability": "wai.video.vp9",
|
|
"payload_raw": "platform-decode-conformance/payloads/vp9-444.ivf",
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "vp09.01.10.08.03.01.01.01.00",
|
|
"width": 48,
|
|
"height": 32,
|
|
"codedWidth": 48,
|
|
"codedHeight": 32,
|
|
"framerate": [
|
|
30000,
|
|
1001
|
|
],
|
|
"bitrate": 110983,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"vp09.01.10.08.03.01.01.01.00\"",
|
|
"width": 48,
|
|
"height": 32,
|
|
"bitrate": 110983,
|
|
"framerate": 29.97002997002997
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 9,
|
|
"keys": 3,
|
|
"firstKey": true,
|
|
"bytes": 4026,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "vp9-profile-2-10-bit-bt2020-full-range",
|
|
"capability": "wai.video.vp9",
|
|
"payload_raw": "platform-decode-conformance/payloads/vp9-10bit.ivf",
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "vp09.02.10.10.01.01.01.09.01",
|
|
"width": 64,
|
|
"height": 36,
|
|
"codedWidth": 64,
|
|
"codedHeight": 36,
|
|
"framerate": [
|
|
25,
|
|
1
|
|
],
|
|
"bitrate": 57440,
|
|
"bitDepth": 10,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"vp09.02.10.10.01.01.01.09.01\"",
|
|
"width": 64,
|
|
"height": 36,
|
|
"bitrate": 57440,
|
|
"framerate": 25.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 10,
|
|
"keys": 2,
|
|
"firstKey": true,
|
|
"bytes": 2720,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "vp8",
|
|
"capability": "wai.video.vp8",
|
|
"payload_raw": "platform-decode-conformance/payloads/vp8.ivf",
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "vp8",
|
|
"width": 64,
|
|
"height": 36,
|
|
"codedWidth": 64,
|
|
"codedHeight": 36,
|
|
"framerate": [
|
|
25,
|
|
1
|
|
],
|
|
"bitrate": 73220,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"vp8\"",
|
|
"width": 64,
|
|
"height": 36,
|
|
"bitrate": 73220,
|
|
"framerate": 25.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 10,
|
|
"keys": 2,
|
|
"firstKey": true,
|
|
"bytes": 3509,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "avc-constrained-baseline",
|
|
"capability": "wai.video.avc",
|
|
"payload_raw": "identify-conformance/ext/avc.h264",
|
|
"rate": [
|
|
10,
|
|
1
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "avc1.42C00A",
|
|
"width": 32,
|
|
"height": 32,
|
|
"codedWidth": 32,
|
|
"codedHeight": 32,
|
|
"framerate": [
|
|
10,
|
|
1
|
|
],
|
|
"bitrate": 35387,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"avc1.42C00A\"",
|
|
"width": 32,
|
|
"height": 32,
|
|
"bitrate": 35387,
|
|
"framerate": 10.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 3,
|
|
"keys": 1,
|
|
"firstKey": true,
|
|
"bytes": 1327,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "avc-high-b-frames-cropped",
|
|
"capability": "wai.video.avc",
|
|
"payload_raw": "platform-decode-conformance/payloads/avc-high.h264",
|
|
"rate": [
|
|
25,
|
|
1
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "avc1.64000A",
|
|
"width": 64,
|
|
"height": 36,
|
|
"codedWidth": 64,
|
|
"codedHeight": 48,
|
|
"framerate": [
|
|
25,
|
|
1
|
|
],
|
|
"bitrate": 45920,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"avc1.64000A\"",
|
|
"width": 64,
|
|
"height": 36,
|
|
"bitrate": 45920,
|
|
"framerate": 25.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 10,
|
|
"keys": 2,
|
|
"firstKey": true,
|
|
"bytes": 2296,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "avc-platform-encoder",
|
|
"capability": "wai.video.avc",
|
|
"payload_raw": "encode-conformance/streams/platform-avc.h264",
|
|
"rate": [
|
|
30,
|
|
1
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "avc1.64000C",
|
|
"width": 256,
|
|
"height": 144,
|
|
"codedWidth": 256,
|
|
"codedHeight": 144,
|
|
"framerate": [
|
|
30,
|
|
1
|
|
],
|
|
"bitrate": 611260,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"avc1.64000C\"",
|
|
"width": 256,
|
|
"height": 144,
|
|
"bitrate": 611260,
|
|
"framerate": 30.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 12,
|
|
"keys": 3,
|
|
"firstKey": true,
|
|
"bytes": 30563,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "avc-software-encoder-128x72",
|
|
"capability": "wai.video.avc",
|
|
"payload_raw": "encode-conformance/streams/software-avc-128x72.h264",
|
|
"rate": [
|
|
30,
|
|
1
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "avc1.640C0C",
|
|
"width": 128,
|
|
"height": 72,
|
|
"codedWidth": 128,
|
|
"codedHeight": 80,
|
|
"framerate": [
|
|
30,
|
|
1
|
|
],
|
|
"bitrate": 204280,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"avc1.640C0C\"",
|
|
"width": 128,
|
|
"height": 72,
|
|
"bitrate": 204280,
|
|
"framerate": 30.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 12,
|
|
"keys": 3,
|
|
"firstKey": true,
|
|
"bytes": 10214,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "hevc-stream",
|
|
"capability": "wai.video.hevc",
|
|
"payload_raw": "identify-conformance/ext/hevc.h265",
|
|
"rate": [
|
|
10,
|
|
1
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "hev1.1.6.L30.90",
|
|
"width": 32,
|
|
"height": 32,
|
|
"codedWidth": 32,
|
|
"codedHeight": 32,
|
|
"framerate": [
|
|
10,
|
|
1
|
|
],
|
|
"bitrate": 14827,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"hev1.1.6.L30.90\"",
|
|
"width": 32,
|
|
"height": 32,
|
|
"bitrate": 14827,
|
|
"framerate": 10.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 3,
|
|
"keys": 1,
|
|
"firstKey": true,
|
|
"bytes": 556,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "hevc-platform-encoder",
|
|
"capability": "wai.video.hevc",
|
|
"payload_raw": "encode-conformance/streams/platform-hevc.h265",
|
|
"rate": [
|
|
30,
|
|
1
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "hev1.1.6.L60.B0",
|
|
"width": 256,
|
|
"height": 144,
|
|
"codedWidth": 256,
|
|
"codedHeight": 144,
|
|
"framerate": [
|
|
30,
|
|
1
|
|
],
|
|
"bitrate": 632520,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"hev1.1.6.L60.B0\"",
|
|
"width": 256,
|
|
"height": 144,
|
|
"bitrate": 632520,
|
|
"framerate": 30.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 12,
|
|
"keys": 3,
|
|
"firstKey": true,
|
|
"bytes": 31626,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "opus-mono-ogg",
|
|
"capability": "wai.audio.opus",
|
|
"payload_raw": "identify-conformance/ext/opus.ogg",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "opus",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 1,
|
|
"bitrate": 40280,
|
|
"bitDepth": null,
|
|
"description": "4f707573486561640101380180bb0000000000",
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"opus\"",
|
|
"channels": "1",
|
|
"samplerate": 48000,
|
|
"bitrate": 40280
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "opus",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 1
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 11,
|
|
"keys": 11,
|
|
"firstKey": true,
|
|
"bytes": 848,
|
|
"samples": 10560,
|
|
"descriptionBytes": 19
|
|
}
|
|
},
|
|
{
|
|
"id": "opus-stereo-ogg",
|
|
"capability": "wai.audio.opus",
|
|
"payload_raw": "platform-decode-conformance/payloads/opus-stereo.ogg",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "opus",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 2,
|
|
"bitrate": 75712,
|
|
"bitDepth": null,
|
|
"description": "4f707573486561640102380180bb0000000000",
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"opus\"",
|
|
"channels": "2",
|
|
"samplerate": 48000,
|
|
"bitrate": 75712
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "opus",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 2
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 13,
|
|
"keys": 13,
|
|
"firstKey": true,
|
|
"bytes": 2205,
|
|
"samples": 12480,
|
|
"descriptionBytes": 19
|
|
}
|
|
},
|
|
{
|
|
"id": "opus-one-packet",
|
|
"capability": "wai.audio.opus.packet",
|
|
"payload_raw": "platform-decode-conformance/payloads/opus-packet.opus",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "opus",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 2,
|
|
"bitrate": 94400,
|
|
"bitDepth": null,
|
|
"description": null,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"opus\"",
|
|
"channels": "2",
|
|
"samplerate": 48000,
|
|
"bitrate": 94400
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "opus",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 2
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 1,
|
|
"keys": 1,
|
|
"firstKey": true,
|
|
"bytes": 236,
|
|
"samples": 960,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "flac-mono-16-bit",
|
|
"capability": "wai.audio.flac",
|
|
"payload_raw": "identify-conformance/ext/a.flac",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "flac",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 1,
|
|
"bitrate": 468040,
|
|
"bitDepth": 16,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"flac\"",
|
|
"channels": "1",
|
|
"samplerate": 48000,
|
|
"bitrate": 468040
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "flac",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 1
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 10,
|
|
"keys": 10,
|
|
"firstKey": true,
|
|
"bytes": 3445,
|
|
"samples": 9600,
|
|
"descriptionBytes": 8256
|
|
}
|
|
},
|
|
{
|
|
"id": "flac-stereo-24-bit",
|
|
"capability": "wai.audio.flac",
|
|
"payload_raw": "platform-decode-conformance/payloads/flac-stereo-24.flac",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "flac",
|
|
"sampleRate": 44100,
|
|
"numberOfChannels": 2,
|
|
"bitrate": 540096,
|
|
"bitDepth": 24,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"flac\"",
|
|
"channels": "2",
|
|
"samplerate": 44100,
|
|
"bitrate": 540096
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "flac",
|
|
"sampleRate": 44100,
|
|
"numberOfChannels": 2
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 11,
|
|
"keys": 11,
|
|
"firstKey": true,
|
|
"bytes": 8622,
|
|
"samples": 11025,
|
|
"descriptionBytes": 8256
|
|
}
|
|
},
|
|
{
|
|
"id": "aac-lc-mono",
|
|
"capability": "wai.audio.aac",
|
|
"payload_raw": "identify-conformance/ext/a.aac",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "mp4a.40.2",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 1,
|
|
"bitrate": 34364,
|
|
"bitDepth": null,
|
|
"description": null,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"mp4a.40.2\"",
|
|
"channels": "1",
|
|
"samplerate": 48000,
|
|
"bitrate": 34364
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "mp4a.40.2",
|
|
"sampleRate": 48000,
|
|
"numberOfChannels": 1
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 11,
|
|
"keys": 11,
|
|
"firstKey": true,
|
|
"bytes": 1008,
|
|
"samples": 11264,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "aac-lc-stereo",
|
|
"capability": "wai.audio.aac",
|
|
"payload_raw": "platform-decode-conformance/payloads/aac-stereo.aac",
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "mp4a.40.2",
|
|
"sampleRate": 44100,
|
|
"numberOfChannels": 2,
|
|
"bitrate": 63710,
|
|
"bitDepth": null,
|
|
"description": null,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"mp4a.40.2\"",
|
|
"channels": "2",
|
|
"samplerate": 44100,
|
|
"bitrate": 63710
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "mp4a.40.2",
|
|
"sampleRate": 44100,
|
|
"numberOfChannels": 2
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 12,
|
|
"keys": 12,
|
|
"firstKey": true,
|
|
"bytes": 2219,
|
|
"samples": 12288,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "vp9-fourcc-changed",
|
|
"capability": "wai.video.vp9",
|
|
"payload_raw": "identify-conformance/ext/vp9.ivf",
|
|
"mutate": [
|
|
[
|
|
11,
|
|
1
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "IVF FourCC"
|
|
},
|
|
{
|
|
"id": "vp9-first-frame-not-key",
|
|
"capability": "wai.video.vp9",
|
|
"payload_raw": "identify-conformance/ext/vp9.ivf",
|
|
"mutate": [
|
|
[
|
|
44,
|
|
4
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "the first frame is not a key frame"
|
|
},
|
|
{
|
|
"id": "vp9-profile-bit-changed",
|
|
"capability": "wai.video.vp9",
|
|
"payload_raw": "identify-conformance/ext/vp9.ivf",
|
|
"mutate": [
|
|
[
|
|
44,
|
|
32
|
|
]
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "vp09.01.11.08.03.01.01.01.00",
|
|
"width": 249,
|
|
"height": 252,
|
|
"codedWidth": 249,
|
|
"codedHeight": 252,
|
|
"framerate": [
|
|
10,
|
|
1
|
|
],
|
|
"bitrate": 21627,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"vp09.01.11.08.03.01.01.01.00\"",
|
|
"width": 249,
|
|
"height": 252,
|
|
"bitrate": 21627,
|
|
"framerate": 10.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 3,
|
|
"keys": 1,
|
|
"firstKey": true,
|
|
"bytes": 743,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "vp8-version-past-3",
|
|
"capability": "wai.video.vp8",
|
|
"payload_raw": "platform-decode-conformance/payloads/vp8.ivf",
|
|
"mutate": [
|
|
[
|
|
44,
|
|
8
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "a VP8 version past 3"
|
|
},
|
|
{
|
|
"id": "avc-level-byte-changed",
|
|
"capability": "wai.video.avc",
|
|
"payload_raw": "identify-conformance/ext/avc.h264",
|
|
"rate": [
|
|
10,
|
|
1
|
|
],
|
|
"mutate": [
|
|
[
|
|
7,
|
|
1
|
|
]
|
|
],
|
|
"expect": {
|
|
"media": "video",
|
|
"codec": "avc1.42C00B",
|
|
"width": 32,
|
|
"height": 32,
|
|
"codedWidth": 32,
|
|
"codedHeight": 32,
|
|
"framerate": [
|
|
10,
|
|
1
|
|
],
|
|
"bitrate": 35387,
|
|
"bitDepth": 8,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"video": {
|
|
"contentType": "video/mp4; codecs=\"avc1.42C00B\"",
|
|
"width": 32,
|
|
"height": 32,
|
|
"bitrate": 35387,
|
|
"framerate": 10.0
|
|
}
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 3,
|
|
"keys": 1,
|
|
"firstKey": true,
|
|
"bytes": 1327,
|
|
"samples": null,
|
|
"descriptionBytes": null
|
|
}
|
|
},
|
|
{
|
|
"id": "opus-ogg-page-byte-changed",
|
|
"capability": "wai.audio.opus",
|
|
"payload_raw": "identify-conformance/ext/opus.ogg",
|
|
"mutate": [
|
|
[
|
|
30,
|
|
1
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "an Ogg CRC"
|
|
},
|
|
{
|
|
"id": "flac-frame-byte-changed",
|
|
"capability": "wai.audio.flac",
|
|
"payload_raw": "identify-conformance/ext/a.flac",
|
|
"mutate": [
|
|
[
|
|
9000,
|
|
1
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "a frame whose CRC-16 never matches"
|
|
},
|
|
{
|
|
"id": "flac-streaminfo-rate-changed",
|
|
"capability": "wai.audio.flac",
|
|
"payload_raw": "identify-conformance/ext/a.flac",
|
|
"mutate": [
|
|
[
|
|
19,
|
|
16
|
|
]
|
|
],
|
|
"expect": {
|
|
"media": "audio",
|
|
"codec": "flac",
|
|
"sampleRate": 47744,
|
|
"numberOfChannels": 1,
|
|
"bitrate": 465544,
|
|
"bitDepth": 16,
|
|
"decodingConfiguration": {
|
|
"type": "media-source",
|
|
"audio": {
|
|
"contentType": "audio/mp4; codecs=\"flac\"",
|
|
"channels": "1",
|
|
"samplerate": 47744,
|
|
"bitrate": 465544
|
|
}
|
|
},
|
|
"decoderConfig": {
|
|
"codec": "flac",
|
|
"sampleRate": 47744,
|
|
"numberOfChannels": 1
|
|
}
|
|
},
|
|
"chunks": {
|
|
"chunks": 10,
|
|
"keys": 10,
|
|
"firstKey": true,
|
|
"bytes": 3445,
|
|
"samples": 9600,
|
|
"descriptionBytes": 8256
|
|
}
|
|
},
|
|
{
|
|
"id": "aac-channel-configuration-0",
|
|
"capability": "wai.audio.aac",
|
|
"payload_raw": "identify-conformance/ext/a.aac",
|
|
"mutate": [
|
|
[
|
|
3,
|
|
64
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "an ADTS configuration"
|
|
},
|
|
{
|
|
"id": "aac-first-frame-another-rate",
|
|
"capability": "wai.audio.aac",
|
|
"payload_raw": "identify-conformance/ext/a.aac",
|
|
"mutate": [
|
|
[
|
|
2,
|
|
4
|
|
]
|
|
],
|
|
"refused": true,
|
|
"why": "another configuration"
|
|
}
|
|
]
|
|
}
|