- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Thu, 04 Oct 2012 15:51:32 +0200
- To: public-media-capture@w3.org
On 10/03/2012 03:10 AM, Travis Leithead wrote: > V4 is now ready. I've posted it on Mercurial for easier reading: > > http://dvcs.w3.org/hg/dap/raw-file/tip/media-stream-capture/proposals/SettingsAPI_proposal_v4.html > > Thanks! Looking forward to your continued feedback. > Thanks Travis! I like the way this is moving - in particular, I like the idea of reducing the number of places where apps have to care what kind of stream or track they're handling. Some worries persist, however: - I really like the idea in section 3 where you model the request interface as "construct a constraints object and apply it". This unifies the constraints namespace and the namespace for requested attributes quite neatly. HOWEVER - the namespaces are a bit non-overlapping, in particular the control of height and width, where you introduce a new enumerated "dimension" namespace. When items in both namespaces collide, do we synthesize an union, or do we declare a winner? - It's not clear to me what happens to existing constraints placed on a track after a series of "request" calls and subsequent applications; are the constraint lists merged into an intersection? are they replaced? or is this device and implementation dependent? I'm particularly thinking of usage patterns where an implementation uses constraints at the getUserMedia phase to get a suitable device, and then uses the request interface to manipulate it afterwards; is he allowed to set constraints outside the originally specified ones, or isn't he? Not clear what the right answer is, but there should be only one. - I've worried about this before and gotten some pushback, but I'm still worried about the wisdom of setting specific values rather than "acceptable ranges" - for instance, some systems will drop resolution, framerate or encoding complexity based on CPU temperature, to avoid systems shutting down mid-call under "hot" conditions. Setting specific values will seem to take away that freedom; setting a range of "values I can live with" would preserve it. - I wonder if experimentation and flexibility could be served if we could generalize the interface, so that we don't have to rev the API every time we add a setting - the long list of settings in PictureAndVideoSettings could possibly be expressed as interface MediaSetting { DOMString name; (MediaSettingsList or MediaSettingsRange) setting; } interface PictureAndVideoSettings { MediaSetting[] settings; } I don't know if it is wise, but I'd like to hear others' thoughts on such an API: - lastly, I think that in some cases, for some constraints, it makes sense to offer a media settings interface on *any* media stream track, including remote ones. I wonder if we can generalize it to be an interface on MediaStream itself without hurting it? Harald
Received on Thursday, 4 October 2012 13:52:06 UTC