Closed Bug 1689036 Opened 4 years ago Closed 4 years ago

[wpt-sync] Sync PR 27343 - Add support for constructing WebCodecs VideoFrames from planes.

Categories

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

task

Tracking

(firefox87 fixed)

RESOLVED FIXED
87 Branch
Tracking Status
firefox87 --- fixed

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

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

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

b'Dale Curtis <dalecurtis@chromium.org>' wrote:

Add support for constructing WebCodecs VideoFrames from planes.

This allows for JS/WASM created VideoFrames to be fed into the
WebCodecs encoder. Passed in ArrayBuffers always have their
ownership transferred to the constructed VideoFrame.

Bug: 1120817
Test: New web tests.
Change-Id: Iefb3118ecac567c0cc4cb0187330194d69ce8327
Reviewed-on: https://chromium-review.googlesource.com/2616985
WPT-Export-Revision: b46052a85fbd191a6dd4ef9e8e2fe7d66a6310db

CI Results

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

Total 11 tests and 10 subtests

Status Summary

Firefox

OK : 11
FAIL: 147

Chrome

OK : 11
PASS: 133
FAIL: 14

Safari

OK : 11
FAIL: 147

Links

GitHub PR Head
GitHub PR Base

Details

New Tests That Don't Pass

/webcodecs/audio-decoder.any.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Emtpy 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:Emtpy 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.isConfigSupported() with a valid config: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: FAIL (Chrome: FAIL, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Verify closed AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-decoder.any.worker.html
Test that AudioDecoder.isConfigSupported() rejects invalid config:Emtpy 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:Emtpy 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.isConfigSupported() with a valid config: FAIL (Chrome: PASS, Safari: FAIL)
Test that AudioDecoder.isConfigSupported() returns a parsed configuration: FAIL (Chrome: FAIL, Safari: FAIL)
Test AudioDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test AudioDecoder.configure(): FAIL (Chrome: PASS, Safari: FAIL)
Verify closed AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured AudioDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/audio-encoder.any.html
Simple audio encoding: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.any.worker.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Emtpy 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.isConfigSupported() rejects invalid config:Zero coded size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Out of bounds crop size caused by left/top offset: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Way out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Invalid display size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Emtpy 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 that VideoDecoder.configure() rejects invalid config:Zero coded size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Out of bounds crop size caused by left/top offset: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Way out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Invalid display size: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder.isConfigSupported() with minimal valid config: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder.isConfigSupported() with valid expanded config: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() returns a parsed configuration: FAIL (Chrome: FAIL, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder.configure() with various codec strings: FAIL (Chrome: PASS, Safari: FAIL)
Decode VP9: FAIL (Chrome: PASS, Safari: FAIL)
Verify reset() suppresses output and rejects flush: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Decode corrupt VP9 frame: FAIL (Chrome: PASS, Safari: FAIL)
Decode empty VP9 frame: FAIL (Chrome: PASS, Safari: FAIL)
Close while decoding corrupt VP9 frame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-decoder.any.html
Test that VideoDecoder.isConfigSupported() rejects invalid config:Emtpy 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.isConfigSupported() rejects invalid config:Zero coded size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Out of bounds crop size caused by left/top offset: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Way out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() rejects invalid config:Invalid display size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Emtpy 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 that VideoDecoder.configure() rejects invalid config:Zero coded size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Out of bounds crop size caused by left/top offset: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Way out of bounds crop size: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.configure() rejects invalid config:Invalid display size: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder.isConfigSupported() with minimal valid config: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder.isConfigSupported() with valid expanded config: FAIL (Chrome: PASS, Safari: FAIL)
Test that VideoDecoder.isConfigSupported() returns a parsed configuration: FAIL (Chrome: FAIL, Safari: FAIL)
Test VideoDecoder construction: FAIL (Chrome: PASS, Safari: FAIL)
Test VideoDecoder.configure() with various codec strings: FAIL (Chrome: PASS, Safari: FAIL)
Decode VP9: FAIL (Chrome: PASS, Safari: FAIL)
Verify reset() suppresses output and rejects flush: FAIL (Chrome: PASS, Safari: FAIL)
Verify closed VideoDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Verify unconfigured VideoDecoder operations: FAIL (Chrome: PASS, Safari: FAIL)
Decode corrupt VP9 frame: FAIL (Chrome: PASS, Safari: FAIL)
Decode empty VP9 frame: FAIL (Chrome: PASS, Safari: FAIL)
Close while decoding corrupt VP9 frame: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-encoder.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)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Test encoder consumes (closes) frames.: 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)
/webcodecs/video-encoder.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)
Test successful reset() and re-confiugre(): FAIL (Chrome: PASS, Safari: FAIL)
Test successful encode() after re-configure().: FAIL (Chrome: PASS, Safari: FAIL)
Test encoder consumes (closes) frames.: 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)
/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 propagates accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing cloned frames doesn't propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: 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 propagates accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify closing cloned frames doesn't propagate accross contexts.: FAIL (Chrome: PASS, Safari: FAIL)
Verify posting closed frames throws.: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/video-frame.any.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can read planar data from a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we cannot read planar data from a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing VideoFrames from closed ImageBitmap throws.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid planar constructed VideoFrames: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed I420 VideoFrame: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed I420+Alpha VideoFrame: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed NV12 VideoFrame: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed RGB VideoFrames: FAIL (Chrome: FAIL, Safari: FAIL)
/webcodecs/video-frame.any.worker.html
Test we can construct a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can construct an odd-sized VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we can read planar data from a VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test we cannot read planar data from a closed VideoFrame.: FAIL (Chrome: PASS, Safari: FAIL)
Test constructing VideoFrames from closed ImageBitmap throws.: FAIL (Chrome: PASS, Safari: FAIL)
Test invalid planar constructed VideoFrames: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed I420 VideoFrame: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed I420+Alpha VideoFrame: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed NV12 VideoFrame: FAIL (Chrome: FAIL, Safari: FAIL)
Test planar constructed RGB VideoFrames: FAIL (Chrome: FAIL, Safari: FAIL)

Pushed by wptsync@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/12cb3744dd8b [wpt PR 27343] - Add support for constructing WebCodecs VideoFrames from planes., a=testonly https://hg.mozilla.org/integration/autoland/rev/5e285232d2f9 [wpt PR 27343] - Update wpt metadata, a=testonly
Status: NEW → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → 87 Branch
You need to log in before you can comment on or make changes to this bug.