From fa57210048890555e714c0a94a08137e0da559a4 Mon Sep 17 00:00:00 2001
From: Jan-Ivar Bruaroey There are two dimensions related to the media flow for a
{{MediaStreamTrackState/"live"}} {{MediaStreamTrack}} : muted / not
muted, and enabled / disabled. Muted refers to the input to the
{{MediaStreamTrack}}. If live samples are not made
available to the {{MediaStreamTrack}} it is muted. Whenever the [=User Agent=] initiates such a change, it MUST queue a
task, using the user interaction task source, to [=set a track's muted
state=] to the state desired by the user. To set a track's muted state to
+ To set a track's muted state to
newState, the [=User Agent=] MUST run the following steps: There are two dimensions related to the media flow for a
{{MediaStreamTrackState/"live"}} {{MediaStreamTrack}} : muted / not
muted, and enabled / disabled. Muted refers to the input to the
{{MediaStreamTrack}}. If live samples are not made
available to the {{MediaStreamTrack}} it is muted. Whenever the [=User Agent=] initiates such a change, it MUST queue a
task, using the user interaction task source, to [=set a track's muted
state=] to the state desired by the user. To To set a track's muted state to
newState, the [=User Agent=] MUST run the following steps: There are two dimensions related to the media flow for a
{{MediaStreamTrackState/"live"}} {{MediaStreamTrack}} : muted / not
muted, and enabled / disabled. Muted refers to the input to the
{{MediaStreamTrack}}. If live samples are not made
available to the {{MediaStreamTrack}} it is muted. Whenever the [=User Agent=] initiates such a change, it MUST queue a
task, using the user interaction task source, to [=set a track's muted
state=] to the state desired by the user. To To set a track's muted state to
newState, the [=User Agent=] MUST run the following steps: There are two dimensions related to the media flow for a
{{MediaStreamTrackState/"live"}} {{MediaStreamTrack}} : muted / not
muted, and enabled / disabled. Muted refers to the input to the
{{MediaStreamTrack}}. If live samples are not made
available to the {{MediaStreamTrack}} it is muted. Whenever the [=User Agent=] initiates such a change, it MUST queue a
task, using the user interaction task source, to [=set a track's muted
state=] to the state desired by the user. To To set a track's muted state to
newState, the [=User Agent=] MUST run the following steps: [[\Muted]],
initialized to Media Flow
Media Flow
Media Flow
Media Flow
From 9f045ee6cd7efe5c855d76ee8d05dcf0a6b266a2 Mon Sep 17 00:00:00 2001
From: Jan-Ivar Bruaroey
Media Flow
Media Flow
From 7b87cc87990d24fa2dfb875caef1ccbcd5d16414 Mon Sep 17 00:00:00 2001
From: Jan-Ivar Bruaroey
Media Flow
Media Flow
From b3cd622539cf95858a0e017de23e29bab8235ac6 Mon Sep 17 00:00:00 2001
From: Dominique Hazael-Massieux
{{MediaStreamTrack}}
true
if source is
- [= muted =], and false
otherwise.false
otherwise.
In the live state, the track is active and media is available for use by consumers (but may be replaced by zero-information-content if the {{MediaStreamTrack}} is - [= muted =] or [= enabled | disabled =], see below).
+ [= MediaStreamTrack/muted =] or [= enabled | disabled =], see below).A muted or disabled {{MediaStreamTrack}} renders either silence (audio), black frames (video), or a zero-information-content equivalent. For example, a video element @@ -787,23 +787,23 @@
true
as soon as any
unstopped track connected to this device becomes un-muted or enabled
again.
- When a {{MediaStreamTrackState/"live"}}, [= track/muted | unmuted =], and +
When a {{MediaStreamTrackState/"live"}}, [= MediaStreamTrack/muted | unmuted =], and [= track/enabled =] track sourced by a device exposed by {{MediaDevices/getUserMedia()}} becomes either - [= track/muted =] or [= track/enabled | disabled =], + [= MediaStreamTrack/muted =] or [= track/enabled | disabled =], and this brings all tracks connected to the device (across all [=navigables=] the user agent operates) to be either muted, disabled, or stopped, then the UA SHOULD relinquish the device within 3 seconds while allowing time for a reasonably-observant user to become aware of the transition. The UA SHOULD attempt to reacquire the device as soon as any live track sourced by the device - becomes both [= track/muted | unmuted =] and + becomes both [= MediaStreamTrack/muted | unmuted =] and [= track/enabled =] again, provided that track's [=relevant global object=]'s [=associated `Document`=] [=Document/is in view=] at that time. If the document is not [=Document/is in view|in view=] at that time, - the UA SHOULD instead queue a task to mute the - track, and not queue a task to unmute it until + the UA SHOULD instead queue a task to [=MediaStreamTrack/muted|mute=] the + track, and not queue a task to [=MediaStreamTrack/muted|unmute=] it until the document comes [=Document/is in view|into view=]. If reacquiring the device fails, the UA MUST [= track ended by the User agent | end the track =] (The UA MAY end it earlier @@ -824,8 +824,8 @@
A {{MediaStreamTrack}} is [= track/muted =] - when the source is temporarily unable to +
A {{MediaStreamTrack}} is [= MediaStreamTrack/muted =] + when the source is muted, i.e. temporarily unable to provide the track with data. A track can be muted by a user. Often this action is outside the control of the application. This could be as a result of the user hitting a hardware switch or toggling a control in @@ -901,15 +901,15 @@
There are two dimensions related to the media flow for a {{MediaStreamTrackState/"live"}} {{MediaStreamTrack}} : muted / not muted, and enabled / disabled.
-Muted refers to the input to the {{MediaStreamTrack}}. Live samples MUST NOT be made available to a - {{MediaStreamTrack}} while it is [=muted=].
-{{Muted}} is outside the control of web applications, but can be observed by + {{MediaStreamTrack}} while it is [=MediaStreamTrack/muted=].
+The [=MediaStreamTrack/muted=] state is outside the control of web applications, but can be observed by the application by reading the {{MediaStreamTrack/muted}} attribute and listening to the associated events {{mute}} and {{unmute}}. The reasons for a {{MediaStreamTrack}} to be muted are defined by its source.
-For camera and microphone sources, the reasons to [=muted|mute=] are +
For camera and microphone sources, the reasons to [=source/muted|mute=] are [=implementation-defined=]. This allows user agents to implement privacy mitigations in situations like: the user pushing a physical mute button on the microphone, the user @@ -924,11 +924,11 @@
Whenever the [=User Agent=] initiates such an [= implementation-defined=] change for camera or microphone sources, it MUST queue a - task, using the user interaction task source, to [=set a track's muted + task, using the user interaction task source, to [=MediaStreamTrack/set a track's muted state=] to the state desired by the user.
To set a track's muted state to newState, the [=User Agent=] MUST run the following steps:
@@ -1051,7 +1051,7 @@The muted attribute - reflects whether the track is [= track/muted =]. It MUST return + reflects whether the track is [= MediaStreamTrack/muted =]. It MUST return [=this=].{{MediaStreamTrack/[[Muted]]}}.
If source is [=source/stopped=] or [=muted=], abort these steps.
+If source is [=source/stopped=] or [=source/muted=], abort these steps.
Let deviceId be source's device's deviceId.
@@ -4160,7 +4160,7 @@A track sourced by a camera or microphone may be - forcibly [= track/muted =] by a [=User Agent=] at any time, in order + forcibly [= MediaStreamTrack/muted =] by a [=User Agent=] at any time, in order to manage a user's privacy. However, doing so may create web compatibility issues, as well as leak information about user activity, so caution is advised. @@ -4189,8 +4189,8 @@
Best practice is to - [= muted | unmute =] a camera or microphone track it previously - [= muted =], in the following instances:
+ [= MediaStreamTrack/muted | unmute =] a camera or microphone track it previously + [= MediaStreamTrack/muted =], in the following instances:An OS-level event for which the [=User Agent=] already resumes media @@ -4202,7 +4202,7 @@
A web page comes [=Document/is in view|into view=] and has one or more enabled tracks that are also - [= muted =]. + [= MediaStreamTrack/muted =].
A {{MediaStream}} object is said to be active when it has at least one - {{MediaStreamTrack}} that has not [= track/ended =]. A {{MediaStream}} that does not - have any tracks or only has tracks that are [= track/ended =] + {{MediaStreamTrack}} that has not [= MediaStreamTrack/ended =]. A {{MediaStream}} that does not + have any tracks or only has tracks that are [= MediaStreamTrack/ended =] is inactive.
A {{MediaStream}} object is said to be audible when it has at least one {{MediaStreamTrack}} whose {{MediaStreamTrack/[[Kind]]}} is "audio" - that has not [= track/ended =]. A {{MediaStream}} that does not have any - audio tracks or only has audio tracks that are [= track/ended =] is + that has not [= MediaStreamTrack/ended =]. A {{MediaStream}} that does not have any + audio tracks or only has audio tracks that are [= MediaStreamTrack/ended =] is inaudible.
The [=User Agent=] may update a {{MediaStream}}'s [=track set=] in response to, for example, an external event. This specification does not specify any such cases, but other @@ -845,15 +845,15 @@
If all {{MediaStreamTrack}}s that are using the same - source are [= track/ended =], the source will be + source are [= MediaStreamTrack/ended =], the source will be [= source/stopped =].
After the application has invoked the {{MediaStreamTrack/stop()}} method on a {{MediaStreamTrack}} object, or once the [=source=] of a {{MediaStreamTrack}} permanently ends production of live samples to its tracks, whichever is sooner, a {{MediaStreamTrack}} is said to be - ended.
+ ended.For camera and microphone sources, the reasons for a source to - [=track/ended|end=] besides {{MediaStreamTrack/stop()}} are + [=MediaStreamTrack/ended|end=] besides {{MediaStreamTrack/stop()}} are [=implementation-defined=] (e.g., because the user rescinds the permission for the page to use the local camera, or because the User @@ -874,7 +874,7 @@
Notify track's {{MediaStreamTrack/[[Source]]}} that track is - [= track/ended =] so that the source may be [= source/stopped =], unless other + [= MediaStreamTrack/ended =] so that the source may be [= source/stopped =], unless other {{MediaStreamTrack}} objects depend on it.
Enabled/disabled on the other hand is +
Enabled/disabled on the other hand is available to the application to control (and observe) via the {{MediaStreamTrack/enabled}} attribute.
@@ -1044,7 +1044,7 @@Thus, after a - {{MediaStreamTrack}} has [= track/ended =], its {{MediaStreaMtrack/enabled}} attribute + {{MediaStreamTrack}} has [= MediaStreamTrack/ended =], its {{MediaStreaMtrack/enabled}} attribute still changes value when set; it just doesn't do anything with that new value.
@@ -1098,7 +1098,7 @@Notify track's source that track - is [= track/ended =].
+ is [= MediaStreamTrack/ended =].A source that is notified of a track ending will be [= source/stopped =], unless other {{MediaStreamTrack}} objects depend on @@ -1242,7 +1242,7 @@
The track has [= track/ended =] (the +
The track has [= MediaStreamTrack/ended =] (the track's underlying media source is no longer providing data, and will never provide more data for this track). Once a track enters this state, it never exits it.
From c198b10daffa9c55286c6e6e1a281c004eb0b9bc Mon Sep 17 00:00:00 2001 From: Dominique Hazael-MassieuxIn the live state, the track is active and media is available for use by consumers (but may be replaced by zero-information-content if the {{MediaStreamTrack}} is - [= MediaStreamTrack/muted =] or [= enabled | disabled =], see below).
+ [= MediaStreamTrack/muted =] or [= MediaStreamTrack/enabled | disabled =], see below).A muted or disabled {{MediaStreamTrack}} renders either silence (audio), black frames (video), or a zero-information-content equivalent. For example, a video element @@ -788,9 +788,9 @@
When a {{MediaStreamTrackState/"live"}}, [= MediaStreamTrack/muted | unmuted =], and - [= track/enabled =] track sourced by a device exposed + [= MediaStreamTrack/enabled =] track sourced by a device exposed by {{MediaDevices/getUserMedia()}} becomes either - [= MediaStreamTrack/muted =] or [= track/enabled | disabled =], + [= MediaStreamTrack/muted =] or [= MediaStreamTrack/enabled | disabled =], and this brings all tracks connected to the device (across all [=navigables=] the user agent operates) to be either muted, disabled, or stopped, then the UA SHOULD relinquish the device @@ -798,7 +798,7 @@
Applications are able to [= track/enabled | enable =] or +
Applications are able to [= MediaStreamTrack/enabled | enable =] or disable a {{MediaStreamTrack}} to prevent it from rendering media from the source. A muted track will however, regardless of the enabled state, render silence and blackness. A disabled track is @@ -1037,14 +1037,14 @@
The enabled - attribute controls the [= track/enabled =] state for the object.
+ attribute controls the [= MediaStreamTrack/enabled =] state for the object.On getting, [=this=].{{MediaStreamTrack/[[Enabled]]}} MUST be returned. On setting, [=this=].{{MediaStreamTrack/[[Enabled]]}} MUST be set to the new value.
Thus, after a - {{MediaStreamTrack}} has [= MediaStreamTrack/ended =], its {{MediaStreaMtrack/enabled}} attribute + {{MediaStreamTrack}} has [= MediaStreamTrack/ended =], its {{MediaStreamTrack/enabled}} attribute still changes value when set; it just doesn't do anything with that new value.
A web page not [=Document/is in view|in view=] - re-enables a track when all tracks from that - source are disabled, in order to delay + [=MediaStreamTrack/enabled|re-enables=] a track when all tracks from that + source are [=MediaStreamTrack/enabled|disabled=], in order to delay resumption of capture until the page [=Document/is in view=].
A web page comes [=Document/is in view|into view=] and - has one or more enabled tracks that are also + has one or more [=MediaStreamTrack/enabled=] tracks that are also [= MediaStreamTrack/muted =].
A {{MediaStream}} object is said to be active when it has at least one - {{MediaStreamTrack}} that has not [= MediaStreamTrack/ended =]. A {{MediaStream}} that does not + {{MediaStreamTrack}} that has not [=MediaStreamTrack/ended=]. A {{MediaStream}} that does not have any tracks or only has tracks that are [= MediaStreamTrack/ended =] is inactive.
A {{MediaStream}} object is said to be
Date: Mon, 22 Apr 2024 12:06:03 +0200
Subject: [PATCH 12/12] remove unneeded whtiespace
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Co-authored-by: Marcos Cáceres A {{MediaStream}} object is said to be audible when it has at least one
{{MediaStreamTrack}} whose {{MediaStreamTrack/[[Kind]]}} is "audio"
- that has not [= MediaStreamTrack/ended =]. A {{MediaStream}} that does not have any
- audio tracks or only has audio tracks that are [= MediaStreamTrack/ended =] is
+ that has not [=MediaStreamTrack/ended=]. A {{MediaStream}} that does not have any
+ audio tracks or only has audio tracks that are [=MediaStreamTrack/ended=] is
inaudible. The [=User Agent=] may update a {{MediaStream}}'s [=track set=] in response to, for example, an external
event. This specification does not specify any such cases, but other
{{MediaStream}}