This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 12412 - <video> Allow video and/or audio being sent over PeerConnection to be temporarily muted
Summary: <video> Allow video and/or audio being sent over PeerConnection to be tempora...
Status: RESOLVED FIXED
Alias: None
Product: HTML WG
Classification: Unclassified
Component: LC1 HTML5 spec (show other bugs)
Version: unspecified
Hardware: Other other
: P3 critical
Target Milestone: ---
Assignee: Ian 'Hixie' Hickson
QA Contact: HTML WG Bugzilla archive list
URL: http://www.whatwg.org/specs/web-apps/...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-04-04 07:48 UTC by contributor
Modified: 2011-08-04 05:13 UTC (History)
8 users (show)

See Also:


Attachments

Description contributor 2011-04-04 07:48:31 UTC
Specification: http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html
Section: http://www.whatwg.org/specs/web-apps/current-work/#exclusivetracklist

Comment:
As specified, video can't be disabled. This is needed for "video mute".
Suggested solution: Move "enable" and "disable" from MultipleTrackList to
TrackList.

Posted from: 2620:0:1043:0:216:36ff:feee:f7c9
User agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/534.24 (KHTML, like Gecko) Chrome/11.0.696.28 Safari/534.24
Comment 1 Philip Jägenstedt 2011-04-04 08:39:05 UTC
What does this mean? If neither audio or video is wanted, why have a <video> element at all? How about <video preload="none">?
Comment 2 Harald Alvestrand 2011-04-04 09:00:46 UTC
This is an use case from interactive multimedia, not streaming.

The main use case is that you're in a videoconference, and want to turn off sending video to the conference temporarily.

You might or might not want to send audio; the typical case is that you want to stay silent and unseen, but be ready to be visible and audible at the touch of a button, without the need to do connection reconfiguration.

A second use case is to temporarily turn off video to save bandwidth if congestion control is not working properly for you.
Comment 3 Per-Erik Brodin 2011-06-08 07:53:42 UTC
I agree that this should be fixed but I don't think the proposed solution is right. If enable() is moved to TrackList then ExclusiveTrackList would not be exclusive anymore, right?
Comment 4 Harald Alvestrand 2011-06-08 08:52:45 UTC
Per-Erik, I don't understand your comment.

I don't see how having a "disable" function would make ExclusiveTrackList any less exclusive. It would simply disable the current track in ExclusiveTrackList, which is the whole point: I need video mute.

Can you explain your concern more?
Comment 5 Per-Erik Brodin 2011-06-10 15:29:14 UTC
Moving enable() to TrackList would allow you to select multiple tracks in an ExclusiveTrackList. Perhaps only moving disable() would work, you could then use disable() to disable your only selected track, but it would be a bit asymmetrical to use disable() to disable and then select() to enable.
Comment 6 Ian 'Hixie' Hickson 2011-06-10 20:05:40 UTC
This was the use case for which the PAUSED state on GeneratedStream was for, IIRC.

Is the request here to be able to turn off the camera, so that even the local mirror is disabled? Or is the request to be able to temporarily mute an outgoing stream in PeerConnection? Or something else?
Comment 7 Harald Alvestrand 2011-06-12 10:14:55 UTC
The request is for a feature that allows one outgoing video stream being sent in PeerConnection to be turned off temporarily, without affecting the state of a corresponding outgoing audio stream.

I think it's an UI design issue whether or not the self-view feedback channel should turn black when this happens; I don't think this should be mandated by the API specification (one can imagine wanting to turn off the outgoing video while using the self-view channel to adjust the camera, for instance).

There is a symmetric requirement to be able to turn off the audio stream without affecting the video stream (audio mute), but that seems to be adequately covered by the enable() and disable() functions of MultipleTrackList.

I can't see a PAUSED state on http://www.whatwg.org/specs/web-apps/current-work/#generatedstream, so I'm not sure what the semantics of that was.
Comment 8 Ian 'Hixie' Hickson 2011-06-15 06:27:31 UTC
enable() and disable() would also stop the local audio (or video, if we added it for video). So what we need is a way to pause an outgoing stream's individual channels. Interesting. Tricky.
Comment 9 Ian 'Hixie' Hickson 2011-06-22 00:22:31 UTC
See comments in bug 12530.
Comment 10 Ian 'Hixie' Hickson 2011-06-30 23:53:34 UTC
EDITOR'S RESPONSE: This is an Editor's Response to your comment. If you are satisfied with this response, please change the state of this bug to CLOSED. If you have additional information and would like the editor to reconsider, please reopen this bug. If you would like to escalate the issue to the full HTML Working Group, please add the TrackerRequest keyword to this bug, and suggest title and text for the tracker issue; or you may create a tracker issue yourself, if you are able to do so. For more details, see this document:
   http://dev.w3.org/html5/decision-policy/decision-policy.html

Status: Accepted
Change Description: see diff given in bug 12530
Rationale: Concurred with reporter's comments.
Comment 11 Michael[tm] Smith 2011-08-04 05:13:44 UTC
mass-move component to LC1