- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Wed, 14 Sep 2011 21:09:22 +0200
- To: "public-webrtc@w3.org" <public-webrtc@w3.org>
- Message-ID: <4E70FBE2.7070500@alvestrand.no>
Hello,
speaking as a member of the Chrome WebRTC implementation team, a matter
for discussion:
In the current draft spec, the following text is found in section 3.1:
When a track in a|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|parentis
disabled, any|MediaStreamTrack
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastreamtrack>|objects
corresponding to the tracks in any|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|objects
that were created fromparentare disassociated from any track, and
must not be reused for tracks again. If a disabled track in
a|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|parentis
re-enabled, from the perspective of any|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|objects
that were created fromparentit is a new track and thus
new|MediaStreamTrack
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastreamtrack>|objects
must be created for the tracks that correspond to the re-enabled track.
The enabling and disabling of a MediaStreamTrack is done by writing to
its "enabled" attribute:
|enabled|of typeboolean
The|MediaStreamTrack.enabled|attribute, on getting, must return
the last value to which it was set. On setting, it must be set
to the new value, and then, if the|MediaStreamTrack
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastreamtrack>|object
is still associated with a track, must enable the track if the
new value is true, and disable it otherwise.
It's entirely unclear to us (the implementors working on the Chrome
implementation) what the purpose of this effect of disabling is, and in
several usages (such as temporarily turning off a track to e.g. mute
video or audio), it seems disruptive - since any other properties such
as SSRCs assigned to a MediaStreamTrack will have to be re-established
or re-negotiated after a disable/enable event.
From the perspective of enabling temporary muting of a track, it seems
like it would be better if the text had said:
When a track in a|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|parentis
disabled, any|MediaStreamTrack
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastreamtrack>|objects
corresponding to the tracks in any|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|objects
that were created fromparentstop sending data, although their
"enabled" status does not change. If a disabled track in
a|MediaStream
<http://dev.w3.org/2011/webrtc/editor/webrtc.html#mediastream>|parentis
re-enabled, data starts flowing on the downstream MediaStreamTrack
objects, as long as their /enabled/ attribute has the value "true".
What do other people think - what would it be best if the spec said?
Harald
Received on Wednesday, 14 September 2011 19:09:53 UTC