1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
// Copyright 2019 The Chromium Authors
// 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
typedef ([AllowShared] ArrayBuffer or [AllowShared] ArrayBufferView) AllowSharedBufferSource;
[
Exposed=(Window,DedicatedWorker),
Serializable
] interface VideoFrame {
[CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsVideoFrameFromImage]
constructor(CanvasImageSource source, optional VideoFrameInit init = {});
[CallWith=ScriptState, RaisesException, MeasureAs=WebCodecsVideoFrameFromBuffer]
constructor(AllowSharedBufferSource 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;
// Rotation to apply when rendering, in degrees clockwise.
[RuntimeEnabled=WebCodecsOrientation]
readonly attribute unsigned long rotation;
// Whether the rendering is flipped horizontally after rotation.
[RuntimeEnabled=WebCodecsOrientation]
readonly attribute boolean flip;
// Display aspect ratio of visible rect, after accounting for rotation.
readonly attribute unsigned long displayWidth;
readonly attribute unsigned long displayHeight;
// Color space of the data produced by copyTo().
readonly attribute VideoColorSpace colorSpace;
// The VideoFrameMetadata associated with this frame. Possible members are
// recorded in https://www.w3.org/TR/webcodecs-video-frame-metadata-registry/.
// By design, all VideoFrameMetadata properties are serializable.
[RaisesException, RuntimeEnabled="VideoFrameMetadataBackgroundBlur"]
VideoFrameMetadata metadata();
// 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(
AllowSharedBufferSource destination,
optional VideoFrameCopyToOptions options = {});
// Creates a copy of this VideoFrame, which needs to be independently closed.
[RaisesException] VideoFrame clone();
void close();
};
|