Closed Bug 1736789 Opened 3 years ago Closed 3 years ago

[wpt-sync] Sync PR 31328 - Throw `DataCloneError` when transferring non-transferable objects

Categories

(Testing :: web-platform-tests, task, P4)

task

Tracking

(firefox95 fixed)

RESOLVED FIXED
95 Branch
Tracking Status
firefox95 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 31328 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/31328
Details from upstream follow.

Andreu Botella <andreu@andreubotella.com> wrote:

Throw DataCloneError when transferring non-transferable objects

Currently attempting to transfer non-transferable objects using the
structured clone algorithm throws a TypeError, rather than a
DataCloneError DOMException as per the spec.

This seems like a holdover from the original definition of transferable
objects as the Transferable WebIDL type, since transfer lists would be
defined as sequence\<Transferable> and so would throw a TypeError on
conversion. https://github.com/whatwg/html/pull/727 changed transfer
lists to be sequence\<object> and changed the
StructuredCloneWithTransfer algorithm (now
StructuredSerializeWithTransfer) to throw a DataCloneError
DOMException if any element in the transfer list is not transferable.

Bug: 816447
Change-Id: I9f4f88a2d7a593766f394256606a688f299c7b57
Reviewed-on: https://chromium-review.googlesource.com/3229544
WPT-Export-Revision: 87409712fc006b89b62a6e363c814165d5fe2fb6

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 64 tests and 6 subtests

Status Summary

Firefox

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Chrome

OK : 64
PASS : 489
FAIL : 8

Safari

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-data-serialization.any.html
Verify closing AudioData does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed AudioData throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.worker.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.worker.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.https.any.html: ERROR (Chrome: OK, Safari: ERROR)
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
Encode audio with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audioDecoder-codec-specific.https.any.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/chunk-serialization.any.html
Verify EncodedAudioChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
Verify EncodedVideoChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.worker.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.worker.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder-image-orientation-none.https.html
Test JPEG w/ EXIF orientation top-left on canvas w/o orientation: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.worker.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.worker.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.worker.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.worker.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.worker.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-canvasImageSource.html
<video> and VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
CSSImageValue constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Image element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
SVGImageElement constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Canvas element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.worker.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.worker.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.worker.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.worker.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.worker.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 64 tests and 6 subtests

Status Summary

Firefox

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Chrome

OK : 64
PASS : 489
FAIL : 8

Safari

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-data-serialization.any.html
Verify closing AudioData does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed AudioData throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.worker.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.worker.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.https.any.html: ERROR (Chrome: OK, Safari: ERROR)
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
Encode audio with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audioDecoder-codec-specific.https.any.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/chunk-serialization.any.html
Verify EncodedAudioChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
Verify EncodedVideoChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.worker.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.worker.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder-image-orientation-none.https.html
Test JPEG w/ EXIF orientation top-left on canvas w/o orientation: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.worker.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.worker.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.worker.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.worker.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.worker.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-canvasImageSource.html
<video> and VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
CSSImageValue constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Image element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
SVGImageElement constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Canvas element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.worker.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.worker.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.worker.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.worker.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.worker.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 64 tests and 6 subtests

Status Summary

Firefox

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Chrome

OK : 64
PASS : 489
FAIL : 8

Safari

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-data-serialization.any.html
Verify closing AudioData does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed AudioData throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.worker.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.worker.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.https.any.html: ERROR (Chrome: OK, Safari: ERROR)
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
Encode audio with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audioDecoder-codec-specific.https.any.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/chunk-serialization.any.html
Verify EncodedAudioChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
Verify EncodedVideoChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.worker.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.worker.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder-image-orientation-none.https.html
Test JPEG w/ EXIF orientation top-left on canvas w/o orientation: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.worker.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.worker.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.worker.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.worker.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.worker.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-canvasImageSource.html
<video> and VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
CSSImageValue constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Image element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
SVGImageElement constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Canvas element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.worker.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.worker.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.worker.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.worker.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.worker.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 64 tests and 6 subtests

Status Summary

Firefox

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Chrome

OK : 64
PASS : 489
FAIL : 8

Safari

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-data-serialization.any.html
Verify closing AudioData does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed AudioData throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.worker.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.worker.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.https.any.html: ERROR (Chrome: OK, Safari: ERROR)
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
Encode audio with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audioDecoder-codec-specific.https.any.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/chunk-serialization.any.html
Verify EncodedAudioChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
Verify EncodedVideoChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.worker.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.worker.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder-image-orientation-none.https.html
Test JPEG w/ EXIF orientation top-left on canvas w/o orientation: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.worker.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.worker.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.worker.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.worker.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.worker.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-canvasImageSource.html
<video> and VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
CSSImageValue constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Image element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
SVGImageElement constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Canvas element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.worker.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.worker.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.worker.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.worker.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.worker.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 64 tests and 6 subtests

