getUserMedia(): allow user agents to omit requested media tracks

The specification currently requires that the user agent must provide a track
for every requested media type: "The provided media must include precisely one
track of each media type in requestedMediaTypes" (the full context of this
quote is included at the end of this mail).

This specified requirement differs from the behaviour of the actual
implementations when two or more media types are requested:
- In Firefox's media permission menu, users can choose to select "No Video" or
  "No Audio" to prevent either track from being added. This feature was
  introduced last year (http://bugzil.la/835892).
- In Chrome, a previously denied media type does not show up in the permission
  prompt for 2+ types. Consequently the success callback of getUserMedia will
  only receive one media track (http://crbug.com/416162)

Both implementations seem to agree that the user should be able to selectively
approve a media stream capture request (e.g. allow audio, but not video).
Therefore it might make sense to update the specification to allow the user
agent to omit requested media types.

Here is the full relevant part of the getUserMedia specification:

"When the getUserMedia() method is called, the user agent must run the
  following steps:
1. Let constraints be the method's first argument. [...]
6. Let finalSet be an (initially) empty set. [...]
8. For each media type T in requestedMediaTypes,
  1. Let candidateSet be all possible tracks of media type T that the browser
     could return.
  2. If the value of the T entry of constraints is "true", jump to the step
     labeled final below.
  [...]
  6. Final: Add the tracks in the candidateSet to the finalSet. [...]
11. The provided media must include precisely one track of each media type in
    requestedMediaTypes from the finalSet."

[WD] http://www.w3.org/TR/2013/WD-mediacapture-streams-20130903/#dom-navigator-getusermedia
[ED] http://w3c.github.io/mediacapture-main/getusermedia.html#dom-mediadevices-getusermedia

--
Rob

Received on Thursday, 25 September 2014 23:52:10 UTC