WPT
wpt / webcodecs / videoFrame-construction.any.html
Spec: WebCodecs ↗
Runs: Chrome 155.0.8038.0 (wpt@397d01d8e, 2026-09-02) | Firefox 157.0a1 (wpt@397d01d8e, 2026-09-02) | Safari 251 preview (wpt@5ce815a83, 2026-08-27) | Ladybird 1.0-5f6fa (wpt@b1a7025f8, 2026-09-02) | Servo Servo 0.5 (wpt@2ccd2cbf8, 2026-09-01) | Blitz 7727414ca (wpt@a95401e4e, 2026-09-02)
View on the Blitz WPT dashboard | Open test on wpt.live | wpt.fyi
| Chrome | Firefox | Safari | Ladybird | Servo | Blitz | |
|---|---|---|---|---|---|---|
| Total | 48/51 | 35/51 | 34/51 | 0/51 | 0/51 | NOT RUN |
| Subtest | Chrome | Firefox | Safari | Ladybird | Servo | Blitz |
|---|---|---|---|---|---|---|
| Test we can construct a VideoFrame. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test closed VideoFrame. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct a VideoFrame with a negative timestamp. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test that timestamp is required when constructing VideoFrame from ImageBitmap | PASS | PASS | PASS | FAIL | FAIL | — |
| Test that timestamp is required when constructing VideoFrame from OffscreenCanvas | PASS | PASS | PASS | FAIL | FAIL | — |
| Test that timestamp is NOT required when constructing VideoFrame from another VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct an odd-sized VideoFrame. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test constructing w/ unusable image argument throws: HAVE_NOTHING <video>. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct a VideoFrame from a <video>. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test constructing w/ unusable image argument throws: emtpy Canvas. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test constructing w/ unusable image argument throws: closed ImageBitmap. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test constructing w/ unusable image argument throws: closed VideoFrame. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test invalid CanvasImageSource constructed VideoFrames | PASS | PASS | PASS | FAIL | FAIL | — |
| Test visibleRect metadata override where source display size = visible size | PASS | PASS | PASS | FAIL | FAIL | — |
| Test visibleRect metadata override where source display width = 2 * visible width (anamorphic) | PASS | PASS | PASS | FAIL | FAIL | — |
| Test visibleRect metadata override where source display size = 2 * visible size for both width and height | PASS | PASS | PASS | FAIL | FAIL | — |
| Test that a visibleRect override throwing when computed display size rounds to zero | PASS | PASS | FAIL | FAIL | FAIL | — |
| Test visibleRect + display size metadata override | PASS | PASS | PASS | FAIL | FAIL | — |
| Test display size metadata override | PASS | PASS | PASS | FAIL | FAIL | — |
| Test invalid buffer constructed VideoFrames | PASS | PASS | PASS | FAIL | FAIL | — |
| Test Uint8Array(ArrayBuffer) constructed I420 VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test ArrayBuffer constructed I420 VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test planar constructed I420 VideoFrame with colorSpace | PASS | PASS | PASS | FAIL | FAIL | — |
| Test planar can construct I420 VideoFrame with null colorSpace values | PASS | PASS | PASS | FAIL | FAIL | — |
| Test buffer constructed I420+Alpha VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test buffer constructed NV12 VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test buffer constructed RGB VideoFrames | PASS | PASS | PASS | FAIL | FAIL | — |
| Test VideoFrame constructed VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct a VideoFrame from an offscreen canvas. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test I420 VideoFrame with odd visible size | PASS | PASS | PASS | FAIL | FAIL | — |
| Test I420A VideoFrame and alpha={keep,discard} | PASS | PASS | PASS | FAIL | FAIL | — |
| Test RGBA, BGRA VideoFrames with alpha={keep,discard} | PASS | PASS | PASS | FAIL | FAIL | — |
| Test a VideoFrame constructed from canvas can drop the alpha channel. | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct a I420 VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct a I420P10 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I420P12 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I420A VideoFrame | PASS | PASS | PASS | FAIL | FAIL | — |
| Test we can construct a I420AP10 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I420AP12 VideoFrame | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I422 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I422P10 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I422P12 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I422A VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I422AP10 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I422AP12 VideoFrame | FAIL | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I444 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I444P10 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I444P12 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I444A VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I444AP10 VideoFrame | PASS | FAIL | FAIL | FAIL | FAIL | — |
| Test we can construct a I444AP12 VideoFrame | FAIL | FAIL | FAIL | FAIL | FAIL | — |