Status Summary

Firefox

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Chrome

OK : 64
PASS : 489
FAIL : 8

Safari

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-data-serialization.any.html
Verify closing AudioData does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed AudioData throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.worker.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.worker.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.https.any.html: ERROR (Chrome: OK, Safari: ERROR)
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
Encode audio with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audioDecoder-codec-specific.https.any.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/chunk-serialization.any.html
Verify EncodedAudioChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
Verify EncodedVideoChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.worker.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.worker.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder-image-orientation-none.https.html
Test JPEG w/ EXIF orientation top-left on canvas w/o orientation: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.worker.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.worker.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.worker.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.worker.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.worker.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-canvasImageSource.html
<video> and VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
CSSImageValue constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Image element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
SVGImageElement constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Canvas element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.worker.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.worker.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.worker.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.worker.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.worker.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)

Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/abe347d81c31 [wpt PR 31328] - Throw `DataCloneError` when transferring non-transferable objects, a=testonly

CI Results

Ran 11 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI

Total 64 tests and 6 subtests

Status Summary

Firefox

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Chrome

OK : 64
PASS : 489
FAIL : 8

Safari

OK : 51
PASS : 1
FAIL : 386
ERROR : 13
NOTRUN: 96

Links

Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-data-serialization.any.html
Verify closing AudioData does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed AudioData throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.worker.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.any.html
Verify AudioData constructors: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing and cloning AudioData: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct AudioData with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of uint8 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int16 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of int32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test conversion of float32 data to float32: FAIL (Chrome: PASS, Safari: FAIL)
Test copying out planar and interleaved data: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-data.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.https.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Video codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.worker.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder-config.https.any.html
Test that AudioEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too small: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Sample rate is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Too few channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Way too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() rejects invalid config:Bit rate too big: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Too many channels: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioEncoder.isConfigSupported() doesn't support config:Bitrate is too low: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":8000,"numberOfChannels":1}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2}: FAIL (Chrome: PASS, Safari: FAIL)
AudioEncoder.isConfigSupported() supports:{"codec":"opus","sampleRate":48000,"numberOfChannels":2,"bitrate":128000,"bogus":123}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.https.any.html: ERROR (Chrome: OK, Safari: ERROR)
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
Encode audio with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audioDecoder-codec-specific.https.any.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?adts_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?pcm_mulaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp3: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?opus: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.worker.html?mp4_aac: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/audioDecoder-codec-specific.https.any.html?pcm_alaw: ERROR (Chrome: OK, Safari: ERROR)
Test isConfigSupported(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test configure(): NOTRUN (Chrome: PASS, Safari: NOTRUN)
Verify closed AudioDecoder operations: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding a with negative timestamp: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test decoding after flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
Test reset during flush: NOTRUN (Chrome: PASS, Safari: NOTRUN)
/webcodecs/chunk-serialization.any.html
Verify EncodedAudioChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
Verify EncodedVideoChunk is serializable.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.any.worker.html
Test we can construct an EncodedAudioChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destination invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-audio-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.worker.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.any.html
Test we can construct an EncodedVideoChunk.: FAIL (Chrome: PASS, Safari: FAIL)
Test copyTo() exception if destiation invalid: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/encoded-video-chunk.crossOriginIsolated.https.any.worker.html
Test construction and copyTo() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test construction and copyTo() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder-image-orientation-none.https.html
Test JPEG w/ EXIF orientation top-left on canvas w/o orientation: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom on canvas w/o orientation.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.crossOriginIsolated.https.any.worker.html
Test ImageDecoder decoding with a SharedArrayBuffer source: FAIL (Chrome: PASS, Safari: FAIL)
Test ImageDecoder decoding with a Uint8Array(SharedArrayBuffer) source: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/image-decoder.https.any.worker.html
Test JPEG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation top-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-right.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation bottom-left.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-top.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation right-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG w/ EXIF orientation left-bottom.: FAIL (Chrome: PASS, Safari: FAIL)
Test PNG image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test high bit depth HDR AVIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=false.: FAIL (Chrome: PASS, Safari: FAIL)
Test multi-track AVIF image decoding w/ preferAnimation=true.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test GIF image decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test JPEG image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:2:2 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test AVIF image YUV 4:4:4 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test WEBP image YUV 4:2:0 decoding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decode() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid mime type rejects decodeMetadata() requests: FAIL (Chrome: PASS, Safari: FAIL)
Test out of range index returns RangeError: FAIL (Chrome: PASS, Safari: FAIL)
Test partial decoding without a frame results in an error: FAIL (Chrome: PASS, Safari: FAIL)
Test completed property on fully buffered decode: FAIL (Chrome: PASS, Safari: FAIL)
Test decode, decodeMetadata after no track selected.: FAIL (Chrome: PASS, Safari: FAIL)
Test track selection in multi track image.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream of gif: FAIL (Chrome: PASS, Safari: FAIL)
Test that decode requests are serialized.: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts promises on track change: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream aborts completed on close: FAIL (Chrome: PASS, Safari: FAIL)
Test ReadableStream resolves completed: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.crossOriginIsolated.https.any.worker.html
Test isConfigSupported() and configure() using a SharedArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test isConfigSupported() and configure() using a Uint8Array(SharedArrayBuffer): FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.https.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Empty codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Audio codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Ambiguous codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Codec with MIME type: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.worker.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder-config.https.any.html
Test that VideoEncoder.isConfigSupported() rejects invalid config:Emtpy codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Unrecognized codec: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Width is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Height is too large: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:Invalid scalability mode: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoEncoder.isConfigSupported() rejects invalid config:AVC not supported by VP8: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() doesn't support config:Too strenuous accelerated encoding parameters: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"avc1.42001E","hardwareAcceleration":"no-preference","width":640,"height":480,"bitrate":5000000,"framerate":24,"avc":{"format":"annexb"},"futureConfigFeature":"foo"}: FAIL (Chrome: PASS, Safari: FAIL)
VideoEncoder.isConfigSupported() supports:{"codec":"vp8","hardwareAcceleration":"no-preference","width":800,"height":600,"bitrate":7000000,"bitrateMode":"variable","framerate":60,"scalabilityMode":"L1T2","futureConfigFeature":"foo","latencyMode":"quality"}: FAIL (Chrome: PASS, Safari: FAIL)
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"}: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.worker.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.https.any.html
Test VideoEncoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoEncoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful configure(), encode(), and flush(): FAIL (Chrome: PASS, Safari: FAIL)
encodeQueueSize test: FAIL (Chrome: PASS, Safari: FAIL)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoEncoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify encoding closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
Encode video with negative timestamp: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.worker.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame-serialization.any.html
Test we can clone a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing a frame doesn't affect its clones.: FAIL (Chrome: PASS, Safari: FAIL)
Verify cloning a closed frame throws.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing frames does not propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify transferring frames closes them.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-canvasImageSource.html
<video> and VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
CSSImageValue constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Image element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
SVGImageElement constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Canvas element constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame with a negative timestamp.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: emtpy Canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed ImageBitmap.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing w/ unusable image argument throws: closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid CanvasImageSource constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = visible size: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display width = 2 * visible width (anamorphic): FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect metadata override where source display size = 2 * visible size for both width and height: FAIL (Chrome: PASS, Safari: FAIL)
Test visibleRect + display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test display size metadata override: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid buffer constructed VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test ArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame with colorSpace: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test buffer constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoFrame constructed VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct a VideoFrame from an offscreen canvas.: FAIL (Chrome: PASS, Safari: FAIL)
Test I420A VideoFrame and alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA, BGRA VideoFrames with alpha={keep,discard}: FAIL (Chrome: PASS, Safari: FAIL)
Test a VideoFrame constructed from canvas can drop the alpha channel.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-construction.crossOriginIsolated.https.any.worker.html
Test SharedArrayBuffer constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test Uint8Array(SharedArrayBuffer) constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.any.worker.html
Test closed frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBuffer: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to a non-shared ArrayBufferView: FAIL (Chrome: PASS, Safari: FAIL)
Test RGBA frame.: FAIL (Chrome: PASS, Safari: FAIL)
Test undersized buffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test incorrect plane count.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset work.: FAIL (Chrome: PASS, Safari: FAIL)
Test stride and offset with padding.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid stride.: FAIL (Chrome: PASS, Safari: FAIL)
Test address overflow.: FAIL (Chrome: PASS, Safari: FAIL)
Test codedRect.: FAIL (Chrome: PASS, Safari: FAIL)
Test empty rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test unaligned rect.: FAIL (Chrome: PASS, Safari: FAIL)
Test left crop.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid rect.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-copyTo.crossOriginIsolated.https.any.worker.html
Test copying I420 frame to SharedArrayBuffer.: FAIL (Chrome: PASS, Safari: FAIL)
Test copying I420 frame to shared ArrayBufferView.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
createImageBitmap uses frame display size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.https.any.worker.html
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: PASS, Safari: FAIL)
drawImage on a closed VideoFrame throws InvalidStateError.: FAIL (Chrome: PASS, Safari: FAIL)
drawImage of nested frame works properly: FAIL (Chrome: PASS, Safari: FAIL)
drawImage with display size != visible size: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.worker.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-texImage.any.html
texImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 48x36 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with 480x360 srgb VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
texSubImage2D with a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)

Test result changes from PR not available.
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 95 Branch
You need to log in before you can comment on or make changes to this bug.