mirror of
				https://github.com/LadybirdBrowser/ladybird.git
				synced 2025-10-31 13:20:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			114 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
	
		
			3.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| #import <EncryptedMediaExtensions/EncryptedMediaExtensions.idl>
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#mediaconfiguration
 | |
| dictionary MediaConfiguration {
 | |
|     VideoConfiguration video;
 | |
|     AudioConfiguration audio;
 | |
| };
 | |
| 
 | |
| dictionary MediaDecodingConfiguration : MediaConfiguration {
 | |
|     required MediaDecodingType type;
 | |
|     MediaCapabilitiesKeySystemConfiguration keySystemConfiguration;
 | |
| };
 | |
| 
 | |
| dictionary MediaEncodingConfiguration : MediaConfiguration {
 | |
|     required MediaEncodingType type;
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#enumdef-mediadecodingtype
 | |
| enum MediaDecodingType {
 | |
|     "file",
 | |
|     "media-source",
 | |
|     "webrtc"
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#enumdef-mediaencodingtype
 | |
| enum MediaEncodingType {
 | |
|     "record",
 | |
|     "webrtc"
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#dictdef-videoconfiguration
 | |
| dictionary VideoConfiguration {
 | |
|     required DOMString contentType;
 | |
|     required unsigned long width;
 | |
|     required unsigned long height;
 | |
|     required unsigned long long bitrate;
 | |
|     required double framerate;
 | |
|     boolean hasAlphaChannel;
 | |
|     HdrMetadataType hdrMetadataType;
 | |
|     ColorGamut colorGamut;
 | |
|     TransferFunction transferFunction;
 | |
|     DOMString scalabilityMode;
 | |
|     boolean spatialScalability;
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#enumdef-hdrmetadatatype
 | |
| enum HdrMetadataType {
 | |
|     "smpteSt2086",
 | |
|     "smpteSt2094-10",
 | |
|     "smpteSt2094-40"
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#enumdef-colorgamut
 | |
| enum ColorGamut {
 | |
|     "srgb",
 | |
|     "p3",
 | |
|     "rec2020"
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#enumdef-transferfunction
 | |
| enum TransferFunction {
 | |
|     "srgb",
 | |
|     "pq",
 | |
|     "hlg"
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#dictdef-audioconfiguration
 | |
| dictionary AudioConfiguration {
 | |
|     required DOMString contentType;
 | |
|     DOMString channels;
 | |
|     unsigned long long bitrate;
 | |
|     unsigned long samplerate;
 | |
|     boolean spatialRendering;
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#mediacapabilitieskeysystemconfiguration
 | |
| dictionary MediaCapabilitiesKeySystemConfiguration {
 | |
|     required DOMString keySystem;
 | |
|     DOMString initDataType = "";
 | |
|     MediaKeysRequirement distinctiveIdentifier = "optional";
 | |
|     MediaKeysRequirement persistentState = "optional";
 | |
|     sequence<DOMString> sessionTypes;
 | |
|     KeySystemTrackConfiguration audio;
 | |
|     KeySystemTrackConfiguration video;
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#keysystemtrackconfiguration
 | |
| dictionary KeySystemTrackConfiguration {
 | |
|     DOMString robustness = "";
 | |
|     DOMString? encryptionScheme = null;
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#media-capabilities-info
 | |
| dictionary MediaCapabilitiesInfo {
 | |
|     required boolean supported;
 | |
|     required boolean smooth;
 | |
|     required boolean powerEfficient;
 | |
| };
 | |
| 
 | |
| dictionary MediaCapabilitiesDecodingInfo : MediaCapabilitiesInfo {
 | |
|     [FIXME, required] MediaKeySystemAccess keySystemAccess;
 | |
|     MediaDecodingConfiguration configuration;
 | |
| };
 | |
| 
 | |
| dictionary MediaCapabilitiesEncodingInfo : MediaCapabilitiesInfo {
 | |
|     MediaEncodingConfiguration configuration;
 | |
| };
 | |
| 
 | |
| // https://w3c.github.io/media-capabilities/#mediacapabilities
 | |
| [Exposed=(Window, Worker)]
 | |
| interface MediaCapabilities {
 | |
|     [NewObject] Promise<MediaCapabilitiesDecodingInfo> decodingInfo(MediaDecodingConfiguration configuration);
 | |
|     [FIXME, NewObject] Promise<MediaCapabilitiesEncodingInfo> encodingInfo(MediaEncodingConfiguration configuration);
 | |
| };
 | 
