chromium/third_party/blink/renderer/modules/webcodecs/video_decoder_config.idl

// 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

// NOTE: Keep this strucutre in sync with CopyConfig() defined in
// video_decoder.cc.

dictionary VideoDecoderConfig {
  // Codec string, eg. "avc1.42001e" or "vp09.00.10.08".
  // TODO(sandersd): Should we accept "avc1" when |description| is provided?
  required DOMString codec;

  // avcC, vpcC, or etc.
  // TODO(sandersd): Define what happens if the parsed description differs from
  // the metadata below.
  AllowSharedBufferSource description;

  // Hint about the encoded size of the content.
  [EnforceRange] unsigned long codedWidth;
  [EnforceRange] unsigned long codedHeight;

  // Display aspect ratio of the content.
  [EnforceRange] unsigned long displayAspectWidth;
  [EnforceRange] unsigned long displayAspectHeight;

  // Hint about the color space of the content.
  VideoColorSpaceInit colorSpace;

  HardwarePreference hardwareAcceleration = "no-preference";

  // Hint that decoders should be configured for latency versus throughput.
  boolean optimizeForLatency;

  [RuntimeEnabled=MediaSourceExtensionsForWebCodecs] DOMString encryptionScheme;
};