Backed out 4 changesets (bug 1879154) for causing bustage on nsUserCharacteristics...
[gecko.git] / dom / webidl / MediaCapabilities.webidl
blob514a86285fc8867aba88aa7a7da120b978580888
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/.
5  *
6  * The origin of this IDL file is
7  * https://w3c.github.io/media-capabilities/
8  *
9  * Copyright © 2018 the Contributors to the Media Capabilities Specification
10  */
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 {
26   "file",
27   "media-source",
30 enum MediaEncodingType {
31   "record",
32   "transmission"
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 {
49   "smpteSt2086",
50   "smpteSt2094-10",
51   "smpteSt2094-40"
54 enum ColorGamut {
55   "srgb",
56   "p3",
57   "rec2020"
60 enum TransferFunction {
61   "srgb",
62   "pq",
63   "hlg"
66 dictionary AudioConfiguration {
67   required DOMString contentType;
68   DOMString channels;
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 {
83   [NewObject]
84   Promise<MediaCapabilitiesInfo> decodingInfo(MediaDecodingConfiguration configuration);
85   [NewObject]
86   Promise<MediaCapabilitiesInfo> encodingInfo(MediaEncodingConfiguration configuration);