UNPKG

google-closure-compiler

Version:

Check, compile, optimize and compress Javascript with Closure-Compiler

207 lines (175 loc) 5.88 kB
/* * Copyright 2019 The Closure Compiler Authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @fileoverview MediaCapabilities externs. * Based on {@link https://w3c.github.io/media-capabilities/ MC draft 6 November * 2019}. * @externs */ /** * @typedef {string} * @see https://w3c.github.io/media-capabilities/#enumdef-hdrmetadatatype */ var HdrMetadataType; /** * @typedef {string} * @see https://w3c.github.io/media-capabilities/#enumdef-colorgamut */ var ColorGamut; /** * @typedef {string} * @see https://w3c.github.io/media-capabilities/#enumdef-transferfunction */ var TransferFunction; /** * @typedef {string} * @see https://w3c.github.io/media-capabilities/#enumdef-mediadecodingtype */ var MediaDecodingType; /** * @typedef {string} * @see https://w3c.github.io/media-capabilities/#enumdef-mediaencodingtype */ var MediaEncodingType; /** * @typedef {{ * contentType: string, * width: number, * height: number, * bitrate: number, * framerate: number, * hasAlphaChannel: (boolean|undefined), * hdrMetadataType: (!HdrMetadataType|undefined), * colorGamut: (!ColorGamut|undefined), * transferFunction: (!TransferFunction|undefined) * }} * @see https://w3c.github.io/media-capabilities/#dictdef-videoconfiguration */ var VideoConfiguration; // NOTE: channels definition below is not yet stable in the spec as of Dec 2019. // "The channels needs to be defined as a double (2.1, 4.1, 5.1, ...), an // unsigned short (number of channels) or as an enum value. The current // definition is a placeholder." /** * @typedef {{ * contentType: string, * channels: (*|undefined), * bitrate: (number|undefined), * samplerate: (number|undefined), * spatialRendering: (boolean|undefined) * }} * @see https://w3c.github.io/media-capabilities/#dictdef-audioconfiguration */ var AudioConfiguration; // NOTE: encryptionScheme is not yet in the MC spec as of Dec 2019, but has // already landed in EME and should be in MC soon. // https://github.com/w3c/media-capabilities/issues/100 /** * @typedef {{ * robustness: (string|undefined), * encryptionScheme: (string|undefined) * }} * @see https://w3c.github.io/media-capabilities/#dictdef-keysystemtrackconfiguration */ var KeySystemTrackConfiguration; /** * @typedef {{ * keySystem: string, * initDataType: (string|undefined), * distinctiveIdentifier: (string|undefined), * persistentState: (string|undefined), * sessionTypes: (!Array<string>|undefined), * audio: (!KeySystemTrackConfiguration|undefined), * video: (!KeySystemTrackConfiguration|undefined) * }} * @see https://w3c.github.io/media-capabilities/#dictdef-mediacapabilitieskeysystemconfiguration */ var MediaCapabilitiesKeySystemConfiguration; /** * @record * @see https://w3c.github.io/media-capabilities/#dictdef-mediaconfiguration */ function MediaConfiguration() {} /** @type {!VideoConfiguration|undefined} */ MediaConfiguration.prototype.video; /** @type {!AudioConfiguration|undefined} */ MediaConfiguration.prototype.audio; /** * @record * @extends {MediaConfiguration} * @see https://w3c.github.io/media-capabilities/#dictdef-mediadecodingconfiguration */ function MediaDecodingConfiguration() {} /** @type {!MediaDecodingType} */ MediaDecodingConfiguration.prototype.type; /** @type {!MediaCapabilitiesKeySystemConfiguration|undefined} */ MediaDecodingConfiguration.prototype.keySystemConfiguration; /** * @record * @extends {MediaConfiguration} * @see https://w3c.github.io/media-capabilities/#dictdef-mediaencodingconfiguration */ function MediaEncodingConfiguration() {} /** @type {!MediaEncodingType} */ MediaEncodingConfiguration.prototype.type; /** * @record * @see https://w3c.github.io/media-capabilities/#dictdef-mediacapabilitiesinfo */ function MediaCapabilitiesInfo() {} /** @type {boolean} */ MediaCapabilitiesInfo.prototype.supported; /** @type {boolean} */ MediaCapabilitiesInfo.prototype.smooth; /** @type {boolean} */ MediaCapabilitiesInfo.prototype.powerEfficient; /** * @record * @extends {MediaCapabilitiesInfo} * @see https://w3c.github.io/media-capabilities/#dictdef-mediacapabilitiesdecodinginfo */ function MediaCapabilitiesDecodingInfo() {} /** @type {?MediaKeySystemAccess} */ MediaCapabilitiesDecodingInfo.prototype.keySystemAccess; /** @type {!MediaDecodingConfiguration} */ MediaCapabilitiesDecodingInfo.prototype.configuration; /** * @record * @extends {MediaCapabilitiesInfo} * @see https://w3c.github.io/media-capabilities/#dictdef-mediacapabilitiesencodinginfo */ function MediaCapabilitiesEncodingInfo() {} /** @type {!MediaEncodingConfiguration} */ MediaCapabilitiesEncodingInfo.prototype.configuration; /** * @interface * @see https://w3c.github.io/media-capabilities/#mediacapabilities */ function MediaCapabilities() {} /** * @param {!MediaDecodingConfiguration} configuration * @return {!Promise<!MediaCapabilitiesDecodingInfo>} */ MediaCapabilities.prototype.decodingInfo = function(configuration) {}; /** * @param {!MediaEncodingConfiguration} configuration * @return {!Promise<!MediaCapabilitiesEncodingInfo>} */ MediaCapabilities.prototype.encodingInfo = function(configuration) {}; /** @const {?MediaCapabilities} */ Navigator.prototype.mediaCapabilities; /** @const {?MediaCapabilities} */ WorkerNavigator.prototype.mediaCapabilities;