// Copyright 2020 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
enum VideoEncoderBitrateMode { "constant", "variable", "quantizer" };
// NOTE: Keep this structure in sync with CopyConfig() defined in
// video_encoder.cc.
dictionary VideoEncoderConfig {
required DOMString codec;
HardwarePreference hardwareAcceleration = "no-preference";
AlphaOption alpha = "discard";
[EnforceRange] unsigned long long bitrate;
VideoEncoderBitrateMode bitrateMode = "variable";
double framerate;
required [EnforceRange] unsigned long width;
required [EnforceRange] unsigned long height;
// Hint about the pixel aspect ratio of the content.
[EnforceRange] unsigned long displayWidth;
[EnforceRange] unsigned long displayHeight;
AvcEncoderConfig avc;
HevcEncoderConfig hevc;
// Same as in WebRTC SVC (https://w3c.github.io/webrtc-svc/)
DOMString scalabilityMode;
LatencyMode latencyMode = "quality";
// MediaStreamTrack Content Hints (https://www.w3.org/TR/mst-content-hint/)
DOMString contentHint = "";
};