[wpt-sync] Sync PR 27617 - Add drawImage() and createImageBitmap() support for blink::VideoFrame.
Categories
(Testing :: web-platform-tests, task, P4)
Tracking
(firefox88 fixed)
Tracking | Status | |
---|---|---|
firefox88 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 27617 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/27617
Details from upstream follow.
b'Dale Curtis <dalecurtis@chromium.org>' wrote:
Add drawImage() and createImageBitmap() support for blink::VideoFrame.
This makes blink::VideoFrame a CanvasImageSource for drawImage() and
wires up the existing ImageBitmapSource implementation to
createImageBitmap() to deprecate VideoFrame.createImageBitmap().A deprecation notice is added for VideoFrame.createImageBitmap(); the
method will be removed prior to shipping WebCodecs.Bug: 1175907
Test: New (moved from internal) WPT tests.Change-Id: I549d996c9b16a8d0a1dd5293b5bee29f61cac8f3
Reviewed-on: https://chromium-review.googlesource.com/2680955
WPT-Export-Revision: 074dad264f066b9cf53649e8552328f55f044d6f
Assignee | ||
Comment 1•4 years ago
|
||
Assignee | ||
Comment 2•4 years ago
|
||
CI Results
Ran 0 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 15 tests and 6 subtests
Status Summary
Firefox
OK : 15
FAIL : 173
Chrome
OK : 12
PASS : 143
FAIL : 28
TIMEOUT: 3
ERROR : 2
Safari
OK : 15
FAIL : 173
Links
Details
New Tests That Don't Pass
/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: PASS, 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.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: PASS, 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)
Encoding and decoding: FAIL (Chrome: FAIL, Safari: FAIL)
Emit decoder config and extra data.: FAIL (Chrome: FAIL, 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: PASS, 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.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: PASS, 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.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: FAIL, 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: FAIL, 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: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed RGB VideoFrames: FAIL (Chrome: PASS, 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: PASS, Safari: FAIL)
Test planar constructed I420 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed I420+Alpha VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed NV12 VideoFrame: FAIL (Chrome: PASS, Safari: FAIL)
Test planar constructed RGB VideoFrames: FAIL (Chrome: PASS, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: FAIL, 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)
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
/webcodecs/videoFrame-createImageBitmap.any.worker.html
ImageBitmap<->VideoFrame with canvas(48x36 srgb uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
ImageBitmap<->VideoFrame with canvas(480x360 srgb uint8).: FAIL (Chrome: FAIL, 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)
Create ImageBitmap for a VideoFrame from VP9 decoder.: FAIL (Chrome: TIMEOUT, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
/webcodecs/videoFrame-drawImage.any.worker.html
drawImage(VideoFrame) with canvas(48x36 srgb uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 srgb uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 display-p3 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(48x36 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
drawImage(VideoFrame) with canvas(480x360 rec2020 uint8).: FAIL (Chrome: FAIL, Safari: FAIL)
Comment 6•4 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/a7dc3835c1d5
https://hg.mozilla.org/mozilla-central/rev/1ad5067e9d48
Description
•