1 /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/.
6 * The origin of this IDL file is
7 * https://w3c.github.io/media-capabilities/
9 * Copyright © 2018 the Contributors to the Media Capabilities Specification
12 dictionary MediaConfiguration {
13 VideoConfiguration video;
14 AudioConfiguration audio;
17 dictionary MediaDecodingConfiguration : MediaConfiguration {
18 required MediaDecodingType type;
21 dictionary MediaEncodingConfiguration : MediaConfiguration {
22 required MediaEncodingType type;
25 enum MediaDecodingType {
30 enum MediaEncodingType {
35 dictionary VideoConfiguration {
36 required DOMString contentType;
37 required unsigned long width;
38 required unsigned long height;
39 required unsigned long long bitrate;
40 required double framerate;
41 boolean hasAlphaChannel;
42 HdrMetadataType hdrMetadataType;
43 ColorGamut colorGamut;
44 TransferFunction transferFunction;
45 DOMString scalabilityMode;
48 enum HdrMetadataType {
60 enum TransferFunction {
66 dictionary AudioConfiguration {
67 required DOMString contentType;
69 unsigned long long bitrate;
70 unsigned long samplerate;
73 [Exposed=(Window, Worker), Func="mozilla::dom::MediaCapabilities::Enabled",
74 HeaderFile="mozilla/dom/MediaCapabilities.h"]
75 interface MediaCapabilitiesInfo {
76 readonly attribute boolean supported;
77 readonly attribute boolean smooth;
78 readonly attribute boolean powerEfficient;
81 [Exposed=(Window, Worker), Func="mozilla::dom::MediaCapabilities::Enabled"]
82 interface MediaCapabilities {
84 Promise<MediaCapabilitiesInfo> decodingInfo(MediaDecodingConfiguration configuration);
86 Promise<MediaCapabilitiesInfo> encodingInfo(MediaEncodingConfiguration configuration);