| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // https://github.com/WICG/web-codecs |
| |
| [ |
| Exposed=(Window,DedicatedWorker), |
| Serializable, |
| RuntimeEnabled=WebCodecs |
| ] interface VideoFrame { |
| [CallWith=ScriptState, RaisesException] |
| constructor(CanvasImageSource source, optional VideoFrameInit init = {}); |
| |
| [CallWith=ScriptState, RaisesException] |
| constructor([AllowShared] BufferSource data, VideoFrameBufferInit init); |
| |
| readonly attribute VideoPixelFormat? format; |
| |
| // Presentation timestamp, in microseconds. |
| readonly attribute long long? timestamp; |
| // Presentation duration, in microseconds. |
| readonly attribute unsigned long long? duration; |
| |
| // Dimensions of this frame's pixel data; typically padded to a macroblock |
| // multiple. |
| readonly attribute unsigned long codedWidth; |
| readonly attribute unsigned long codedHeight; |
| |
| // Convenience accessor, origin is always (0, 0). |
| readonly attribute DOMRectReadOnly? codedRect; |
| |
| // Area of this frame's pixel data that is not padding. |
| readonly attribute DOMRectReadOnly? visibleRect; |
| |
| // Display aspect ratio of visible rect. |
| readonly attribute unsigned long displayWidth; |
| readonly attribute unsigned long displayHeight; |
| |
| // Color space of the data produced by copyTo(). |
| readonly attribute VideoColorSpace? colorSpace; |
| |
| // Returns the minimum size (in bytes) of a buffer that copyTo() could |
| // copy this frame into with the given options. |
| [RaisesException] unsigned long allocationSize( |
| optional VideoFrameCopyToOptions options = {}); |
| |
| // Copy the planes of this frame into |destination| according to |options|. |
| // The format of the data is the same as this frame's |format|. |
| [CallWith=ScriptState, RaisesException] |
| Promise<sequence<PlaneLayout>> copyTo( |
| [AllowShared] BufferSource destination, |
| optional VideoFrameCopyToOptions options = {}); |
| |
| // Creates a copy of this VideoFrame, which needs to be independently closed. |
| [RaisesException] VideoFrame clone(); |
| |
| void close(); |
| }; |