diff --git a/features/draft/spec/media-capabilities.yml b/features/draft/spec/media-capabilities.yml deleted file mode 100644 index 8e6682992af..00000000000 --- a/features/draft/spec/media-capabilities.yml +++ /dev/null @@ -1,11 +0,0 @@ -draft_date: 2024-09-09 -name: Media Capabilities -description: TODO -spec: https://w3c.github.io/media-capabilities/ -compat_features: - - api.MediaCapabilities - - api.MediaCapabilities.decodingInfo - - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter - - api.MediaCapabilities.encodingInfo - - api.Navigator.mediaCapabilities - - api.WorkerNavigator.mediaCapabilities diff --git a/features/draft/spec/mediacapture-streams.yml b/features/draft/spec/mediacapture-streams.yml deleted file mode 100644 index c200ad08ff3..00000000000 --- a/features/draft/spec/mediacapture-streams.yml +++ /dev/null @@ -1,78 +0,0 @@ -draft_date: 2024-10-28 -name: Media Capture and Streams -description: TODO -spec: https://w3c.github.io/mediacapture-main/ -compat_features: - - api.InputDeviceInfo - - api.InputDeviceInfo.getCapabilities - - api.MediaDeviceInfo.toJSON - - api.MediaDevices.devicechange_event - - api.MediaDevices.getSupportedConstraints - - api.MediaDevices.getUserMedia.secure_context_required - - api.MediaStream - - api.MediaStream.MediaStream - - api.MediaStream.active - - api.MediaStream.addTrack - - api.MediaStream.addtrack_event - - api.MediaStream.clone - - api.MediaStream.getTrackById - - api.MediaStream.id - - api.MediaStream.removeTrack - - api.MediaStream.removetrack_event - - api.MediaStreamTrack.applyConstraints - - api.MediaStreamTrack.applyConstraints.aspectRatio_constraint - - api.MediaStreamTrack.applyConstraints.autoGainControl_constraint - - api.MediaStreamTrack.applyConstraints.channelCount_constraint - - api.MediaStreamTrack.applyConstraints.deviceId_constraint - - api.MediaStreamTrack.applyConstraints.echoCancellation_constraint - - api.MediaStreamTrack.applyConstraints.facingMode_constraint - - api.MediaStreamTrack.applyConstraints.frameRate_constraint - - api.MediaStreamTrack.applyConstraints.groupId_constraint - - api.MediaStreamTrack.applyConstraints.height_constraint - - api.MediaStreamTrack.applyConstraints.latency_constraint - - api.MediaStreamTrack.applyConstraints.noiseSuppression_constraint - - api.MediaStreamTrack.applyConstraints.resizeMode_constraint - - api.MediaStreamTrack.applyConstraints.sampleRate_constraint - - api.MediaStreamTrack.applyConstraints.sampleSize_constraint - - api.MediaStreamTrack.applyConstraints.width_constraint - - api.MediaStreamTrack.clone - - api.MediaStreamTrack.ended_event - - api.MediaStreamTrack.getCapabilities - - api.MediaStreamTrack.getConstraints - - api.MediaStreamTrack.getSettings - - api.MediaStreamTrack.mute_event - - api.MediaStreamTrack.muted - - api.MediaStreamTrack.readyState - - api.MediaStreamTrack.unmute_event - - api.MediaStreamTrackEvent - - api.MediaStreamTrackEvent.MediaStreamTrackEvent - - api.MediaStreamTrackEvent.track - - api.Navigator.mediaDevices - - api.Navigator.mediaDevices.secure_context_required - - api.OverconstrainedError - - api.OverconstrainedError.OverconstrainedError - - api.OverconstrainedError.constraint - - html.elements.iframe.allow.camera - - html.elements.iframe.allow.microphone - - http.headers.Permissions-Policy.camera - - http.headers.Permissions-Policy.microphone - -# The following features in the spec are already part of web-features: -# - Media capture: -# - api.MediaDeviceInfo -# - api.MediaDeviceInfo.deviceId -# - api.MediaDeviceInfo.groupId -# - api.MediaDeviceInfo.kind -# - api.MediaDeviceInfo.label -# - api.MediaDevices -# - api.MediaDevices.enumerateDevices -# - api.MediaDevices.getUserMedia -# - api.MediaStream.getAudioTracks -# - api.MediaStream.getTracks -# - api.MediaStream.getVideoTracks -# - api.MediaStreamTrack -# - api.MediaStreamTrack.enabled -# - api.MediaStreamTrack.id -# - api.MediaStreamTrack.kind -# - api.MediaStreamTrack.label -# - api.MediaStreamTrack.stop diff --git a/features/draft/spec/mediacapture-streams.yml.dist b/features/draft/spec/mediacapture-streams.yml.dist deleted file mode 100644 index d54eb2979ca..00000000000 --- a/features/draft/spec/mediacapture-streams.yml.dist +++ /dev/null @@ -1,447 +0,0 @@ -# Generated from: mediacapture-streams.yml -# Do not edit this file by hand. Edit the source file instead! - -status: - baseline: false - support: - chrome: "88" - edge: "88" -compat_features: - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "26" - # chrome_android: "26" - # edge: "12" - # firefox: "50" - # firefox_android: "50" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.ended_event - - api.MediaStreamTrack.readyState - - api.MediaStreamTrackEvent - - api.MediaStreamTrackEvent.track - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "35" - # chrome_android: "35" - # edge: "12" - # firefox: "48" - # firefox_android: "48" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.clone - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "47" - # chrome_android: "47" - # edge: "12" - # firefox: "36" - # firefox_android: "36" - # safari: "11" - # safari_ios: "11" - - api.Navigator.mediaDevices - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "53" - # chrome_android: "52" - # edge: "12" - # firefox: "44" - # firefox_android: "50" - # safari: "11" - # safari_ios: "11" - - api.MediaDevices.getSupportedConstraints - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "53" - # chrome_android: "52" - # edge: "12" - # firefox: "50" - # firefox_android: "50" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.getConstraints - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "15" - # firefox_android: "15" - # safari: "11" - # safari_ios: "11" - - api.MediaStream - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "41" - # firefox_android: "41" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.id - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "44" - # firefox_android: "42" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.MediaStream - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "44" - # firefox_android: "44" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.addTrack - - api.MediaStream.removeTrack - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "48" - # firefox_android: "48" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.clone - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "49" - # firefox_android: "49" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.getTrackById - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "50" - # firefox_android: "50" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.addtrack_event - - api.MediaStreamTrackEvent.MediaStreamTrackEvent - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "52" - # firefox_android: "52" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.active - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: "12" - # firefox: "43" - # firefox_android: "43" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.applyConstraints - - # baseline: high - # baseline_low_date: 2017-09-19 - # baseline_high_date: 2020-03-19 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: "12" - # firefox: "50" - # firefox_android: "50" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.getSettings - - # baseline: high - # baseline_low_date: 2018-03-13 - # baseline_high_date: 2020-09-13 - # support: - # chrome: "26" - # chrome_android: "26" - # edge: "12" - # firefox: "59" - # firefox_android: "59" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.mute_event - - api.MediaStreamTrack.unmute_event - - # baseline: high - # baseline_low_date: 2018-10-02 - # baseline_high_date: 2021-04-02 - # support: - # chrome: "47" - # chrome_android: "47" - # edge: "18" - # firefox: "42" - # firefox_android: "42" - # safari: "11" - # safari_ios: "11" - - api.MediaDeviceInfo.toJSON - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "47" - # chrome_android: "47" - # edge: "79" - # firefox: "39" - # firefox_android: "39" - # safari: "11" - # safari_ios: "11" - - api.InputDeviceInfo - - # baseline: high - # baseline_low_date: 2020-01-15 - # baseline_high_date: 2022-07-15 - # support: - # chrome: "53" - # chrome_android: "53" - # edge: "79" - # firefox: "68" - # firefox_android: "68" - # safari: "11" - # safari_ios: "11" - - api.MediaDevices.getUserMedia.secure_context_required - - # baseline: high - # baseline_low_date: ≤2020-01-15 - # baseline_high_date: ≤2022-07-15 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: ≤79 - # firefox: "43" - # firefox_android: "43" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.applyConstraints.deviceId_constraint - - # baseline: high - # baseline_low_date: ≤2020-01-15 - # baseline_high_date: ≤2022-07-15 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: ≤79 - # firefox: "50" - # firefox_android: "50" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.applyConstraints.echoCancellation_constraint - - api.MediaStreamTrack.applyConstraints.facingMode_constraint - - api.MediaStreamTrack.applyConstraints.frameRate_constraint - - api.MediaStreamTrack.applyConstraints.height_constraint - - api.MediaStreamTrack.applyConstraints.latency_constraint - - api.MediaStreamTrack.applyConstraints.width_constraint - - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: "55" - # chrome_android: "55" - # edge: "12" - # firefox: "72" - # firefox_android: "79" - # safari: "11" - # safari_ios: "11" - - api.MediaStream.removetrack_event - - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: ≤79 - # firefox: "70" - # firefox_android: "79" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.applyConstraints.groupId_constraint - - # baseline: high - # baseline_low_date: 2020-07-28 - # baseline_high_date: 2023-01-28 - # support: - # chrome: "64" - # chrome_android: "64" - # edge: "79" - # firefox: "74" - # firefox_android: "79" - # safari: "11.1" - # safari_ios: "11.3" - - html.elements.iframe.allow.camera - - html.elements.iframe.allow.microphone - - # baseline: low - # baseline_low_date: 2024-10-29 - # support: - # chrome: "59" - # chrome_android: "59" - # edge: "12" - # firefox: "132" - # firefox_android: "132" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.getCapabilities - - # baseline: false - # support: - # chrome: "57" - # edge: "12" - # firefox: "52" - # firefox_android: "52" - # safari: "11" - # safari_ios: "11" - - api.MediaDevices.devicechange_event - - # baseline: false - # support: - # chrome: "59" - # chrome_android: "59" - # edge: ≤79 - # firefox_android: "43" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.applyConstraints.aspectRatio_constraint - - # baseline: false - # support: - # chrome: "74" - # chrome_android: "74" - # edge: "79" - # firefox: "69" - # safari: "11" - # safari_ios: "11" - - api.Navigator.mediaDevices.secure_context_required - - # baseline: false - # support: - # chrome: "38" - # chrome_android: "38" - # edge: "12" - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.muted - - # baseline: false - # support: - # chrome: "59" - # chrome_android: "59" - # edge: ≤79 - # safari: "11" - # safari_ios: "11" - - api.MediaStreamTrack.applyConstraints.channelCount_constraint - - api.MediaStreamTrack.applyConstraints.sampleRate_constraint - - api.MediaStreamTrack.applyConstraints.sampleSize_constraint - - # baseline: false - # support: - # chrome: "63" - # chrome_android: "63" - # edge: "79" - # safari: "11" - # safari_ios: "11" - - api.OverconstrainedError - - api.OverconstrainedError.OverconstrainedError - - # baseline: false - # support: - # chrome: "63" - # chrome_android: "63" - # edge: "79" - # safari: "11.1" - # safari_ios: "11.3" - - api.OverconstrainedError.constraint - - # baseline: false - # support: - # chrome: "67" - # chrome_android: "67" - # edge: "79" - # safari: "17" - # safari_ios: "17" - - api.InputDeviceInfo.getCapabilities - - # baseline: false - # support: - # chrome: "67" - # chrome_android: "67" - # edge: ≤79 - # firefox: "55" - # firefox_android: "55" - - api.MediaStreamTrack.applyConstraints.autoGainControl_constraint - - api.MediaStreamTrack.applyConstraints.noiseSuppression_constraint - - # baseline: false - # support: - # chrome: "72" - # chrome_android: "72" - # edge: "79" - - api.MediaStreamTrack.applyConstraints.resizeMode_constraint - - # baseline: false - # support: - # chrome: "88" - # chrome_android: "88" - # edge: "88" - - http.headers.Permissions-Policy.camera - - http.headers.Permissions-Policy.microphone diff --git a/features/draft/spec/encrypted-media-2.yml b/features/encrypted-media-extensions.yml similarity index 78% rename from features/draft/spec/encrypted-media-2.yml rename to features/encrypted-media-extensions.yml index 2c26c3f85e6..fde2dd5312f 100644 --- a/features/draft/spec/encrypted-media-2.yml +++ b/features/encrypted-media-extensions.yml @@ -1,12 +1,17 @@ -draft_date: 2024-10-28 -name: Encrypted Media Extensions -description: TODO +name: Encrypted media extensions +description: The `mediaKeys` property of `HTMLMediaElement` and the `navigator.requestMediaKeySystemAccess()` method control the playback of content subject to digital rights management. Also known as EME. spec: https://w3c.github.io/encrypted-media/ +caniuse: eme +status: + compute_from: + - api.Navigator.requestMediaKeySystemAccess + - api.HTMLMediaElement.mediaKeys compat_features: - api.HTMLMediaElement.encrypted_event - api.HTMLMediaElement.mediaKeys - api.HTMLMediaElement.setMediaKeys - api.HTMLMediaElement.waitingforkey_event + - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter - api.MediaEncryptedEvent - api.MediaEncryptedEvent.MediaEncryptedEvent - api.MediaEncryptedEvent.initData diff --git a/features/draft/spec/encrypted-media-2.yml.dist b/features/encrypted-media-extensions.yml.dist similarity index 89% rename from features/draft/spec/encrypted-media-2.yml.dist rename to features/encrypted-media-extensions.yml.dist index 445db46fc08..9c459ffa3a7 100644 --- a/features/draft/spec/encrypted-media-2.yml.dist +++ b/features/encrypted-media-extensions.yml.dist @@ -1,13 +1,20 @@ -# Generated from: encrypted-media-2.yml +# Generated from: encrypted-media-extensions.yml # Do not edit this file by hand. Edit the source file instead! status: - baseline: false + baseline: high + baseline_low_date: 2019-03-25 + baseline_high_date: 2021-09-25 support: - chrome: "88" - chrome_android: "88" - edge: "88" + chrome: "42" + chrome_android: "42" + edge: "13" + firefox: "38" + firefox_android: "38" + safari: "12.1" + safari_ios: "12.2" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2019-03-25 # baseline_high_date: 2021-09-25 @@ -162,7 +169,15 @@ compat_features: # firefox_android: "128" - api.MediaKeys.getStatusForPolicy - # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: + # chrome: "80" + # chrome_android: "80" + # edge: "80" + # firefox: "129" + # firefox_android: "129" + - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter + # baseline: false # support: # chrome: "88" diff --git a/features/draft/spec/mediacapture-transform.yml b/features/insertable-streams.yml similarity index 60% rename from features/draft/spec/mediacapture-transform.yml rename to features/insertable-streams.yml index d1b3c25e188..d7ae1c486d3 100644 --- a/features/draft/spec/mediacapture-transform.yml +++ b/features/insertable-streams.yml @@ -1,6 +1,5 @@ -draft_date: 2024-09-09 -name: MediaStreamTrack Insertable Media Processing using Streams -description: TODO +name: Insertable streams for MediaStreamTrack +description: The `MediaStreamTrackProcessor` and `MediaStreamTrackGenerator` APIs modify the contents of a media track for merging streams, applying real-time effects like funny hats, and content overlays. spec: https://w3c.github.io/mediacapture-transform/ compat_features: - api.MediaStreamTrackProcessor diff --git a/features/draft/spec/mediacapture-transform.yml.dist b/features/insertable-streams.yml.dist similarity index 91% rename from features/draft/spec/mediacapture-transform.yml.dist rename to features/insertable-streams.yml.dist index dc92e3c59f6..eefece544c2 100644 --- a/features/draft/spec/mediacapture-transform.yml.dist +++ b/features/insertable-streams.yml.dist @@ -1,4 +1,4 @@ -# Generated from: mediacapture-transform.yml +# Generated from: insertable-streams.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/media-capabilities.yml b/features/media-capabilities.yml new file mode 100644 index 00000000000..cb726dc21f2 --- /dev/null +++ b/features/media-capabilities.yml @@ -0,0 +1,16 @@ +name: Media capabilities +description: The `navigator.mediaCapabilities` API queries the encoding and decoding abilities of the device, such as supported codecs, resolutions, and bitrates. +spec: https://w3c.github.io/media-capabilities/ +# Computing status because core feature is baseline but this new input device +# instance of it is not, but doesn't prevent use. +# - api.InputDeviceInfo.getCapabilities +status: + compute_from: api.MediaCapabilities +compat_features: + - api.InputDeviceInfo.getCapabilities + - api.MediaCapabilities + - api.MediaCapabilities.decodingInfo + - api.MediaCapabilities.encodingInfo + - api.MediaStreamTrack.getCapabilities + - api.Navigator.mediaCapabilities + - api.WorkerNavigator.mediaCapabilities diff --git a/features/draft/spec/media-capabilities.yml.dist b/features/media-capabilities.yml.dist similarity index 62% rename from features/draft/spec/media-capabilities.yml.dist rename to features/media-capabilities.yml.dist index c6b36118e8b..0960c37ca44 100644 --- a/features/draft/spec/media-capabilities.yml.dist +++ b/features/media-capabilities.yml.dist @@ -2,14 +2,19 @@ # Do not edit this file by hand. Edit the source file instead! status: - baseline: false + baseline: high + baseline_low_date: 2020-01-15 + baseline_high_date: 2022-07-15 support: - chrome: "101" - chrome_android: "101" - edge: "101" - firefox: "129" - firefox_android: "129" + chrome: "66" + chrome_android: "66" + edge: "79" + firefox: "63" + firefox_android: "63" + safari: "13" + safari_ios: "13" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2020-01-15 # baseline_high_date: 2022-07-15 @@ -51,11 +56,23 @@ compat_features: # safari_ios: "15.4" - api.MediaCapabilities.encodingInfo + # baseline: low + # baseline_low_date: 2024-10-29 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "132" + # firefox_android: "132" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.getCapabilities + # baseline: false # support: - # chrome: "80" - # chrome_android: "80" - # edge: "80" - # firefox: "129" - # firefox_android: "129" - - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter + # chrome: "67" + # chrome_android: "67" + # edge: "79" + # safari: "17" + # safari_ios: "17" + - api.InputDeviceInfo.getCapabilities diff --git a/features/media-capture.yml b/features/media-capture.yml index c7102cb9193..844ab8b45df 100644 --- a/features/media-capture.yml +++ b/features/media-capture.yml @@ -4,3 +4,72 @@ spec: https://w3c.github.io/mediacapture-main/ caniuse: stream status: compute_from: api.MediaDevices.getUserMedia +compat_features: + - api.InputDeviceInfo + - api.MediaDeviceInfo + - api.MediaDeviceInfo.deviceId + - api.MediaDeviceInfo.groupId + - api.MediaDeviceInfo.kind + - api.MediaDeviceInfo.label + - api.MediaDeviceInfo.toJSON + - api.MediaDevices + - api.MediaDevices.devicechange_event + - api.MediaDevices.enumerateDevices + - api.MediaDevices.getUserMedia + - api.MediaDevices.getSupportedConstraints + - api.MediaDevices.getUserMedia.secure_context_required + - api.MediaStream + - api.MediaStream.MediaStream + - api.MediaStream.active + - api.MediaStream.addTrack + - api.MediaStream.addtrack_event + - api.MediaStream.clone + - api.MediaStream.getTrackById + - api.MediaStream.getAudioTracks + - api.MediaStream.getTracks + - api.MediaStream.getVideoTracks + - api.MediaStream.id + - api.MediaStream.removeTrack + - api.MediaStream.removetrack_event + - api.MediaStreamTrack + - api.MediaStreamTrack.applyConstraints + - api.MediaStreamTrack.applyConstraints.aspectRatio_constraint + - api.MediaStreamTrack.applyConstraints.autoGainControl_constraint + - api.MediaStreamTrack.applyConstraints.channelCount_constraint + - api.MediaStreamTrack.applyConstraints.deviceId_constraint + - api.MediaStreamTrack.applyConstraints.echoCancellation_constraint + - api.MediaStreamTrack.applyConstraints.facingMode_constraint + - api.MediaStreamTrack.applyConstraints.frameRate_constraint + - api.MediaStreamTrack.applyConstraints.groupId_constraint + - api.MediaStreamTrack.applyConstraints.height_constraint + - api.MediaStreamTrack.applyConstraints.latency_constraint + - api.MediaStreamTrack.applyConstraints.noiseSuppression_constraint + - api.MediaStreamTrack.applyConstraints.resizeMode_constraint + - api.MediaStreamTrack.applyConstraints.sampleRate_constraint + - api.MediaStreamTrack.applyConstraints.sampleSize_constraint + - api.MediaStreamTrack.applyConstraints.width_constraint + - api.MediaStreamTrack.clone + - api.MediaStreamTrack.enabled + - api.MediaStreamTrack.ended_event + - api.MediaStreamTrack.id + - api.MediaStreamTrack.getConstraints + - api.MediaStreamTrack.getSettings + - api.MediaStreamTrack.kind + - api.MediaStreamTrack.label + - api.MediaStreamTrack.mute_event + - api.MediaStreamTrack.muted + - api.MediaStreamTrack.readyState + - api.MediaStreamTrack.stop + - api.MediaStreamTrack.unmute_event + - api.MediaStreamTrackEvent + - api.MediaStreamTrackEvent.MediaStreamTrackEvent + - api.MediaStreamTrackEvent.track + - api.Navigator.mediaDevices + - api.Navigator.mediaDevices.secure_context_required + - api.OverconstrainedError + - api.OverconstrainedError.OverconstrainedError + - api.OverconstrainedError.constraint + - html.elements.iframe.allow.camera + - html.elements.iframe.allow.microphone + - http.headers.Permissions-Policy.camera + - http.headers.Permissions-Policy.microphone diff --git a/features/media-capture.yml.dist b/features/media-capture.yml.dist index 942731620c1..61eb8495cce 100644 --- a/features/media-capture.yml.dist +++ b/features/media-capture.yml.dist @@ -43,6 +43,22 @@ compat_features: # safari_ios: "11" - api.MediaStreamTrack.enabled + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "26" + # chrome_android: "26" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.ended_event + - api.MediaStreamTrack.readyState + - api.MediaStreamTrackEvent + - api.MediaStreamTrackEvent.track + # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 @@ -56,6 +72,19 @@ compat_features: # safari_ios: "11" - api.MediaStreamTrack.stop + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "35" + # chrome_android: "35" + # edge: "12" + # firefox: "48" + # firefox_android: "48" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.clone + # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 @@ -69,6 +98,19 @@ compat_features: # safari_ios: "11" - api.MediaDevices + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "47" + # chrome_android: "47" + # edge: "12" + # firefox: "36" + # firefox_android: "36" + # safari: "11" + # safari_ios: "11" + - api.Navigator.mediaDevices + # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 @@ -86,6 +128,32 @@ compat_features: - api.MediaDeviceInfo.kind - api.MediaDeviceInfo.label + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "53" + # chrome_android: "52" + # edge: "12" + # firefox: "44" + # firefox_android: "50" + # safari: "11" + # safari_ios: "11" + - api.MediaDevices.getSupportedConstraints + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "53" + # chrome_android: "52" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.getConstraints + # ⬇️ Same status as overall feature ⬇️ # baseline: high # baseline_low_date: 2017-09-19 @@ -100,6 +168,19 @@ compat_features: # safari_ios: "11" - api.MediaDevices.getUserMedia + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "15" + # firefox_android: "15" + # safari: "11" + # safari_ios: "11" + - api.MediaStream + # baseline: high # baseline_low_date: 2017-09-19 # baseline_high_date: 2020-03-19 @@ -127,6 +208,249 @@ compat_features: # safari_ios: "11" - api.MediaStream.getTracks + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "41" + # firefox_android: "41" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.id + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "44" + # firefox_android: "42" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.MediaStream + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "44" + # firefox_android: "44" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.addTrack + - api.MediaStream.removeTrack + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "48" + # firefox_android: "48" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.clone + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "49" + # firefox_android: "49" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.getTrackById + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.addtrack_event + - api.MediaStreamTrackEvent.MediaStreamTrackEvent + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "52" + # firefox_android: "52" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.active + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "43" + # firefox_android: "43" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.applyConstraints + + # baseline: high + # baseline_low_date: 2017-09-19 + # baseline_high_date: 2020-03-19 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: "12" + # firefox: "50" + # firefox_android: "50" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.getSettings + + # baseline: high + # baseline_low_date: 2018-03-13 + # baseline_high_date: 2020-09-13 + # support: + # chrome: "26" + # chrome_android: "26" + # edge: "12" + # firefox: "59" + # firefox_android: "59" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.mute_event + - api.MediaStreamTrack.unmute_event + + # baseline: high + # baseline_low_date: 2018-10-02 + # baseline_high_date: 2021-04-02 + # support: + # chrome: "47" + # chrome_android: "47" + # edge: "18" + # firefox: "42" + # firefox_android: "42" + # safari: "11" + # safari_ios: "11" + - api.MediaDeviceInfo.toJSON + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "47" + # chrome_android: "47" + # edge: "79" + # firefox: "39" + # firefox_android: "39" + # safari: "11" + # safari_ios: "11" + - api.InputDeviceInfo + + # baseline: high + # baseline_low_date: 2020-01-15 + # baseline_high_date: 2022-07-15 + # support: + # chrome: "53" + # chrome_android: "53" + # edge: "79" + # firefox: "68" + # firefox_android: "68" + # safari: "11" + # safari_ios: "11" + - api.MediaDevices.getUserMedia.secure_context_required + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox: "43" + # firefox_android: "43" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.applyConstraints.deviceId_constraint + + # baseline: high + # baseline_low_date: ≤2020-01-15 + # baseline_high_date: ≤2022-07-15 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox: "50" + # firefox_android: "50" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.applyConstraints.echoCancellation_constraint + - api.MediaStreamTrack.applyConstraints.facingMode_constraint + - api.MediaStreamTrack.applyConstraints.frameRate_constraint + - api.MediaStreamTrack.applyConstraints.height_constraint + - api.MediaStreamTrack.applyConstraints.latency_constraint + - api.MediaStreamTrack.applyConstraints.width_constraint + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "55" + # chrome_android: "55" + # edge: "12" + # firefox: "72" + # firefox_android: "79" + # safari: "11" + # safari_ios: "11" + - api.MediaStream.removetrack_event + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox: "70" + # firefox_android: "79" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.applyConstraints.groupId_constraint + + # baseline: high + # baseline_low_date: 2020-07-28 + # baseline_high_date: 2023-01-28 + # support: + # chrome: "64" + # chrome_android: "64" + # edge: "79" + # firefox: "74" + # firefox_android: "79" + # safari: "11.1" + # safari_ios: "11.3" + - html.elements.iframe.allow.camera + - html.elements.iframe.allow.microphone + # baseline: low # baseline_low_date: 2023-08-01 # support: @@ -138,3 +462,97 @@ compat_features: # safari: "11" # safari_ios: "11" - api.MediaDevices.enumerateDevices + + # baseline: false + # support: + # chrome: "57" + # edge: "12" + # firefox: "52" + # firefox_android: "52" + # safari: "11" + # safari_ios: "11" + - api.MediaDevices.devicechange_event + + # baseline: false + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # firefox_android: "43" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.applyConstraints.aspectRatio_constraint + + # baseline: false + # support: + # chrome: "74" + # chrome_android: "74" + # edge: "79" + # firefox: "69" + # safari: "11" + # safari_ios: "11" + - api.Navigator.mediaDevices.secure_context_required + + # baseline: false + # support: + # chrome: "38" + # chrome_android: "38" + # edge: "12" + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.muted + + # baseline: false + # support: + # chrome: "59" + # chrome_android: "59" + # edge: ≤79 + # safari: "11" + # safari_ios: "11" + - api.MediaStreamTrack.applyConstraints.channelCount_constraint + - api.MediaStreamTrack.applyConstraints.sampleRate_constraint + - api.MediaStreamTrack.applyConstraints.sampleSize_constraint + + # baseline: false + # support: + # chrome: "63" + # chrome_android: "63" + # edge: "79" + # safari: "11" + # safari_ios: "11" + - api.OverconstrainedError + - api.OverconstrainedError.OverconstrainedError + + # baseline: false + # support: + # chrome: "63" + # chrome_android: "63" + # edge: "79" + # safari: "11.1" + # safari_ios: "11.3" + - api.OverconstrainedError.constraint + + # baseline: false + # support: + # chrome: "67" + # chrome_android: "67" + # edge: ≤79 + # firefox: "55" + # firefox_android: "55" + - api.MediaStreamTrack.applyConstraints.autoGainControl_constraint + - api.MediaStreamTrack.applyConstraints.noiseSuppression_constraint + + # baseline: false + # support: + # chrome: "72" + # chrome_android: "72" + # edge: "79" + - api.MediaStreamTrack.applyConstraints.resizeMode_constraint + + # baseline: false + # support: + # chrome: "88" + # chrome_android: "88" + # edge: "88" + - http.headers.Permissions-Policy.camera + - http.headers.Permissions-Policy.microphone diff --git a/features/draft/spec/media-playback-quality.yml b/features/media-playback-quality.yml similarity index 56% rename from features/draft/spec/media-playback-quality.yml rename to features/media-playback-quality.yml index 17883c8020c..f73c32b180c 100644 --- a/features/draft/spec/media-playback-quality.yml +++ b/features/media-playback-quality.yml @@ -1,6 +1,5 @@ -draft_date: 2024-09-09 -name: Media Playback Quality -description: TODO +name: Media playback quality +description: The `getVideoPlaybackQuality()` method of `HTMLVideoElement` returns metrics that can be used to determine the playback quality of a video, such as how many frames were dropped. spec: https://w3c.github.io/media-playback-quality/ compat_features: - api.HTMLVideoElement.getVideoPlaybackQuality diff --git a/features/draft/spec/media-playback-quality.yml.dist b/features/media-playback-quality.yml.dist similarity index 100% rename from features/draft/spec/media-playback-quality.yml.dist rename to features/media-playback-quality.yml.dist diff --git a/features/media-session.yml b/features/media-session.yml index 65b8f63ac0a..84bb8692f86 100644 --- a/features/media-session.yml +++ b/features/media-session.yml @@ -1,3 +1,39 @@ name: Media session description: The `navigator.mediaSession` API integrates with platform UI for media playback. It can be used to set metadata such as title and artwork, and to handle user actions like playing, pausing, or seeking. spec: https://w3c.github.io/mediasession/ +status: + compute_from: api.MediaSession +compat_features: + - api.ChapterInformation + - api.ChapterInformation.artwork + - api.ChapterInformation.startTime + - api.ChapterInformation.title + - api.MediaMetadata + - api.MediaMetadata.MediaMetadata + - api.MediaMetadata.album + - api.MediaMetadata.artist + - api.MediaMetadata.artwork + - api.MediaMetadata.chapterInfo + - api.MediaMetadata.title + - api.MediaSession + - api.MediaSession.metadata + - api.MediaSession.playbackState + - api.MediaSession.setActionHandler + - api.MediaSession.setActionHandler.hangup_type + - api.MediaSession.setActionHandler.nextslide_type + - api.MediaSession.setActionHandler.nexttrack_type + - api.MediaSession.setActionHandler.pause_type + - api.MediaSession.setActionHandler.play_type + - api.MediaSession.setActionHandler.previousslide_type + - api.MediaSession.setActionHandler.previoustrack_type + - api.MediaSession.setActionHandler.seekbackward_type + - api.MediaSession.setActionHandler.seekforward_type + - api.MediaSession.setActionHandler.seekto_type + - api.MediaSession.setActionHandler.skipad_type + - api.MediaSession.setActionHandler.stop_type + - api.MediaSession.setActionHandler.togglecamera_type + - api.MediaSession.setActionHandler.togglemicrophone_type + - api.MediaSession.setCameraActive + - api.MediaSession.setMicrophoneActive + - api.MediaSession.setPositionState + - api.Navigator.mediaSession diff --git a/features/media-session.yml.dist b/features/media-session.yml.dist index 4cc248be5ef..26196fe57c2 100644 --- a/features/media-session.yml.dist +++ b/features/media-session.yml.dist @@ -58,3 +58,73 @@ compat_features: - api.MediaSession.setActionHandler.previoustrack_type - api.MediaSession.setActionHandler.seekbackward_type - api.MediaSession.setActionHandler.seekforward_type + + # baseline: false + # support: + # chrome: "77" + # chrome_android: "77" + # edge: "79" + # firefox: "82" + # safari: "15" + # safari_ios: "15" + - api.MediaSession.setActionHandler.stop_type + + # baseline: false + # support: + # chrome: "78" + # chrome_android: "78" + # edge: "79" + # firefox: "82" + # safari: "15" + # safari_ios: "15" + - api.MediaSession.setActionHandler.seekto_type + + # baseline: false + # support: + # chrome: "81" + # chrome_android: "57" + # edge: "81" + # firefox: "82" + # safari: "15" + # safari_ios: "15" + - api.MediaSession.setPositionState + + # baseline: false + # support: + # chrome: "128" + # chrome_android: "128" + # edge: "128" + # firefox: "82" + # safari: "15" + # safari_ios: "15" + - api.MediaSession.setActionHandler.skipad_type + + # baseline: false + # support: + # chrome: "93" + # chrome_android: "93" + # edge: "93" + - api.MediaSession.setActionHandler.hangup_type + - api.MediaSession.setActionHandler.togglecamera_type + - api.MediaSession.setActionHandler.togglemicrophone_type + - api.MediaSession.setCameraActive + - api.MediaSession.setMicrophoneActive + + # baseline: false + # support: + # chrome: "111" + # chrome_android: "111" + # edge: "111" + - api.MediaSession.setActionHandler.nextslide_type + - api.MediaSession.setActionHandler.previousslide_type + + # baseline: false + # support: + # chrome: "127" + # chrome_android: "127" + # edge: "127" + - api.ChapterInformation + - api.ChapterInformation.artwork + - api.ChapterInformation.startTime + - api.ChapterInformation.title + - api.MediaMetadata.chapterInfo diff --git a/features/media-source.yml b/features/media-source.yml index fca25582d33..88b8646dc9b 100644 --- a/features/media-source.yml +++ b/features/media-source.yml @@ -2,3 +2,76 @@ name: Media source description: The `MediaSource` API is a custom data source for media elements commonly used for adaptive streaming. Also known as Media Source Extensions (MSE). spec: https://w3c.github.io/media-source/ caniuse: mediasource +status: + compute_from: api.MediaSource +compat_features: + - api.AudioTrack.sourceBuffer + - api.BufferedChangeEvent + - api.BufferedChangeEvent.BufferedChangeEvent + - api.BufferedChangeEvent.addedRanges + - api.BufferedChangeEvent.removedRanges + - api.HTMLMediaElement.srcObject + - api.MediaSource + - api.MediaSource.MediaSource + - api.MediaSource.activeSourceBuffers + - api.MediaSource.addSourceBuffer + - api.MediaSource.canConstructInDedicatedWorker_static + - api.MediaSource.clearLiveSeekableRange + - api.MediaSource.duration + - api.MediaSource.endOfStream + - api.MediaSource.handle + - api.MediaSource.isTypeSupported_static + - api.MediaSource.readyState + - api.MediaSource.removeSourceBuffer + - api.MediaSource.setLiveSeekableRange + - api.MediaSource.sourceBuffers + - api.MediaSource.sourceclose_event + - api.MediaSource.sourceended_event + - api.MediaSource.sourceopen_event + - api.MediaSource.worker_support + - api.MediaSourceHandle + - api.SourceBuffer + - api.SourceBuffer.abort + - api.SourceBuffer.abort.worker_support + - api.SourceBuffer.abort_event + - api.SourceBuffer.abort_event.worker_support + - api.SourceBuffer.appendBuffer + - api.SourceBuffer.appendBuffer.worker_support + - api.SourceBuffer.appendWindowEnd + - api.SourceBuffer.appendWindowEnd.worker_support + - api.SourceBuffer.appendWindowStart + - api.SourceBuffer.appendWindowStart.worker_support + - api.SourceBuffer.audioTracks + - api.SourceBuffer.audioTracks.worker_support + - api.SourceBuffer.buffered + - api.SourceBuffer.buffered.worker_support + - api.SourceBuffer.changeType + - api.SourceBuffer.changeType.worker_support + - api.SourceBuffer.error_event + - api.SourceBuffer.error_event.worker_support + - api.SourceBuffer.mode + - api.SourceBuffer.mode.worker_support + - api.SourceBuffer.remove + - api.SourceBuffer.remove.worker_support + - api.SourceBuffer.textTracks + - api.SourceBuffer.timestampOffset + - api.SourceBuffer.timestampOffset.worker_support + - api.SourceBuffer.update_event + - api.SourceBuffer.update_event.worker_support + - api.SourceBuffer.updateend_event + - api.SourceBuffer.updateend_event.worker_support + - api.SourceBuffer.updatestart_event + - api.SourceBuffer.updatestart_event.worker_support + - api.SourceBuffer.updating + - api.SourceBuffer.updating.worker_support + - api.SourceBuffer.videoTracks + - api.SourceBuffer.videoTracks.worker_support + - api.SourceBufferList + - api.SourceBufferList.addsourcebuffer_event + - api.SourceBufferList.addsourcebuffer_event.worker_support + - api.SourceBufferList.length + - api.SourceBufferList.length.worker_support + - api.SourceBufferList.removesourcebuffer_event + - api.SourceBufferList.removesourcebuffer_event.worker_support + - api.TextTrack.sourceBuffer + - api.VideoTrack.sourceBuffer diff --git a/features/media-source.yml.dist b/features/media-source.yml.dist index 0d4e0b00267..2f188ad9e50 100644 --- a/features/media-source.yml.dist +++ b/features/media-source.yml.dist @@ -8,9 +8,10 @@ status: chrome_android: "31" edge: "12" firefox: "42" - firefox_android: "42" + firefox_android: "41" safari: "8" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "31" @@ -20,9 +21,15 @@ compat_features: # firefox_android: "41" # safari: "8" - api.MediaSource + - api.MediaSource.activeSourceBuffers + - api.MediaSource.addSourceBuffer + - api.MediaSource.duration + - api.MediaSource.endOfStream + - api.MediaSource.isTypeSupported_static + - api.MediaSource.removeSourceBuffer + - api.MediaSource.sourceBuffers - api.SourceBufferList - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "31" @@ -32,3 +39,168 @@ compat_features: # firefox_android: "42" # safari: "8" - api.SourceBuffer + - api.SourceBuffer.abort + + # baseline: false + # support: + # chrome: "31" + # chrome_android: "33" + # edge: "12" + # firefox: "42" + # firefox_android: "41" + # safari: "8" + - api.MediaSource.MediaSource + - api.MediaSource.readyState + - api.SourceBufferList.length + + # baseline: false + # support: + # chrome: "31" + # chrome_android: "33" + # edge: "12" + # firefox: "42" + # firefox_android: "42" + # safari: "8" + - api.SourceBuffer.appendBuffer + - api.SourceBuffer.appendWindowEnd + - api.SourceBuffer.appendWindowStart + - api.SourceBuffer.buffered + - api.SourceBuffer.mode + - api.SourceBuffer.remove + - api.SourceBuffer.timestampOffset + - api.SourceBuffer.updating + + # baseline: false + # support: + # chrome: "53" + # chrome_android: "53" + # edge: "17" + # firefox: "42" + # firefox_android: "41" + # safari: "10.1" + - api.MediaSource.sourceended_event + - api.MediaSource.sourceopen_event + - api.SourceBufferList.addsourcebuffer_event + - api.SourceBufferList.removesourcebuffer_event + + # baseline: false + # support: + # chrome: "53" + # chrome_android: "53" + # edge: "17" + # firefox: "42" + # firefox_android: "42" + # safari: "10.1" + - api.SourceBuffer.abort_event + - api.SourceBuffer.error_event + - api.SourceBuffer.update_event + - api.SourceBuffer.updateend_event + - api.SourceBuffer.updatestart_event + + # baseline: false + # support: + # chrome: "53" + # chrome_android: "53" + # edge: "17" + # firefox: "87" + # firefox_android: "87" + # safari: "10.1" + - api.MediaSource.sourceclose_event + + # baseline: false + # support: + # chrome: "62" + # chrome_android: "62" + # edge: "17" + # firefox: "50" + # firefox_android: "50" + # safari: "10.1" + - api.MediaSource.clearLiveSeekableRange + - api.MediaSource.setLiveSeekableRange + + # baseline: false + # support: + # chrome: "70" + # chrome_android: "70" + # edge: "79" + # firefox: "63" + # firefox_android: "63" + # safari: "12.1" + - api.SourceBuffer.changeType + + # baseline: false + # support: + # chrome: "108" + # chrome_android: "108" + # edge: "108" + # safari: "18" + # safari_ios: "18" + - api.MediaSourceHandle + + # baseline: false + # support: + # chrome: "108" + # chrome_android: "108" + # edge: "108" + # safari: "18" + - api.MediaSource.canConstructInDedicatedWorker_static + - api.MediaSource.handle + + # baseline: false + # support: + # chrome: "108" + # chrome_android: "108" + # edge: "108" + - api.MediaSource.worker_support + - api.SourceBuffer.abort.worker_support + - api.SourceBuffer.abort_event.worker_support + - api.SourceBuffer.appendBuffer.worker_support + - api.SourceBuffer.appendWindowEnd.worker_support + - api.SourceBuffer.appendWindowStart.worker_support + - api.SourceBuffer.buffered.worker_support + - api.SourceBuffer.changeType.worker_support + - api.SourceBuffer.error_event.worker_support + - api.SourceBuffer.mode.worker_support + - api.SourceBuffer.remove.worker_support + - api.SourceBuffer.timestampOffset.worker_support + - api.SourceBuffer.update_event.worker_support + - api.SourceBuffer.updateend_event.worker_support + - api.SourceBuffer.updatestart_event.worker_support + - api.SourceBuffer.updating.worker_support + - api.SourceBufferList.addsourcebuffer_event.worker_support + - api.SourceBufferList.length.worker_support + - api.SourceBufferList.removesourcebuffer_event.worker_support + + # baseline: false + # support: + # safari: "11" + # safari_ios: "11" + - api.HTMLMediaElement.srcObject + + # baseline: false + # support: + # safari: "17" + # safari_ios: "17.1" + - api.BufferedChangeEvent + - api.BufferedChangeEvent.BufferedChangeEvent + - api.BufferedChangeEvent.addedRanges + - api.BufferedChangeEvent.removedRanges + + # baseline: false + # support: + # safari: "7" + - api.VideoTrack.sourceBuffer + + # baseline: false + # support: + # safari: "8" + - api.AudioTrack.sourceBuffer + - api.SourceBuffer.audioTracks + - api.SourceBuffer.textTracks + - api.SourceBuffer.videoTracks + - api.TextTrack.sourceBuffer + + # baseline: false + # support: {} + - api.SourceBuffer.audioTracks.worker_support + - api.SourceBuffer.videoTracks.worker_support diff --git a/features/draft/spec/mediastream-recording.yml b/features/mediastream-recording.yml similarity index 78% rename from features/draft/spec/mediastream-recording.yml rename to features/mediastream-recording.yml index 6c93bee5a45..87b3d3de898 100644 --- a/features/draft/spec/mediastream-recording.yml +++ b/features/mediastream-recording.yml @@ -1,6 +1,5 @@ -draft_date: 2024-10-21 -name: MediaStream Recording -description: TODO +name: MediaStream recording +description: The `MediaRecorder` API captures data generated by `MediaStream` or `HTMLMediaElement` objects for analysis, processing, or saving to disk. Also known as the Media Recording API or the MediaRecorder API. spec: https://w3c.github.io/mediacapture-record/ compat_features: - api.BlobEvent diff --git a/features/draft/spec/mediastream-recording.yml.dist b/features/mediastream-recording.yml.dist similarity index 100% rename from features/draft/spec/mediastream-recording.yml.dist rename to features/mediastream-recording.yml.dist diff --git a/features/draft/spec/mediacapture-region.yml b/features/region-capture.yml similarity index 53% rename from features/draft/spec/mediacapture-region.yml rename to features/region-capture.yml index 0065eaf21e0..a59ca63c531 100644 --- a/features/draft/spec/mediacapture-region.yml +++ b/features/region-capture.yml @@ -1,6 +1,5 @@ -draft_date: 2024-09-09 -name: Region Capture -description: TODO +name: Region capture +description: The `CropTarget` API crops an element from a video track derived from display-capture of the active browser tab. For example, you can crop out video conferencing during screen sharing. spec: https://w3c.github.io/mediacapture-region/ compat_features: - api.BrowserCaptureMediaStreamTrack diff --git a/features/draft/spec/mediacapture-region.yml.dist b/features/region-capture.yml.dist similarity index 88% rename from features/draft/spec/mediacapture-region.yml.dist rename to features/region-capture.yml.dist index d2a2ff57d15..c0bc52bef28 100644 --- a/features/draft/spec/mediacapture-region.yml.dist +++ b/features/region-capture.yml.dist @@ -1,4 +1,4 @@ -# Generated from: mediacapture-region.yml +# Generated from: region-capture.yml # Do not edit this file by hand. Edit the source file instead! status: