summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/webcodecs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /testing/web-platform/meta/webcodecs
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'testing/web-platform/meta/webcodecs')
-rw-r--r--testing/web-platform/meta/webcodecs/__dir__.ini4
-rw-r--r--testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini11
-rw-r--r--testing/web-platform/meta/webcodecs/audio-data.any.js.ini50
-rw-r--r--testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini17
-rw-r--r--testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini158
-rw-r--r--testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini272
-rw-r--r--testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini12
-rw-r--r--testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini378
-rw-r--r--testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini8
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini10
-rw-r--r--testing/web-platform/meta/webcodecs/encodedVideoChunk-serialization.crossAgentCluster.https.html.ini35
-rw-r--r--testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini258
-rw-r--r--testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini567
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder-disconnect-readable-stream-crash.https.html.ini3
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini50
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini18
-rw-r--r--testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini252
-rw-r--r--testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini25
-rw-r--r--testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini53
-rw-r--r--testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini28
-rw-r--r--testing/web-platform/meta/webcodecs/transfering.https.any.js.ini45
-rw-r--r--testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini28
-rw-r--r--testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini80
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini34
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder-content-hint.https.any.js.ini12
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder-flush.https.any.js.ini8
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder-h264.https.any.js.ini47
-rw-r--r--testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini72
-rw-r--r--testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini9
-rw-r--r--testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini982
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini5
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini7
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini10
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini11
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini11
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini4
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini10
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini11
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini5
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini8
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini26
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-odd-size.any.js.ini14
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini7
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-serialization.https.html.ini5
-rw-r--r--testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini5
51 files changed, 3737 insertions, 0 deletions
diff --git a/testing/web-platform/meta/webcodecs/__dir__.ini b/testing/web-platform/meta/webcodecs/__dir__.ini
new file mode 100644
index 0000000000..86f65cab18
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/__dir__.ini
@@ -0,0 +1,4 @@
+prefs: [dom.media.webcodecs.enabled:true, media.ffmpeg.encoder.enabled:true]
+disabled:
+ if (os == "linux") and (bits == 32): Not implemented
+lsan-allowed: [PLDHashTable::MakeEntryHandle, mozilla::RemoteDecoderManagerChild::OpenRemoteDecoderManagerChildForProcess, mozilla::ipc::MessageChannel::MessageChannel, mozilla::layers::GPUVideoImage::GPUVideoImage]
diff --git a/testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini b/testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini
new file mode 100644
index 0000000000..0a6ded7761
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-data-serialization.any.js.ini
@@ -0,0 +1,11 @@
+[audio-data-serialization.any.html]
+ expected:
+ if asan and not fission: [OK, CRASH]
+ [Verify closing AudioData does not propagate accross contexts.]
+ expected: FAIL
+
+ [Verify posting closed AudioData throws.]
+ expected: FAIL
+
+ [Verify transferring audio data closes them.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-data.any.js.ini b/testing/web-platform/meta/webcodecs/audio-data.any.js.ini
new file mode 100644
index 0000000000..eaf456f87f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-data.any.js.ini
@@ -0,0 +1,50 @@
+[audio-data.any.html]
+ [Verify AudioData constructors]
+ expected: FAIL
+
+ [Verify closing and cloning AudioData]
+ expected: FAIL
+
+ [Test we can construct AudioData with a negative timestamp.]
+ expected: FAIL
+
+ [Test conversion of uint8 data to float32]
+ expected: FAIL
+
+ [Test conversion of int16 data to float32]
+ expected: FAIL
+
+ [Test conversion of int32 data to float32]
+ expected: FAIL
+
+ [Test conversion of float32 data to float32]
+ expected: FAIL
+
+ [Test copying out planar and interleaved data]
+ expected: FAIL
+
+
+[audio-data.any.worker.html]
+ [Verify AudioData constructors]
+ expected: FAIL
+
+ [Verify closing and cloning AudioData]
+ expected: FAIL
+
+ [Test we can construct AudioData with a negative timestamp.]
+ expected: FAIL
+
+ [Test conversion of uint8 data to float32]
+ expected: FAIL
+
+ [Test conversion of int16 data to float32]
+ expected: FAIL
+
+ [Test conversion of int32 data to float32]
+ expected: FAIL
+
+ [Test conversion of float32 data to float32]
+ expected: FAIL
+
+ [Test copying out planar and interleaved data]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..0bbab6520c
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-data.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,9 @@
+[audio-data.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and not swgl and debug: [OK, TIMEOUT]
+ if (os == "android") and swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..c56634fade
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-decoder.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,17 @@
+[audio-decoder.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ if (os == "android") and debug and swgl: [OK, TIMEOUT]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
+
+
+[audio-decoder.crossOriginIsolated.https.any.worker.html]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini
new file mode 100644
index 0000000000..2a92388277
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-decoder.https.any.js.ini
@@ -0,0 +1,158 @@
+[audio-decoder.https.any.html]
+ [Test AudioDecoder construction]
+ expected: FAIL
+
+ [Verify unconfigured AudioDecoder operations]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Codec with MIME type]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Codec with MIME type]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+
+[audio-decoder.https.any.worker.html]
+ [Test AudioDecoder construction]
+ expected: FAIL
+
+ [Verify unconfigured AudioDecoder operations]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Codec with MIME type]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioDecoder.isConfigSupported() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Video codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Ambiguous codec]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Codec with MIME type]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioDecoder.configure() doesn't support config: Possible future aac codec string]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini
new file mode 100644
index 0000000000..1a2d52b49b
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-encoder-codec-specific.https.any.js.ini
@@ -0,0 +1,9 @@
+[audio-encoder-codec-specific.https.any.html]
+ [Test the Opus DTX flag works.]
+ expected: FAIL
+
+ [Test the Opus bitrateMode flag works.]
+ expected: FAIL
+
+ [Test the AAC bitrateMode flag works.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini
new file mode 100644
index 0000000000..fc398842c0
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-encoder-config.https.any.js.ini
@@ -0,0 +1,272 @@
+[audio-encoder-config.https.any.html]
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Bit rate too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus complexity too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus packetlossperc too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus frame duration too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus frame duration too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Invalid Opus frameDuration]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Bit rate too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus complexity too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus packetlossperc too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus frame duration too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus frame duration too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Invalid Opus frameDuration]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Bitrate is too low]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Sample rate is too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Sample rate is too large]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Way too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Bitrate is too low]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Sample rate is too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Sample rate is too large]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Way too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":8000,"numberOfChannels":1}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"complexity":5,"frameDuration":20000,"packetlossperc":10,"useinbandfec":true}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"format":"opus","complexity":10,"frameDuration":60000,"packetlossperc":20,"usedtx":true,"bogus":456}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bitrateMode":"constant","bogus":123}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bitrateMode":"variable","bogus":123}]
+ expected: FAIL
+
+
+[audio-encoder-config.https.any.worker.html]
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Bit rate too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus complexity too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus packetlossperc too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus frame duration too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Opus frame duration too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() rejects invalid config: Invalid Opus frameDuration]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Missing codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Empty codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Missing sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Missing numberOfChannels]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Zero sampleRate]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Zero channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Bit rate too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus complexity too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus packetlossperc too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus frame duration too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Opus frame duration too big]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() rejects invalid config: Invalid Opus frameDuration]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Bitrate is too low]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Sample rate is too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Sample rate is too large]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Way too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioEncoder.isConfigSupported() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Bitrate is too low]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Unrecognized codec]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Sample rate is too small]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Sample rate is too large]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Way too many channels]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Possible future opus codec string]
+ expected: FAIL
+
+ [Test that AudioEncoder.configure() doesn't support config: Possible future aac codec string]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":8000,"numberOfChannels":1}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"complexity":5,"frameDuration":20000,"packetlossperc":10,"useinbandfec":true}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{"format":"opus","complexity":10,"frameDuration":60000,"packetlossperc":20,"usedtx":true,"bogus":456}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"opus":{}}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bitrateMode":"constant","bogus":123}]
+ expected: FAIL
+
+ [AudioEncoder.isConfigSupported() supports: {"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bitrateMode":"variable","bogus":123}]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini
new file mode 100644
index 0000000000..850fd8cdce
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audio-encoder.https.any.js.ini
@@ -0,0 +1,12 @@
+[audio-encoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Simple audio encoding]
+ expected: FAIL
+
+ [Encode audio with negative timestamp]
+ expected: FAIL
+
+ [Test reset during flush]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini
new file mode 100644
index 0000000000..ca61aaf9c0
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/audioDecoder-codec-specific.https.any.js.ini
@@ -0,0 +1,378 @@
+[audioDecoder-codec-specific.https.any.html?adts_aac]
+ expected: ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw]
+ expected: ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?mp3]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?adts_aac]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?mp4_aac]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?opus]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?mp3]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?mp4_aac]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?opus]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?pcm_mulaw]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.worker.html?pcm_alaw]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
+
+
+[audioDecoder-codec-specific.https.any.html?pcm_alaw]
+ expected:
+ if (os == "android") and fission: [ERROR, TIMEOUT]
+ ERROR
+ [Test isConfigSupported()]
+ expected: NOTRUN
+
+ [Test that AudioDecoder.isConfigSupported() returns a parsed configuration]
+ expected: NOTRUN
+
+ [Test configure()]
+ expected: NOTRUN
+
+ [Verify closed AudioDecoder operations]
+ expected: NOTRUN
+
+ [Test decoding]
+ expected: NOTRUN
+
+ [Test decoding a with negative timestamp]
+ expected: NOTRUN
+
+ [Test decoding after flush]
+ expected: NOTRUN
+
+ [Test reset during flush]
+ expected: NOTRUN
+
+ [AudioDecoder decodeQueueSize test]
+ expected: NOTRUN
diff --git a/testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini b/testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini
new file mode 100644
index 0000000000..9508b33865
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/chunk-serialization.any.js.ini
@@ -0,0 +1,8 @@
+prefs: [dom.media.webcodecs.enabled:true]
+[chunk-serialization.any.html]
+ [Verify EncodedAudioChunk is serializable.]
+ expected: FAIL
+
+ [Verify EncodedVideoChunk is serializable.]
+ expected:
+ if (os == "android") and not debug: [PASS, FAIL]
diff --git a/testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini
new file mode 100644
index 0000000000..4e9157cdb5
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.any.js.ini
@@ -0,0 +1,18 @@
+[encoded-audio-chunk.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test we can construct an EncodedAudioChunk.]
+ expected: FAIL
+
+ [Test copyTo() exception if destination invalid]
+ expected: FAIL
+
+
+[encoded-audio-chunk.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test we can construct an EncodedAudioChunk.]
+ expected: FAIL
+
+ [Test copyTo() exception if destination invalid]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..8251d8f3b0
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,18 @@
+[encoded-audio-chunk.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
+
+
+[encoded-audio-chunk.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test construction and copyTo() using a SharedArrayBuffer]
+ expected: FAIL
+
+ [Test construction and copyTo() using a Uint8Array(SharedArrayBuffer)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini
new file mode 100644
index 0000000000..10676170d4
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-video-chunk.any.js.ini
@@ -0,0 +1,9 @@
+prefs: [dom.media.webcodecs.enabled:true]
+
+[encoded-video-chunk.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+[encoded-video-chunk.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..d071dca156
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,10 @@
+prefs: [dom.media.webcodecs.enabled:true]
+
+[encoded-video-chunk.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+
+
+[encoded-video-chunk.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/encodedVideoChunk-serialization.crossAgentCluster.https.html.ini b/testing/web-platform/meta/webcodecs/encodedVideoChunk-serialization.crossAgentCluster.https.html.ini
new file mode 100644
index 0000000000..4a35065661
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/encodedVideoChunk-serialization.crossAgentCluster.https.html.ini
@@ -0,0 +1,35 @@
+[encodedVideoChunk-serialization.crossAgentCluster.https.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and not debug: [OK, ERROR]
+ [Verify chunks is unavailable in sharedworker]
+ expected:
+ if (os == "android") and not debug: [PASS, NOTRUN]
+
+ [Verify chunks cannot be passed to sharedworker]
+ expected:
+ if (os == "android") and not debug: [PASS, FAIL]
+
+ [Verify chunks cannot be passed to serviceworker]
+ expected:
+ if (os == "android") and not debug: [PASS, TIMEOUT]
+
+ [Verify chunks is unavailable in serviceworker]
+ expected:
+ if (os == "android") and not debug: [PASS, NOTRUN]
+
+ [Verify chunks can be passed back and forth between main and worker]
+ expected:
+ if (os == "android") and not debug: [PASS, FAIL]
+
+ [Verify chunks can be passed back and forth between main and data-url worker]
+ expected:
+ if (os == "android") and not debug: [PASS, FAIL]
+
+ [Verify chunks can be passed within the same agent clusters]
+ expected:
+ if (os == "android") and not debug: [PASS, FAIL]
+
+ [Verify chunks cannot be passed accross the different agent clusters]
+ expected:
+ if (os == "android") and not debug: [PASS, FAIL]
diff --git a/testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini b/testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini
new file mode 100644
index 0000000000..8247d5fe96
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/full-cycle-test.https.any.js.ini
@@ -0,0 +1,258 @@
+[full-cycle-test.https.any.html?vp9_p2]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL]
+
+
+[full-cycle-test.https.any.html?vp9_p0]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL]
+
+
+[full-cycle-test.https.any.html?vp8]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL]
+
+
+[full-cycle-test.https.any.html?h264_avc]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[full-cycle-test.https.any.html?av1]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL, TIMEOUT]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL, TIMEOUT, NOTRUN]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL, TIMEOUT, NOTRUN]
+
+
+[full-cycle-test.https.any.worker.html?av1]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL, TIMEOUT]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL, TIMEOUT, NOTRUN]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL, TIMEOUT, NOTRUN]
+
+
+[full-cycle-test.https.any.worker.html?vp8]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL]
+
+
+[full-cycle-test.https.any.html?h264_annexb]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[full-cycle-test.https.any.worker.html?vp9_p0]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL]
+
+
+[full-cycle-test.https.any.worker.html?h264_avc]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[full-cycle-test.https.any.worker.html?h264_annexb]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[full-cycle-test.https.any.worker.html?vp9_p2]
+ disabled:
+ if (os != "linux") or (bits == 32): not implemented
+ [Encoding and decoding cycle]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: [PASS, FAIL]
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: [PASS, FAIL]
+
+
+[full-cycle-test.https.any.worker.html?h265_hevc]
+ [Encoding and decoding cycle]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.html?h265_hevc]
+ [Encoding and decoding cycle]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.html?h265_annexb]
+ [Encoding and decoding cycle]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.worker.html?h265_annexb]
+ [Encoding and decoding cycle]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.worker.html?vp9_444_p3]
+ expected:
+ if os == "win": CRASH
+ [Encoding and decoding cycle]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.html?vp9_444_p1]
+ expected:
+ if os == "win": CRASH
+ if os == "android": OK
+ ERROR
+ [Encoding and decoding cycle]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ FAIL
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ FAIL
+
+
+[full-cycle-test.https.any.worker.html?vp9_444_p1]
+ expected:
+ if os == "win": CRASH
+ if os == "android": OK
+ ERROR
+ [Encoding and decoding cycle]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ FAIL
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ FAIL
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ FAIL
+
+
+[full-cycle-test.https.any.html?vp9_444_p3]
+ expected:
+ if os == "win": CRASH
+ [Encoding and decoding cycle]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.html?av1_444_high]
+ [Encoding and decoding cycle]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: PRECONDITION_FAILED
+
+
+[full-cycle-test.https.any.worker.html?av1_444_high]
+ [Encoding and decoding cycle]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle with realtime latency mode]
+ expected: PRECONDITION_FAILED
+
+ [Encoding and decoding cycle w/ stripped color space]
+ expected: PRECONDITION_FAILED
diff --git a/testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini b/testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini
new file mode 100644
index 0000000000..ed25cef256
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/idlharness.https.any.js.ini
@@ -0,0 +1,567 @@
+prefs: [dom.media.webcodecs.enabled:true]
+[idlharness.https.any.html]
+ [AudioDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioDecoder interface object length]
+ expected: FAIL
+
+ [AudioDecoder interface object name]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute state]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute decodeQueueSize]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioDecoder interface: operation configure(AudioDecoderConfig)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation decode(EncodedAudioChunk)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation close()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation isConfigSupported(AudioDecoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioEncoder interface object length]
+ expected: FAIL
+
+ [AudioEncoder interface object name]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute state]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute encodeQueueSize]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioEncoder interface: operation configure(AudioEncoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation encode(AudioData)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation close()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation isConfigSupported(AudioEncoderConfig)]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object length]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object name]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute type]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute timestamp]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute duration]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute byteLength]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioData interface object length]
+ expected: FAIL
+
+ [AudioData interface object name]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioData interface: attribute format]
+ expected: FAIL
+
+ [AudioData interface: attribute sampleRate]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfFrames]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfChannels]
+ expected: FAIL
+
+ [AudioData interface: attribute duration]
+ expected: FAIL
+
+ [AudioData interface: attribute timestamp]
+ expected: FAIL
+
+ [AudioData interface: operation allocationSize(AudioDataCopyToOptions)]
+ expected: FAIL
+
+ [AudioData interface: operation clone()]
+ expected: FAIL
+
+ [AudioData interface: operation close()]
+ expected: FAIL
+
+ [VideoFrame interface: operation metadata()]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageDecoder interface object length]
+ expected: FAIL
+
+ [ImageDecoder interface object name]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute type]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute complete]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute completed]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute tracks]
+ expected: FAIL
+
+ [ImageDecoder interface: operation decode(optional ImageDecodeOptions)]
+ expected: FAIL
+
+ [ImageDecoder interface: operation reset()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation close()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation isTypeSupported(DOMString)]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrackList interface object length]
+ expected: FAIL
+
+ [ImageTrackList interface object name]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute ready]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute length]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedIndex]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedTrack]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrack interface object length]
+ expected: FAIL
+
+ [ImageTrack interface object name]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrack interface: attribute animated]
+ expected: FAIL
+
+ [ImageTrack interface: attribute frameCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute repetitionCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute selected]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: operation copyTo(AllowSharedBufferSource)]
+ expected: FAIL
+
+ [AudioData interface: operation copyTo(AllowSharedBufferSource, AudioDataCopyToOptions)]
+ expected: FAIL
+
+
+[idlharness.https.any.worker.html]
+ [AudioDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioDecoder interface object length]
+ expected: FAIL
+
+ [AudioDecoder interface object name]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute state]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute decodeQueueSize]
+ expected: FAIL
+
+ [AudioDecoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioDecoder interface: operation configure(AudioDecoderConfig)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation decode(EncodedAudioChunk)]
+ expected: FAIL
+
+ [AudioDecoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation close()]
+ expected: FAIL
+
+ [AudioDecoder interface: operation isConfigSupported(AudioDecoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioEncoder interface object length]
+ expected: FAIL
+
+ [AudioEncoder interface object name]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioEncoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute state]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute encodeQueueSize]
+ expected: FAIL
+
+ [AudioEncoder interface: attribute ondequeue]
+ expected: FAIL
+
+ [AudioEncoder interface: operation configure(AudioEncoderConfig)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation encode(AudioData)]
+ expected: FAIL
+
+ [AudioEncoder interface: operation flush()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation reset()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation close()]
+ expected: FAIL
+
+ [AudioEncoder interface: operation isConfigSupported(AudioEncoderConfig)]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object length]
+ expected: FAIL
+
+ [EncodedAudioChunk interface object name]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute type]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute timestamp]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute duration]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: attribute byteLength]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface object]
+ expected: FAIL
+
+ [AudioData interface object length]
+ expected: FAIL
+
+ [AudioData interface object name]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [AudioData interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [AudioData interface: attribute format]
+ expected: FAIL
+
+ [AudioData interface: attribute sampleRate]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfFrames]
+ expected: FAIL
+
+ [AudioData interface: attribute numberOfChannels]
+ expected: FAIL
+
+ [AudioData interface: attribute duration]
+ expected: FAIL
+
+ [AudioData interface: attribute timestamp]
+ expected: FAIL
+
+ [AudioData interface: operation allocationSize(AudioDataCopyToOptions)]
+ expected: FAIL
+
+ [AudioData interface: operation clone()]
+ expected: FAIL
+
+ [AudioData interface: operation close()]
+ expected: FAIL
+
+ [VideoFrame interface: operation metadata()]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageDecoder interface object length]
+ expected: FAIL
+
+ [ImageDecoder interface object name]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageDecoder interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute type]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute complete]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute completed]
+ expected: FAIL
+
+ [ImageDecoder interface: attribute tracks]
+ expected: FAIL
+
+ [ImageDecoder interface: operation decode(optional ImageDecodeOptions)]
+ expected: FAIL
+
+ [ImageDecoder interface: operation reset()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation close()]
+ expected: FAIL
+
+ [ImageDecoder interface: operation isTypeSupported(DOMString)]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrackList interface object length]
+ expected: FAIL
+
+ [ImageTrackList interface object name]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrackList interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute ready]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute length]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedIndex]
+ expected: FAIL
+
+ [ImageTrackList interface: attribute selectedTrack]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface object]
+ expected: FAIL
+
+ [ImageTrack interface object length]
+ expected: FAIL
+
+ [ImageTrack interface object name]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's "constructor" property]
+ expected: FAIL
+
+ [ImageTrack interface: existence and properties of interface prototype object's @@unscopables property]
+ expected: FAIL
+
+ [ImageTrack interface: attribute animated]
+ expected: FAIL
+
+ [ImageTrack interface: attribute frameCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute repetitionCount]
+ expected: FAIL
+
+ [ImageTrack interface: attribute selected]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [idl_test setup]
+ expected: FAIL
+
+ [EncodedAudioChunk interface: operation copyTo(AllowSharedBufferSource)]
+ expected: FAIL
+
+ [AudioData interface: operation copyTo(AllowSharedBufferSource, AudioDataCopyToOptions)]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/image-decoder-disconnect-readable-stream-crash.https.html.ini b/testing/web-platform/meta/webcodecs/image-decoder-disconnect-readable-stream-crash.https.html.ini
new file mode 100644
index 0000000000..2dd82c0a53
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder-disconnect-readable-stream-crash.https.html.ini
@@ -0,0 +1,3 @@
+[image-decoder-disconnect-readable-stream-crash.https.html]
+ expected:
+ if (os == "win") and not debug and (processor == "x86_64"): [PASS, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini b/testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini
new file mode 100644
index 0000000000..06504a120f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder-image-orientation-none.https.html.ini
@@ -0,0 +1,50 @@
+[image-decoder-image-orientation-none.https.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test JPEG w/ EXIF orientation top-left on canvas w/o orientation]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-left on canvas w/o orientation]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-top on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..82663b9d98
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,18 @@
+[image-decoder.crossOriginIsolated.https.any.html]
+ expected:
+ if (os == "android") and swgl: TIMEOUT
+ [Test ImageDecoder decoding with a SharedArrayBuffer source]
+ expected: FAIL
+
+ [Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source]
+ expected: FAIL
+
+
+[image-decoder.crossOriginIsolated.https.any.worker.html]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ [Test ImageDecoder decoding with a SharedArrayBuffer source]
+ expected: FAIL
+
+ [Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini
new file mode 100644
index 0000000000..a391295c89
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/image-decoder.https.any.js.ini
@@ -0,0 +1,252 @@
+[image-decoder.https.any.worker.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test JPEG image decoding.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
+
+ [Test PNG image decoding.]
+ expected: FAIL
+
+ [Test AVIF image decoding.]
+ expected: FAIL
+
+ [Test high bit depth HDR AVIF image decoding.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=false.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=true.]
+ expected: FAIL
+
+ [Test WEBP image decoding.]
+ expected: FAIL
+
+ [Test GIF image decoding.]
+ expected: FAIL
+
+ [Test JPEG image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:2 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:4:4 decoding.]
+ expected: FAIL
+
+ [Test WEBP image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test invalid mime type rejects decode() requests]
+ expected: FAIL
+
+ [Test invalid mime type rejects decodeMetadata() requests]
+ expected: FAIL
+
+ [Test out of range index returns RangeError]
+ expected: FAIL
+
+ [Test partial decoding without a frame results in an error]
+ expected: FAIL
+
+ [Test completed property on fully buffered decode]
+ expected: FAIL
+
+ [Test decode, decodeMetadata after no track selected.]
+ expected: FAIL
+
+ [Test track selection in multi track image.]
+ expected: FAIL
+
+ [Test ReadableStream of gif]
+ expected: FAIL
+
+ [Test that decode requests are serialized.]
+ expected: FAIL
+
+ [Test ReadableStream aborts promises on track change]
+ expected: FAIL
+
+ [Test ReadableStream aborts completed on close]
+ expected: FAIL
+
+ [Test ReadableStream resolves completed]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
+
+
+[image-decoder.https.any.html]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [Test JPEG image decoding.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
+
+ [Test PNG image decoding.]
+ expected: FAIL
+
+ [Test AVIF image decoding.]
+ expected: FAIL
+
+ [Test high bit depth HDR AVIF image decoding.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=false.]
+ expected: FAIL
+
+ [Test multi-track AVIF image decoding w/ preferAnimation=true.]
+ expected: FAIL
+
+ [Test WEBP image decoding.]
+ expected: FAIL
+
+ [Test GIF image decoding.]
+ expected: FAIL
+
+ [Test JPEG image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:2:2 decoding.]
+ expected: FAIL
+
+ [Test AVIF image YUV 4:4:4 decoding.]
+ expected: FAIL
+
+ [Test WEBP image YUV 4:2:0 decoding.]
+ expected: FAIL
+
+ [Test invalid mime type rejects decode() requests]
+ expected: FAIL
+
+ [Test invalid mime type rejects decodeMetadata() requests]
+ expected: FAIL
+
+ [Test out of range index returns RangeError]
+ expected: FAIL
+
+ [Test partial decoding without a frame results in an error]
+ expected: FAIL
+
+ [Test completed property on fully buffered decode]
+ expected: FAIL
+
+ [Test decode, decodeMetadata after no track selected.]
+ expected: FAIL
+
+ [Test track selection in multi track image.]
+ expected: FAIL
+
+ [Test ReadableStream of gif]
+ expected: FAIL
+
+ [Test that decode requests are serialized.]
+ expected: FAIL
+
+ [Test ReadableStream aborts promises on track change]
+ expected: FAIL
+
+ [Test ReadableStream aborts completed on close]
+ expected: FAIL
+
+ [Test ReadableStream resolves completed]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation top-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-right.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation bottom-left.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-top.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation right-bottom.]
+ expected: FAIL
+
+ [Test 4:2:0 JPEG w/ EXIF orientation left-bottom.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini b/testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini
new file mode 100644
index 0000000000..5e79c56605
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/per-frame-qp-encoding.https.any.js.ini
@@ -0,0 +1,25 @@
+[per-frame-qp-encoding.https.any.worker.html?vp9_p2]
+ disabled:
+ true
+
+[per-frame-qp-encoding.https.any.html?vp9_p2]
+ disabled:
+ true
+
+[per-frame-qp-encoding.https.any.worker.html?vp9_p0]
+ disabled:
+ true
+
+[per-frame-qp-encoding.https.any.html?av1]
+ disabled:
+ true
+
+[per-frame-qp-encoding.https.any.worker.html?av1]
+ disabled:
+ true
+
+[per-frame-qp-encoding.https.any.html?vp9_p0]
+ disabled:
+ true
+
+
diff --git a/testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini
new file mode 100644
index 0000000000..3db51b9f4f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/reconfiguring-encoder.https.any.js.ini
@@ -0,0 +1,53 @@
+[reconfiguring-encoder.https.any.worker.html?h264_avc]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[reconfiguring-encoder.https.any.html?av1]
+ disabled:
+ if os != "linux": not implemented
+
+[reconfiguring-encoder.https.any.html?vp9_p0]
+ disabled:
+ if os != "linux": not implemented
+
+[reconfiguring-encoder.https.any.worker.html?vp9_p2]
+ disabled:
+ if os != "linux": not implemented
+
+[reconfiguring-encoder.https.any.worker.html?vp9_p0]
+ disabled:
+ if os != "linux": not implemented
+
+[reconfiguring-encoder.https.any.html?h264_annexb]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[reconfiguring-encoder.https.any.worker.html?h264_annexb]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[reconfiguring-encoder.https.any.html?vp9_p2]
+ disabled:
+ if os != "linux": not implemented
+
+[reconfiguring-encoder.https.any.worker.html?av1]
+ disabled:
+ if os != "linux": not implemented
+ expected:
+ if asan and not fission: [OK, TIMEOUT]
+ [Reconfiguring encoder]
+ expected:
+ if asan and not fission: [PASS, TIMEOUT]
+
+
+[reconfiguring-encoder.https.any.worker.html?vp8]
+ disabled:
+ if os != "linux": not implemented
+
+[reconfiguring-encoder.https.any.html?h264_avc]
+ disabled:
+ if (os != "linux") or (version == "Ubuntu 18.04"): not implemented
+
+[reconfiguring-encoder.https.any.html?vp8]
+ disabled:
+ if os != "linux": not implemented
diff --git a/testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini b/testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini
new file mode 100644
index 0000000000..59a7198d13
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/temporal-svc-encoding.https.any.js.ini
@@ -0,0 +1,28 @@
+[temporal-svc-encoding.https.any.worker.html?av1]
+ disabled: not implemented
+
+[temporal-svc-encoding.https.any.worker.html?vp9]
+ disabled:
+ if (os != "linux"): not implemented
+
+[temporal-svc-encoding.https.any.worker.html?vp8]
+ disabled:
+ if (os != "linux"): not implemented
+
+[temporal-svc-encoding.https.any.worker.html?h264]
+ disabled: not implemented
+
+[temporal-svc-encoding.https.any.html?av1]
+ disabled: not implemented
+
+[temporal-svc-encoding.https.any.html?vp8]
+ disabled:
+ if (os != "linux"): not implemented
+
+[temporal-svc-encoding.https.any.html?h264]
+ disabled: not implemented
+
+[temporal-svc-encoding.https.any.html?vp9]
+ disabled:
+ if (os != "linux"): not implemented
+
diff --git a/testing/web-platform/meta/webcodecs/transfering.https.any.js.ini b/testing/web-platform/meta/webcodecs/transfering.https.any.js.ini
new file mode 100644
index 0000000000..5ff19ca29e
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/transfering.https.any.js.ini
@@ -0,0 +1,45 @@
+prefs: [dom.media.webcodecs.enabled:true]
+[transfering.https.any.html]
+ [Test transfering ArrayBuffer to VideoFrame]
+ expected: FAIL
+
+ [Test transfering view of an ArrayBuffer to VideoFrame]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to EncodedAudioChunk]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to EncodedVideoChunk]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to AudioData]
+ expected: FAIL
+
+ [Encoding from AudioData with transferred buffer]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to ImageDecoder.]
+ expected: FAIL
+
+
+[transfering.https.any.worker.html]
+ [Test transfering ArrayBuffer to VideoFrame]
+ expected: FAIL
+
+ [Test transfering view of an ArrayBuffer to VideoFrame]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to EncodedAudioChunk]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to EncodedVideoChunk]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to AudioData]
+ expected: FAIL
+
+ [Encoding from AudioData with transferred buffer]
+ expected: FAIL
+
+ [Test transfering ArrayBuffer to ImageDecoder.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..6bcc300c3b
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-decoder.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,28 @@
+[video-decoder.crossOriginIsolated.https.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug: [OK, TIMEOUT]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected:
+ if os == "mac": PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected:
+ if os == "mac": PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
+
+
+[video-decoder.crossOriginIsolated.https.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and not swgl: [OK, TIMEOUT]
+ [Test isConfigSupported() and configure() using a SharedArrayBuffer]
+ expected:
+ if os == "mac": PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer)]
+ expected:
+ if os == "mac": PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
diff --git a/testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini
new file mode 100644
index 0000000000..c148cf7d60
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-decoder.https.any.js.ini
@@ -0,0 +1,80 @@
+[video-decoder.https.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected: [OK, TIMEOUT]
+
+ [Test that VideoDecoder.configure() doesn't support config: Unrecognized codec]
+ expected: [PASS, TIMEOUT]
+
+ [Test that VideoDecoder.configure() doesn't support config: Unrecognized codec with dataview description]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Audio codec]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Ambiguous codec]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Codec with bad casing]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Codec with MIME type]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future H264 codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future HEVC codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future VP9 codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future AV1 codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test VideoDecoder construction]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.isConfigSupported() accepts config:valid codec with spaces]
+ expected: [PASS, NOTRUN]
+
+
+[video-decoder.https.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected: [OK, TIMEOUT]
+
+ [Test that VideoDecoder.configure() doesn't support config: Unrecognized codec]
+ expected: [PASS, TIMEOUT]
+
+ [Test that VideoDecoder.configure() doesn't support config: Unrecognized codec with dataview description]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Audio codec]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Ambiguous codec]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Codec with bad casing]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Codec with MIME type]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future H264 codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future HEVC codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future VP9 codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.configure() doesn't support config: Possible future AV1 codec string]
+ expected: [PASS, NOTRUN]
+
+ [Test VideoDecoder construction]
+ expected: [PASS, NOTRUN]
+
+ [Test that VideoDecoder.isConfigSupported() accepts config:valid codec with spaces]
+ expected: [PASS, NOTRUN]
diff --git a/testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini
new file mode 100644
index 0000000000..1c96987ac1
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder-config.https.any.js.ini
@@ -0,0 +1,34 @@
+[video-encoder-config.https.any.html]
+ [VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}]
+ expected:
+ if (os == "linux") and (version == "Ubuntu 18.04"): PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality","avc":{"format":"annexb"}}]
+ expected:
+ if os == "mac": PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
+ if os == "win": PRECONDITION_FAILED
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp09.00.10.08","hardwareAcceleration":"no-preference","width":1280,"height":720,"bitrate":7000000,"bitrateMode":"constant","framerate":25,"futureConfigFeature":"foo","latencyMode":"realtime","alpha":"discard"}]
+ expected:
+ if os == "mac": PASS
+ if os == "android": PRECONDITION_FAILED
+
+
+[video-encoder-config.https.any.worker.html]
+ [VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+ if (os == "linux") and (version == "Ubuntu 18.04"): PRECONDITION_FAILED
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality","avc":{"format":"annexb"}}]
+ expected:
+ if os == "mac": PRECONDITION_FAILED
+ if os == "android": PRECONDITION_FAILED
+ if os == "win": PRECONDITION_FAILED
+
+ [VideoEncoder.isConfigSupported() supports:{"codec":"vp09.00.10.08","hardwareAcceleration":"no-preference","width":1280,"height":720,"bitrate":7000000,"bitrateMode":"constant","framerate":25,"futureConfigFeature":"foo","latencyMode":"realtime","alpha":"discard"}]
+ expected:
+ if os == "mac": PASS
+ if os == "android": PRECONDITION_FAILED
diff --git a/testing/web-platform/meta/webcodecs/video-encoder-content-hint.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder-content-hint.https.any.js.ini
new file mode 100644
index 0000000000..0c2f86dcef
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder-content-hint.https.any.js.ini
@@ -0,0 +1,12 @@
+[video-encoder-content-hint.https.any.html]
+ [Test that contentHint is recognized by VideoEncoder]
+ expected:
+ if os == "mac": PASS
+ if os == "android": FAIL
+
+
+[video-encoder-content-hint.https.any.worker.html]
+ [Test that contentHint is recognized by VideoEncoder]
+ expected:
+ if os == "mac": PASS
+ if os == "android": FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-encoder-flush.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder-flush.https.any.js.ini
new file mode 100644
index 0000000000..21a595aa51
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder-flush.https.any.js.ini
@@ -0,0 +1,8 @@
+[video-encoder-flush.https.any.worker.html]
+ disabled:
+ if os != "linux": codec support only on Linux desktop
+
+
+[video-encoder-flush.https.any.html]
+ disabled:
+ if os != "linux": codec support only on Linux desktop
diff --git a/testing/web-platform/meta/webcodecs/video-encoder-h264.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder-h264.https.any.js.ini
new file mode 100644
index 0000000000..e0d96bb0ff
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder-h264.https.any.js.ini
@@ -0,0 +1,47 @@
+[video-encoder-h264.https.any.html?main]
+ [Test that encoding with a specific H264 profile actually produces that profile.]
+ expected:
+ if os == "win": FAIL
+ if os == "android": PRECONDITION_FAILED
+ if os == "linux" and version == "Ubuntu 18.04": PRECONDITION_FAILED
+ if os == "mac": PASS
+
+[video-encoder-h264.https.any.html?baseline]
+ [Test that encoding with a specific H264 profile actually produces that profile.]
+ expected:
+ if os == "win": FAIL
+ if os == "android": PRECONDITION_FAILED
+ if os == "mac": PASS
+ if os == "linux" and version == "Ubuntu 18.04": PRECONDITION_FAILED
+
+[video-encoder-h264.https.any.worker.html?baseline]
+ [Test that encoding with a specific H264 profile actually produces that profile.]
+ expected:
+ if os == "win": FAIL
+ if os == "android": PRECONDITION_FAILED
+ if os == "mac": PASS
+ if os == "linux" and version == "Ubuntu 18.04": PRECONDITION_FAILED
+
+[video-encoder-h264.https.any.html?high]
+ [Test that encoding with a specific H264 profile actually produces that profile.]
+ expected:
+ if os == "win": FAIL
+ if os == "android": PRECONDITION_FAILED
+ if os == "mac": PASS
+ if os == "linux" and version == "Ubuntu 18.04": PRECONDITION_FAILED
+
+[video-encoder-h264.https.any.worker.html?main]
+ [Test that encoding with a specific H264 profile actually produces that profile.]
+ expected:
+ if os == "win": FAIL
+ if os == "android": PRECONDITION_FAILED
+ if os == "mac": PASS
+ if os == "linux" and version == "Ubuntu 18.04": PRECONDITION_FAILED
+
+[video-encoder-h264.https.any.worker.html?high]
+ [Test that encoding with a specific H264 profile actually produces that profile.]
+ expected:
+ if os == "win": FAIL
+ if os == "android": PRECONDITION_FAILED
+ if os == "mac": PASS
+ if os == "linux" and version == "Ubuntu 18.04": PRECONDITION_FAILED
diff --git a/testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini b/testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini
new file mode 100644
index 0000000000..807658b4b2
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-encoder.https.any.js.ini
@@ -0,0 +1,72 @@
+[video-encoder.https.any.html]
+ [Test successful configure(), encode(), and flush()]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [encodeQueueSize test]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [Test successful reset() and re-confiugre()]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [Test successful encode() after re-configure().]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [Encode video with negative timestamp]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+
+[video-encoder.https.any.worker.html]
+ [Test successful configure(), encode(), and flush()]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [encodeQueueSize test]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [Test successful reset() and re-confiugre()]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [Test successful encode() after re-configure().]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
+
+ [Encode video with negative timestamp]
+ expected:
+ if os == "linux": PASS
+ if os == "mac": PASS
+ if (os == "win") and nightly_build and not ccov: PASS
+ FAIL
diff --git a/testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini b/testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini
new file mode 100644
index 0000000000..0ee812ad24
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/video-frame-serialization.any.js.ini
@@ -0,0 +1,9 @@
+[video-frame-serialization.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+[video-frame-serialization.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini b/testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini
new file mode 100644
index 0000000000..371c920220
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoColorSpace.any.js.ini
@@ -0,0 +1,9 @@
+[videoColorSpace.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+[videoColorSpace.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini
new file mode 100644
index 0000000000..bb208c6800
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoDecoder-codec-specific.https.any.js.ini
@@ -0,0 +1,982 @@
+[videoDecoder-codec-specific.https.any.worker.html?vp8]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.worker.html?h264_avc]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.worker.html?vp9]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.worker.html?h264_annexb]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "linux") and debug and fission and not swgl: [OK, CRASH]
+ if (os == "linux") and debug and not fission and swgl: [OK, CRASH]
+ [Test isConfigSupported()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?vp8]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?av1]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.worker.html?av1]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?vp9]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if os == "android": PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?h264_avc]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?h264_annexb]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (processor == "x86_64") and not fission and (os == "linux") and debug and not swgl: [OK, CRASH]
+ if (processor == "x86") and (os == "linux"): [OK, CRASH]
+ [Test isConfigSupported()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test configure()]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected:
+ if (os == "android") or (os == "mac"): PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?h265_hevc]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected: PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected: PRECONDITION_FAILED
+
+ [Test configure()]
+ expected: PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected: PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected: PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected: PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected: PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected: PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected: PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.worker.html?h265_hevc]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected: PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected: PRECONDITION_FAILED
+
+ [Test configure()]
+ expected: PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected: PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected: PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected: PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected: PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected: PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected: PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.html?h265_annexb]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected: PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected: PRECONDITION_FAILED
+
+ [Test configure()]
+ expected: PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected: PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected: PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected: PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected: PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected: PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected: PRECONDITION_FAILED
+
+
+[videoDecoder-codec-specific.https.any.worker.html?h265_annexb]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test isConfigSupported()]
+ expected: PRECONDITION_FAILED
+
+ [Test isConfigSupported() with 1080p crop]
+ expected: PRECONDITION_FAILED
+
+ [Test that isConfigSupported() returns a parsed configuration]
+ expected: PRECONDITION_FAILED
+
+ [Test invalid configs]
+ expected: PRECONDITION_FAILED
+
+ [Test configure()]
+ expected: PRECONDITION_FAILED
+
+ [Decode a key frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode a non key frame first fails]
+ expected: PRECONDITION_FAILED
+
+ [Verify reset() suppresses outputs]
+ expected: PRECONDITION_FAILED
+
+ [Test unconfigured VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Test closed VideoDecoder operations]
+ expected: PRECONDITION_FAILED
+
+ [Decode empty frame]
+ expected: PRECONDITION_FAILED
+
+ [Decode corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Close while decoding corrupt frame]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding after flush]
+ expected: PRECONDITION_FAILED
+
+ [Test decoding a with negative timestamp]
+ expected: PRECONDITION_FAILED
+
+ [Test reset during flush]
+ expected: PRECONDITION_FAILED
+
+ [Test low-latency decoding]
+ expected: PRECONDITION_FAILED
+
+ [VideoDecoder decodeQueueSize test]
+ expected: PRECONDITION_FAILED
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini
new file mode 100644
index 0000000000..dfb750d912
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-alpha.any.js.ini
@@ -0,0 +1,5 @@
+[videoFrame-alpha.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+
+[videoFrame-alpha.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini
new file mode 100644
index 0000000000..466d26408f
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-canvasImageSource.html.ini
@@ -0,0 +1,7 @@
+[videoFrame-canvasImageSource.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [<video> and VideoFrame constructed VideoFrame]
+ expected: FAIL
+
+ [CSSImageValue constructed VideoFrame]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini
new file mode 100644
index 0000000000..33c3e2d6e9
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.any.js.ini
@@ -0,0 +1,10 @@
+[videoFrame-construction.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
+[videoFrame-construction.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ if os == "android": CRASH
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..447268c374
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,11 @@
+[videoFrame-construction.crossOriginIsolated.https.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+
+[videoFrame-construction.crossOriginIsolated.https.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and swgl: [OK, TIMEOUT]
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ if (os == "android") and not debug: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini
new file mode 100644
index 0000000000..fece974bbb
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.crossOriginSource.sub.html.ini
@@ -0,0 +1,11 @@
+[videoFrame-construction.crossOriginSource.sub.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+
+[videoFrame-construction.crossOriginSource.sub.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and swgl: [OK, TIMEOUT]
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ if (os == "android") and not debug: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini
new file mode 100644
index 0000000000..3b1a0c282a
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-construction.window.js.ini
@@ -0,0 +1,4 @@
+[videoFrame-construction.window.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test that timestamp is required when constructing VideoFrame from SVGImageElement]
+ expected: [PASS, FAIL]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini
new file mode 100644
index 0000000000..4c057f64ba
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.any.js.ini
@@ -0,0 +1,10 @@
+[videoFrame-copyTo.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ [Test I420A stride and offset work.]
+ expected:
+ if (os == "linux") and debug and fission and not swgl: [PASS, FAIL]
+ if (os == "mac") and debug: [PASS, FAIL]
+
+
+[videoFrame-copyTo.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini
new file mode 100644
index 0000000000..fdbe3e66f4
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.js.ini
@@ -0,0 +1,11 @@
+[videoFrame-copyTo.crossOriginIsolated.https.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug: [OK, TIMEOUT]
+
+[videoFrame-copyTo.crossOriginIsolated.https.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and debug and not swgl: [OK, TIMEOUT]
+ if (os == "android") and not debug: [OK, TIMEOUT]
+ if (os == "android") and swgl: [OK, TIMEOUT]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini
new file mode 100644
index 0000000000..737656e9ed
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.any.js.ini
@@ -0,0 +1,5 @@
+[videoFrame-createImageBitmap.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+
+[videoFrame-createImageBitmap.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini
new file mode 100644
index 0000000000..a70113cbb2
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-createImageBitmap.https.any.js.ini
@@ -0,0 +1,8 @@
+[videoFrame-createImageBitmap.https.any.html]
+ disabled:
+ if (os != "linux"): not implemented
+
+
+[videoFrame-createImageBitmap.https.any.worker.html]
+ disabled:
+ if (os != "linux"): not implemented
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini
new file mode 100644
index 0000000000..926b21c384
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-drawImage.any.js.ini
@@ -0,0 +1,26 @@
+[videoFrame-drawImage.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).]
+ expected: FAIL
+
+
+[videoFrame-drawImage.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+ [drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).]
+ expected: FAIL
+
+ [drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-odd-size.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-odd-size.any.js.ini
new file mode 100644
index 0000000000..96816f1e30
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-odd-size.any.js.ini
@@ -0,0 +1,14 @@
+[videoFrame-odd-size.any.html]
+ [Test I420 VideoFrame construction with odd coded size]
+ expected: FAIL
+
+ [Test I420 copyTo with odd coded size.]
+ expected: FAIL
+
+
+[videoFrame-odd-size.any.worker.html]
+ [Test I420 VideoFrame construction with odd coded size]
+ expected: FAIL
+
+ [Test I420 copyTo with odd coded size.]
+ expected: FAIL
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini
new file mode 100644
index 0000000000..328a152ec3
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-serialization.crossAgentCluster.https.html.ini
@@ -0,0 +1,7 @@
+[videoFrame-serialization.crossAgentCluster.https.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [OK, TIMEOUT]
+ [Verify frames cannot be transferred accross the different agent clusters]
+ expected:
+ if (processor == "x86") and (os == "win") and not debug: [PASS, NOTRUN]
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-serialization.https.html.ini b/testing/web-platform/meta/webcodecs/videoFrame-serialization.https.html.ini
new file mode 100644
index 0000000000..303d727bbe
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-serialization.https.html.ini
@@ -0,0 +1,5 @@
+[videoFrame-serialization.https.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+ expected:
+ if (os == "android") and fission: [OK, TIMEOUT]
+
diff --git a/testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini b/testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini
new file mode 100644
index 0000000000..f6638eed06
--- /dev/null
+++ b/testing/web-platform/meta/webcodecs/videoFrame-texImage.any.js.ini
@@ -0,0 +1,5 @@
+[videoFrame-texImage.any.worker.html]
+ prefs: [dom.media.webcodecs.enabled:true]
+
+[videoFrame-texImage.any.html]
+ prefs: [dom.media.webcodecs.enabled:true]