- 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