From c39188657c7057e2b56892f96b0515db5136fa53 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 15:07:51 +0100 Subject: [PATCH 01/24] Add more media keys and features --- .../{draft/spec => }/media-capabilities.yml | 0 .../spec => }/media-capabilities.yml.dist | 0 ...re-region.yml => media-capture-region.yml} | 0 ...yml.dist => media-capture-region.yml.dist} | 2 +- .../spec => }/media-playback-quality.yml | 0 .../spec => }/media-playback-quality.yml.dist | 0 ...ream-recording.yml => media-recording.yml} | 0 ...ding.yml.dist => media-recording.yml.dist} | 2 +- features/media-session.yml | 34 ++++ features/media-session.yml.dist | 80 +++++++- features/media-source.yml | 71 +++++++ features/media-source.yml.dist | 182 +++++++++++++++++- ...acapture-streams.yml => media-streams.yml} | 1 - ...treams.yml.dist => media-streams.yml.dist} | 2 +- ...ture-transform.yml => media-transform.yml} | 0 ...form.yml.dist => media-transform.yml.dist} | 2 +- 16 files changed, 356 insertions(+), 20 deletions(-) rename features/{draft/spec => }/media-capabilities.yml (100%) rename features/{draft/spec => }/media-capabilities.yml.dist (100%) rename features/{draft/spec/mediacapture-region.yml => media-capture-region.yml} (100%) rename features/{draft/spec/mediacapture-region.yml.dist => media-capture-region.yml.dist} (88%) rename features/{draft/spec => }/media-playback-quality.yml (100%) rename features/{draft/spec => }/media-playback-quality.yml.dist (100%) rename features/{draft/spec/mediastream-recording.yml => media-recording.yml} (100%) rename features/{draft/spec/mediastream-recording.yml.dist => media-recording.yml.dist} (98%) rename features/{draft/spec/mediacapture-streams.yml => media-streams.yml} (99%) rename features/{draft/spec/mediacapture-streams.yml.dist => media-streams.yml.dist} (99%) rename features/{draft/spec/mediacapture-transform.yml => media-transform.yml} (100%) rename features/{draft/spec/mediacapture-transform.yml.dist => media-transform.yml.dist} (91%) diff --git a/features/draft/spec/media-capabilities.yml b/features/media-capabilities.yml similarity index 100% rename from features/draft/spec/media-capabilities.yml rename to features/media-capabilities.yml diff --git a/features/draft/spec/media-capabilities.yml.dist b/features/media-capabilities.yml.dist similarity index 100% rename from features/draft/spec/media-capabilities.yml.dist rename to features/media-capabilities.yml.dist diff --git a/features/draft/spec/mediacapture-region.yml b/features/media-capture-region.yml similarity index 100% rename from features/draft/spec/mediacapture-region.yml rename to features/media-capture-region.yml diff --git a/features/draft/spec/mediacapture-region.yml.dist b/features/media-capture-region.yml.dist similarity index 88% rename from features/draft/spec/mediacapture-region.yml.dist rename to features/media-capture-region.yml.dist index d2a2ff57d15..c2d8ab8716e 100644 --- a/features/draft/spec/mediacapture-region.yml.dist +++ b/features/media-capture-region.yml.dist @@ -1,4 +1,4 @@ -# Generated from: mediacapture-region.yml +# Generated from: media-capture-region.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/draft/spec/media-playback-quality.yml b/features/media-playback-quality.yml similarity index 100% rename from features/draft/spec/media-playback-quality.yml rename to features/media-playback-quality.yml 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/draft/spec/mediastream-recording.yml b/features/media-recording.yml similarity index 100% rename from features/draft/spec/mediastream-recording.yml rename to features/media-recording.yml diff --git a/features/draft/spec/mediastream-recording.yml.dist b/features/media-recording.yml.dist similarity index 98% rename from features/draft/spec/mediastream-recording.yml.dist rename to features/media-recording.yml.dist index 025cd175e92..ad5b1872b43 100644 --- a/features/draft/spec/mediastream-recording.yml.dist +++ b/features/media-recording.yml.dist @@ -1,4 +1,4 @@ -# Generated from: mediastream-recording.yml +# Generated from: media-recording.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/media-session.yml b/features/media-session.yml index 65b8f63ac0a..8384bcd22e7 100644 --- a/features/media-session.yml +++ b/features/media-session.yml @@ -1,3 +1,37 @@ 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/ +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..dfa5d4bfc41 100644 --- a/features/media-session.yml.dist +++ b/features/media-session.yml.dist @@ -4,12 +4,9 @@ status: baseline: false support: - chrome: "73" - chrome_android: "57" - edge: "79" - firefox: "82" - safari: "15" - safari_ios: "15" + chrome: "128" + chrome_android: "128" + edge: "128" compat_features: # baseline: high # baseline_low_date: 2021-09-20 @@ -39,7 +36,6 @@ compat_features: - api.MediaMetadata.artwork - api.MediaMetadata.title - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "73" @@ -58,3 +54,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..df6751930f6 100644 --- a/features/media-source.yml +++ b/features/media-source.yml @@ -2,3 +2,74 @@ 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 +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..997c7b1a424 100644 --- a/features/media-source.yml.dist +++ b/features/media-source.yml.dist @@ -3,13 +3,7 @@ status: baseline: false - support: - chrome: "31" - chrome_android: "31" - edge: "12" - firefox: "42" - firefox_android: "42" - safari: "8" + support: {} compat_features: # baseline: false # support: @@ -20,9 +14,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 +32,169 @@ 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 + + # ⬇️ Same status as overall feature ⬇️ + # baseline: false + # support: {} + - api.SourceBuffer.audioTracks.worker_support + - api.SourceBuffer.videoTracks.worker_support diff --git a/features/draft/spec/mediacapture-streams.yml b/features/media-streams.yml similarity index 99% rename from features/draft/spec/mediacapture-streams.yml rename to features/media-streams.yml index c200ad08ff3..8533c294344 100644 --- a/features/draft/spec/mediacapture-streams.yml +++ b/features/media-streams.yml @@ -56,7 +56,6 @@ compat_features: - 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 diff --git a/features/draft/spec/mediacapture-streams.yml.dist b/features/media-streams.yml.dist similarity index 99% rename from features/draft/spec/mediacapture-streams.yml.dist rename to features/media-streams.yml.dist index d54eb2979ca..8bf6c4e4fc9 100644 --- a/features/draft/spec/mediacapture-streams.yml.dist +++ b/features/media-streams.yml.dist @@ -1,4 +1,4 @@ -# Generated from: mediacapture-streams.yml +# Generated from: media-streams.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/draft/spec/mediacapture-transform.yml b/features/media-transform.yml similarity index 100% rename from features/draft/spec/mediacapture-transform.yml rename to features/media-transform.yml diff --git a/features/draft/spec/mediacapture-transform.yml.dist b/features/media-transform.yml.dist similarity index 91% rename from features/draft/spec/mediacapture-transform.yml.dist rename to features/media-transform.yml.dist index dc92e3c59f6..beb5e41fada 100644 --- a/features/draft/spec/mediacapture-transform.yml.dist +++ b/features/media-transform.yml.dist @@ -1,4 +1,4 @@ -# Generated from: mediacapture-transform.yml +# Generated from: media-transform.yml # Do not edit this file by hand. Edit the source file instead! status: From c54d49e5ecf08791756a19ac9262816a923798fc Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 15:20:14 +0100 Subject: [PATCH 02/24] more --- features/media-capabilities.yml | 10 +++++++--- features/media-capabilities.yml.dist | 17 +++++++++++------ features/media-capture-region.yml | 5 ++--- features/media-playback-quality.yml | 5 ++--- 4 files changed, 22 insertions(+), 15 deletions(-) diff --git a/features/media-capabilities.yml b/features/media-capabilities.yml index 8e6682992af..c9d9360d74a 100644 --- a/features/media-capabilities.yml +++ b/features/media-capabilities.yml @@ -1,7 +1,11 @@ -draft_date: 2024-09-09 -name: Media Capabilities -description: TODO +name: Media capabilities +description: The `MediaCapabilities` API lets you query the decoding abilities of the device, system and browser about supported codecs, resolutions, and bitrates. spec: https://w3c.github.io/media-capabilities/ +# Computing status because core feature is baseline but this decoding +# parameter is not, but doesn't prevent use. +# - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter +status: + compute_from: api.MediaCapabilities compat_features: - api.MediaCapabilities - api.MediaCapabilities.decodingInfo diff --git a/features/media-capabilities.yml.dist b/features/media-capabilities.yml.dist index c6b36118e8b..7cd1e61dbeb 100644 --- a/features/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 diff --git a/features/media-capture-region.yml b/features/media-capture-region.yml index 0065eaf21e0..38d76d9a46d 100644 --- a/features/media-capture-region.yml +++ b/features/media-capture-region.yml @@ -1,6 +1,5 @@ -draft_date: 2024-09-09 -name: Region Capture -description: TODO +name: Region capture +description: The Region Capture API lets you crop a video track derived from display-capture of the active browser tab. spec: https://w3c.github.io/mediacapture-region/ compat_features: - api.BrowserCaptureMediaStreamTrack diff --git a/features/media-playback-quality.yml b/features/media-playback-quality.yml index 17883c8020c..5a64076a798 100644 --- a/features/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 Media Playback Quality API contains metrics that can be used to determine the playback quality of a video. spec: https://w3c.github.io/media-playback-quality/ compat_features: - api.HTMLVideoElement.getVideoPlaybackQuality From 94abd9d6f86d0e391e18e17ae7dd994a329a81aa Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 16:02:48 +0100 Subject: [PATCH 03/24] pin to core feature --- features/media-recording.yml | 5 ++--- features/media-session.yml | 2 ++ features/media-session.yml.dist | 10 +++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/features/media-recording.yml b/features/media-recording.yml index 6c93bee5a45..1b8d4553cf9 100644 --- a/features/media-recording.yml +++ b/features/media-recording.yml @@ -1,6 +1,5 @@ -draft_date: 2024-10-21 -name: MediaStream Recording -description: TODO +name: MediaStream recording +description: The MediaStream Recording API captures the data generated by a `MediaStream` or `HTMLMediaElement` object for analysis, processing, or saving to disk. Also known as the Media Recording API or the MediaRecorder API, and is closely affiliated with the Media Capture and Streams API and the WebRTC API. spec: https://w3c.github.io/mediacapture-record/ compat_features: - api.BlobEvent diff --git a/features/media-session.yml b/features/media-session.yml index 8384bcd22e7..84bb8692f86 100644 --- a/features/media-session.yml +++ b/features/media-session.yml @@ -1,6 +1,8 @@ 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 diff --git a/features/media-session.yml.dist b/features/media-session.yml.dist index dfa5d4bfc41..26196fe57c2 100644 --- a/features/media-session.yml.dist +++ b/features/media-session.yml.dist @@ -4,9 +4,12 @@ status: baseline: false support: - chrome: "128" - chrome_android: "128" - edge: "128" + chrome: "73" + chrome_android: "57" + edge: "79" + firefox: "82" + safari: "15" + safari_ios: "15" compat_features: # baseline: high # baseline_low_date: 2021-09-20 @@ -36,6 +39,7 @@ compat_features: - api.MediaMetadata.artwork - api.MediaMetadata.title + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "73" From 3e4f00972f182ba37e635ec80ace921ce2a0cac2 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 16:05:40 +0100 Subject: [PATCH 04/24] pin to core feature --- features/media-source.yml | 2 ++ features/media-source.yml.dist | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/features/media-source.yml b/features/media-source.yml index df6751930f6..88b8646dc9b 100644 --- a/features/media-source.yml +++ b/features/media-source.yml @@ -2,6 +2,8 @@ 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 diff --git a/features/media-source.yml.dist b/features/media-source.yml.dist index 997c7b1a424..2f188ad9e50 100644 --- a/features/media-source.yml.dist +++ b/features/media-source.yml.dist @@ -3,8 +3,15 @@ status: baseline: false - support: {} + support: + chrome: "31" + chrome_android: "31" + edge: "12" + firefox: "42" + firefox_android: "41" + safari: "8" compat_features: + # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "31" @@ -193,7 +200,6 @@ compat_features: - api.SourceBuffer.videoTracks - api.TextTrack.sourceBuffer - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: {} - api.SourceBuffer.audioTracks.worker_support From 44ea2ac194df4255bd4bc3ba18626b49c57c1694 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 16:10:24 +0100 Subject: [PATCH 05/24] more capabilities keys --- features/media-capabilities.yml | 2 ++ features/media-capabilities.yml.dist | 21 +++++++++++++++++++++ features/media-streams.yml | 2 -- features/media-streams.yml.dist | 21 --------------------- 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/features/media-capabilities.yml b/features/media-capabilities.yml index c9d9360d74a..3099b8c33cb 100644 --- a/features/media-capabilities.yml +++ b/features/media-capabilities.yml @@ -7,9 +7,11 @@ spec: https://w3c.github.io/media-capabilities/ status: compute_from: api.MediaCapabilities compat_features: + - api.InputDeviceInfo.getCapabilities - api.MediaCapabilities - api.MediaCapabilities.decodingInfo - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter - api.MediaCapabilities.encodingInfo + - api.MediaStreamTrack.getCapabilities - api.Navigator.mediaCapabilities - api.WorkerNavigator.mediaCapabilities diff --git a/features/media-capabilities.yml.dist b/features/media-capabilities.yml.dist index 7cd1e61dbeb..762cb32464a 100644 --- a/features/media-capabilities.yml.dist +++ b/features/media-capabilities.yml.dist @@ -56,6 +56,27 @@ 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: "67" + # chrome_android: "67" + # edge: "79" + # safari: "17" + # safari_ios: "17" + - api.InputDeviceInfo.getCapabilities + # baseline: false # support: # chrome: "80" diff --git a/features/media-streams.yml b/features/media-streams.yml index 8533c294344..79ed6057889 100644 --- a/features/media-streams.yml +++ b/features/media-streams.yml @@ -4,7 +4,6 @@ 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 @@ -37,7 +36,6 @@ compat_features: - 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 diff --git a/features/media-streams.yml.dist b/features/media-streams.yml.dist index 8bf6c4e4fc9..5ac7c6a4498 100644 --- a/features/media-streams.yml.dist +++ b/features/media-streams.yml.dist @@ -331,18 +331,6 @@ compat_features: - 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" @@ -412,15 +400,6 @@ compat_features: # 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" From 9ed7f0f2c008e4c86e1a5aec0d8a7cbea38706ee Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 16:26:00 +0100 Subject: [PATCH 06/24] merge streams into capture --- features/media-capture.yml | 69 ++++++ features/media-capture.yml.dist | 418 +++++++++++++++++++++++++++++++ features/media-streams.yml | 75 ------ features/media-streams.yml.dist | 426 -------------------------------- 4 files changed, 487 insertions(+), 501 deletions(-) delete mode 100644 features/media-streams.yml delete mode 100644 features/media-streams.yml.dist 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/media-streams.yml b/features/media-streams.yml deleted file mode 100644 index 79ed6057889..00000000000 --- a/features/media-streams.yml +++ /dev/null @@ -1,75 +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.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.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/media-streams.yml.dist b/features/media-streams.yml.dist deleted file mode 100644 index 5ac7c6a4498..00000000000 --- a/features/media-streams.yml.dist +++ /dev/null @@ -1,426 +0,0 @@ -# Generated from: media-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: 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 From e26492a4c63ca9c93a3da0c84efea3bfc510c10f Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 17:35:04 +0100 Subject: [PATCH 07/24] desc improvements --- features/media-playback-quality.yml | 2 +- features/media-recording.yml | 2 +- features/media-transform.yml | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/features/media-playback-quality.yml b/features/media-playback-quality.yml index 5a64076a798..b96209b5fba 100644 --- a/features/media-playback-quality.yml +++ b/features/media-playback-quality.yml @@ -1,5 +1,5 @@ name: Media playback quality -description: The Media Playback Quality API contains metrics that can be used to determine the playback quality of a video. +description: The Media Playback Quality API contains metrics that can be used to determine the playback quality of a video, such as the creation time, and how many frames were dropped. spec: https://w3c.github.io/media-playback-quality/ compat_features: - api.HTMLVideoElement.getVideoPlaybackQuality diff --git a/features/media-recording.yml b/features/media-recording.yml index 1b8d4553cf9..d488a2657ef 100644 --- a/features/media-recording.yml +++ b/features/media-recording.yml @@ -1,5 +1,5 @@ name: MediaStream recording -description: The MediaStream Recording API captures the data generated by a `MediaStream` or `HTMLMediaElement` object for analysis, processing, or saving to disk. Also known as the Media Recording API or the MediaRecorder API, and is closely affiliated with the Media Capture and Streams API and the WebRTC API. +description: The MediaStream Recording API captures the data generated by a `MediaStream` or `HTMLMediaElement` object for analysis, processing, or saving to disk. It is also known as the Media Recording API or the MediaRecorder API, and is closely affiliated with the Media Capture and Streams API and the WebRTC API. spec: https://w3c.github.io/mediacapture-record/ compat_features: - api.BlobEvent diff --git a/features/media-transform.yml b/features/media-transform.yml index d1b3c25e188..a5b5f0be767 100644 --- a/features/media-transform.yml +++ b/features/media-transform.yml @@ -1,6 +1,5 @@ -draft_date: 2024-09-09 name: MediaStreamTrack Insertable Media Processing using Streams -description: TODO +description: The MediaStreamTrack Insertable Media Processing using Streams API, also known as MIMPuS, gives direct access to media streams for manipulations such as merging streams, real time effects, and content overlays. spec: https://w3c.github.io/mediacapture-transform/ compat_features: - api.MediaStreamTrackProcessor From 3e4a78b2b7cba306652b7fbb794859fbe8b9b22e Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 17:37:38 +0100 Subject: [PATCH 08/24] desc length fix --- features/media-recording.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-recording.yml b/features/media-recording.yml index d488a2657ef..a5bf394fe6e 100644 --- a/features/media-recording.yml +++ b/features/media-recording.yml @@ -1,5 +1,5 @@ name: MediaStream recording -description: The MediaStream Recording API captures the data generated by a `MediaStream` or `HTMLMediaElement` object for analysis, processing, or saving to disk. It is also known as the Media Recording API or the MediaRecorder API, and is closely affiliated with the Media Capture and Streams API and the WebRTC API. +description: The MediaStream Recording API captures the data generated by a `MediaStream` or `HTMLMediaElement` object for analysis, processing, or saving to disk. It's also known as the Media Recording API or the MediaRecorder API, and is closely affiliated with the Media Capture and Streams API and the WebRTC API. spec: https://w3c.github.io/mediacapture-record/ compat_features: - api.BlobEvent From 0e2b29781ec00c2bef662848e954d09defc1fbb7 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 17:51:17 +0100 Subject: [PATCH 09/24] name fix --- features/media-transform.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-transform.yml b/features/media-transform.yml index a5b5f0be767..503193deb43 100644 --- a/features/media-transform.yml +++ b/features/media-transform.yml @@ -1,4 +1,4 @@ -name: MediaStreamTrack Insertable Media Processing using Streams +name: MediaStreamTrack insertable media processing using streams description: The MediaStreamTrack Insertable Media Processing using Streams API, also known as MIMPuS, gives direct access to media streams for manipulations such as merging streams, real time effects, and content overlays. spec: https://w3c.github.io/mediacapture-transform/ compat_features: From db8b7f4238d4df0e8b63e6361b6acd01e25bb856 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 27 Nov 2024 18:46:41 +0100 Subject: [PATCH 10/24] add eme --- ...crypted-media-2.yml => encrypted-media.yml} | 7 ++++--- ...dia-2.yml.dist => encrypted-media.yml.dist} | 18 ++++++++++++------ 2 files changed, 16 insertions(+), 9 deletions(-) rename features/{draft/spec/encrypted-media-2.yml => encrypted-media.yml} (87%) rename features/{draft/spec/encrypted-media-2.yml.dist => encrypted-media.yml.dist} (93%) diff --git a/features/draft/spec/encrypted-media-2.yml b/features/encrypted-media.yml similarity index 87% rename from features/draft/spec/encrypted-media-2.yml rename to features/encrypted-media.yml index 2c26c3f85e6..6a91b7cf9de 100644 --- a/features/draft/spec/encrypted-media-2.yml +++ b/features/encrypted-media.yml @@ -1,7 +1,8 @@ -draft_date: 2024-10-28 -name: Encrypted Media Extensions -description: TODO +name: Encrypted media extensions +description: Encrypted Media Extensions control the playback of content which is subject to a digital restrictions management scheme. spec: https://w3c.github.io/encrypted-media/ +status: + compute_from: api.Navigator.requestMediaKeySystemAccess compat_features: - api.HTMLMediaElement.encrypted_event - api.HTMLMediaElement.mediaKeys diff --git a/features/draft/spec/encrypted-media-2.yml.dist b/features/encrypted-media.yml.dist similarity index 93% rename from features/draft/spec/encrypted-media-2.yml.dist rename to features/encrypted-media.yml.dist index 8c7b62188b5..33e4a2d7205 100644 --- a/features/draft/spec/encrypted-media-2.yml.dist +++ b/features/encrypted-media.yml.dist @@ -1,13 +1,20 @@ -# Generated from: encrypted-media-2.yml +# Generated from: encrypted-media.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 @@ -151,7 +158,6 @@ compat_features: # firefox_android: "128" - api.MediaKeys.getStatusForPolicy - # ⬇️ Same status as overall feature ⬇️ # baseline: false # support: # chrome: "88" From 8ee7b1b04a58d3ef60eb75ee260390c3ad6573b3 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:24:54 -0500 Subject: [PATCH 11/24] Update features/encrypted-media.yml Co-authored-by: Daniel D. Beck --- features/encrypted-media.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/encrypted-media.yml b/features/encrypted-media.yml index 6a91b7cf9de..daa89a37333 100644 --- a/features/encrypted-media.yml +++ b/features/encrypted-media.yml @@ -1,5 +1,5 @@ name: Encrypted media extensions -description: Encrypted Media Extensions control the playback of content which is subject to a digital restrictions management scheme. +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/ status: compute_from: api.Navigator.requestMediaKeySystemAccess From fecb38ebe3282ae9987d9c25c489a1c4993732ca Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:25:20 -0500 Subject: [PATCH 12/24] Update features/encrypted-media.yml Co-authored-by: Daniel D. Beck --- features/encrypted-media.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/features/encrypted-media.yml b/features/encrypted-media.yml index daa89a37333..fcda9250fa0 100644 --- a/features/encrypted-media.yml +++ b/features/encrypted-media.yml @@ -1,6 +1,7 @@ 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 compat_features: From 340822d92952dceaf047e17912871e92d6153951 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:25:34 -0500 Subject: [PATCH 13/24] Update features/encrypted-media.yml Co-authored-by: Daniel D. Beck --- features/encrypted-media.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/features/encrypted-media.yml b/features/encrypted-media.yml index fcda9250fa0..97d28e230ed 100644 --- a/features/encrypted-media.yml +++ b/features/encrypted-media.yml @@ -3,7 +3,9 @@ description: The `mediaKeys` property of `HTMLMediaElement` and the `navigator.r spec: https://w3c.github.io/encrypted-media/ caniuse: eme status: - compute_from: api.Navigator.requestMediaKeySystemAccess + compute_from: + - api.Navigator.requestMediaKeySystemAccess + - api.HTMLMediaElement.mediaKeys compat_features: - api.HTMLMediaElement.encrypted_event - api.HTMLMediaElement.mediaKeys From f47dfecc1fd00b0b96c239c411fc8d9034a8765c Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:25:46 -0500 Subject: [PATCH 14/24] Update features/media-capabilities.yml Co-authored-by: Daniel D. Beck --- features/media-capabilities.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-capabilities.yml b/features/media-capabilities.yml index 3099b8c33cb..5504221846c 100644 --- a/features/media-capabilities.yml +++ b/features/media-capabilities.yml @@ -1,5 +1,5 @@ name: Media capabilities -description: The `MediaCapabilities` API lets you query the decoding abilities of the device, system and browser about supported codecs, resolutions, and bitrates. +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 decoding # parameter is not, but doesn't prevent use. From 9af2b3fc2eab1a05c26fe14aa032d8c3b4079fb9 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:26:04 -0500 Subject: [PATCH 15/24] Update features/media-recording.yml Co-authored-by: Daniel D. Beck --- features/media-recording.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-recording.yml b/features/media-recording.yml index a5bf394fe6e..87b3d3de898 100644 --- a/features/media-recording.yml +++ b/features/media-recording.yml @@ -1,5 +1,5 @@ name: MediaStream recording -description: The MediaStream Recording API captures the data generated by a `MediaStream` or `HTMLMediaElement` object for analysis, processing, or saving to disk. It's also known as the Media Recording API or the MediaRecorder API, and is closely affiliated with the Media Capture and Streams API and the WebRTC API. +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 From ab244f4c3bd6723048e225636456ff46e220b2b6 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 10:26:20 -0500 Subject: [PATCH 16/24] Update features/media-transform.yml Co-authored-by: Daniel D. Beck --- features/media-transform.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-transform.yml b/features/media-transform.yml index 503193deb43..0bf54d4d519 100644 --- a/features/media-transform.yml +++ b/features/media-transform.yml @@ -1,4 +1,4 @@ -name: MediaStreamTrack insertable media processing using streams +name: Insertable streams for MediaStreamTrack description: The MediaStreamTrack Insertable Media Processing using Streams API, also known as MIMPuS, gives direct access to media streams for manipulations such as merging streams, real time effects, and content overlays. spec: https://w3c.github.io/mediacapture-transform/ compat_features: From 03d60529080a6b98684e8e990b205bf9c8f83488 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:41:38 -0500 Subject: [PATCH 17/24] Update features/media-transform.yml Co-authored-by: Daniel D. Beck --- features/media-transform.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-transform.yml b/features/media-transform.yml index 0bf54d4d519..d7ae1c486d3 100644 --- a/features/media-transform.yml +++ b/features/media-transform.yml @@ -1,5 +1,5 @@ name: Insertable streams for MediaStreamTrack -description: The MediaStreamTrack Insertable Media Processing using Streams API, also known as MIMPuS, gives direct access to media streams for manipulations such as merging streams, real time effects, and content overlays. +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 From f9e4c68997229107a32eb110a3b23941a513ee2f Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Tue, 14 Jan 2025 17:44:19 -0500 Subject: [PATCH 18/24] renames from review --- features/{encrypted-media.yml => encrypted-media-extensions.yml} | 0 ...crypted-media.yml.dist => encrypted-media-extensions.yml.dist} | 0 features/{media-transform.yml => insertable-streams.yml} | 0 .../{media-transform.yml.dist => insertable-streams.yml.dist} | 0 features/{media-recording.yml => mediastream-recording.yml} | 0 .../{media-recording.yml.dist => mediastream-recording.yml.dist} | 0 6 files changed, 0 insertions(+), 0 deletions(-) rename features/{encrypted-media.yml => encrypted-media-extensions.yml} (100%) rename features/{encrypted-media.yml.dist => encrypted-media-extensions.yml.dist} (100%) rename features/{media-transform.yml => insertable-streams.yml} (100%) rename features/{media-transform.yml.dist => insertable-streams.yml.dist} (100%) rename features/{media-recording.yml => mediastream-recording.yml} (100%) rename features/{media-recording.yml.dist => mediastream-recording.yml.dist} (100%) diff --git a/features/encrypted-media.yml b/features/encrypted-media-extensions.yml similarity index 100% rename from features/encrypted-media.yml rename to features/encrypted-media-extensions.yml diff --git a/features/encrypted-media.yml.dist b/features/encrypted-media-extensions.yml.dist similarity index 100% rename from features/encrypted-media.yml.dist rename to features/encrypted-media-extensions.yml.dist diff --git a/features/media-transform.yml b/features/insertable-streams.yml similarity index 100% rename from features/media-transform.yml rename to features/insertable-streams.yml diff --git a/features/media-transform.yml.dist b/features/insertable-streams.yml.dist similarity index 100% rename from features/media-transform.yml.dist rename to features/insertable-streams.yml.dist diff --git a/features/media-recording.yml b/features/mediastream-recording.yml similarity index 100% rename from features/media-recording.yml rename to features/mediastream-recording.yml diff --git a/features/media-recording.yml.dist b/features/mediastream-recording.yml.dist similarity index 100% rename from features/media-recording.yml.dist rename to features/mediastream-recording.yml.dist From 2710686e528b76a8bab5348b0d87fccf3abccea2 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Tue, 14 Jan 2025 17:45:21 -0500 Subject: [PATCH 19/24] redist --- features/encrypted-media-extensions.yml.dist | 2 +- features/insertable-streams.yml.dist | 2 +- features/mediastream-recording.yml.dist | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/features/encrypted-media-extensions.yml.dist b/features/encrypted-media-extensions.yml.dist index b33a41df202..489f8a32b2b 100644 --- a/features/encrypted-media-extensions.yml.dist +++ b/features/encrypted-media-extensions.yml.dist @@ -1,4 +1,4 @@ -# Generated from: encrypted-media.yml +# Generated from: encrypted-media-extensions.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/insertable-streams.yml.dist b/features/insertable-streams.yml.dist index beb5e41fada..eefece544c2 100644 --- a/features/insertable-streams.yml.dist +++ b/features/insertable-streams.yml.dist @@ -1,4 +1,4 @@ -# Generated from: media-transform.yml +# Generated from: insertable-streams.yml # Do not edit this file by hand. Edit the source file instead! status: diff --git a/features/mediastream-recording.yml.dist b/features/mediastream-recording.yml.dist index ad5b1872b43..025cd175e92 100644 --- a/features/mediastream-recording.yml.dist +++ b/features/mediastream-recording.yml.dist @@ -1,4 +1,4 @@ -# Generated from: media-recording.yml +# Generated from: mediastream-recording.yml # Do not edit this file by hand. Edit the source file instead! status: From d071b52220cc714117198ccafc2f6370592ec104 Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:46:04 -0500 Subject: [PATCH 20/24] Update features/media-capture-region.yml Co-authored-by: Daniel D. Beck --- features/media-capture-region.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-capture-region.yml b/features/media-capture-region.yml index 38d76d9a46d..a59ca63c531 100644 --- a/features/media-capture-region.yml +++ b/features/media-capture-region.yml @@ -1,5 +1,5 @@ name: Region capture -description: The Region Capture API lets you crop a video track derived from display-capture of the active browser tab. +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 From ac4a166b04c8be7910da6a4ca5ee70c4ef30a8cc Mon Sep 17 00:00:00 2001 From: Dietrich Ayala <50103+autonome@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:46:20 -0500 Subject: [PATCH 21/24] Update features/media-playback-quality.yml Co-authored-by: Daniel D. Beck --- features/media-playback-quality.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/media-playback-quality.yml b/features/media-playback-quality.yml index b96209b5fba..f73c32b180c 100644 --- a/features/media-playback-quality.yml +++ b/features/media-playback-quality.yml @@ -1,5 +1,5 @@ name: Media playback quality -description: The Media Playback Quality API contains metrics that can be used to determine the playback quality of a video, such as the creation time, and how many frames were dropped. +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 From 4e98b5f15dd84feb18c870e47083df781b6f06f2 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Tue, 14 Jan 2025 17:47:28 -0500 Subject: [PATCH 22/24] rename from review --- features/{media-capture-region.yml => region-capture.yml} | 0 .../{media-capture-region.yml.dist => region-capture.yml.dist} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename features/{media-capture-region.yml => region-capture.yml} (100%) rename features/{media-capture-region.yml.dist => region-capture.yml.dist} (100%) diff --git a/features/media-capture-region.yml b/features/region-capture.yml similarity index 100% rename from features/media-capture-region.yml rename to features/region-capture.yml diff --git a/features/media-capture-region.yml.dist b/features/region-capture.yml.dist similarity index 100% rename from features/media-capture-region.yml.dist rename to features/region-capture.yml.dist From a0a06d92f410d2f5785c3f79f9a0091498baecaa Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Tue, 14 Jan 2025 19:36:27 -0500 Subject: [PATCH 23/24] redist --- features/region-capture.yml.dist | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/region-capture.yml.dist b/features/region-capture.yml.dist index c2d8ab8716e..c0bc52bef28 100644 --- a/features/region-capture.yml.dist +++ b/features/region-capture.yml.dist @@ -1,4 +1,4 @@ -# Generated from: media-capture-region.yml +# Generated from: region-capture.yml # Do not edit this file by hand. Edit the source file instead! status: From f486b22acf55976713aa25dd38d2e4dacff92b88 Mon Sep 17 00:00:00 2001 From: dietrich ayala Date: Wed, 15 Jan 2025 12:33:16 -0500 Subject: [PATCH 24/24] move key from review --- features/encrypted-media-extensions.yml | 1 + features/encrypted-media-extensions.yml.dist | 9 +++++++++ features/media-capabilities.yml | 7 +++---- features/media-capabilities.yml.dist | 9 --------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/features/encrypted-media-extensions.yml b/features/encrypted-media-extensions.yml index 97d28e230ed..fde2dd5312f 100644 --- a/features/encrypted-media-extensions.yml +++ b/features/encrypted-media-extensions.yml @@ -11,6 +11,7 @@ compat_features: - 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/encrypted-media-extensions.yml.dist b/features/encrypted-media-extensions.yml.dist index 489f8a32b2b..9c459ffa3a7 100644 --- a/features/encrypted-media-extensions.yml.dist +++ b/features/encrypted-media-extensions.yml.dist @@ -169,6 +169,15 @@ compat_features: # firefox_android: "128" - api.MediaKeys.getStatusForPolicy + # 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/media-capabilities.yml b/features/media-capabilities.yml index 5504221846c..cb726dc21f2 100644 --- a/features/media-capabilities.yml +++ b/features/media-capabilities.yml @@ -1,16 +1,15 @@ 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 decoding -# parameter is not, but doesn't prevent use. -# - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter +# 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.decodingInfo.configuration_keySystemConfiguration_parameter - api.MediaCapabilities.encodingInfo - api.MediaStreamTrack.getCapabilities - api.Navigator.mediaCapabilities diff --git a/features/media-capabilities.yml.dist b/features/media-capabilities.yml.dist index 762cb32464a..0960c37ca44 100644 --- a/features/media-capabilities.yml.dist +++ b/features/media-capabilities.yml.dist @@ -76,12 +76,3 @@ compat_features: # safari: "17" # safari_ios: "17" - api.InputDeviceInfo.getCapabilities - - # baseline: false - # support: - # chrome: "80" - # chrome_android: "80" - # edge: "80" - # firefox: "129" - # firefox_android: "129" - - api.MediaCapabilities.decodingInfo.configuration_keySystemConfiguration_parameter