- From: Harald Alvestrand <harald@alvestrand.no>
- Date: Wed, 20 Jun 2012 22:05:43 +0200
- To: Justin Uberti <juberti@google.com>
- CC: public-webrtc@w3.org
- Message-ID: <4FE22D17.8080107@alvestrand.no>
On 06/20/2012 10:03 PM, Justin Uberti wrote: > > > On Wed, Jun 20, 2012 at 11:11 AM, Harald Alvestrand > <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote: > > On 06/20/2012 04:56 PM, Justin Uberti wrote: >> >> >> On Wed, Jun 20, 2012 at 9:21 AM, Harald Alvestrand >> <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote: >> >> On 06/19/2012 03:45 PM, Justin Uberti wrote: >>> >>> >>> On Tue, Jun 19, 2012 at 8:57 AM, Stefan Hakansson LK >>> <stefan.lk.hakansson@ericsson.com >>> <mailto:stefan.lk.hakansson@ericsson.com>> wrote: >>> >>> On 06/19/2012 08:30 AM, Randell Jesup wrote: >>> >>> On 6/18/2012 3:22 PM, Justin Uberti wrote: >>> >>> >>> >>> On Mon, Jun 18, 2012 at 2:57 PM, Cullen Jennings >>> (fluffy) >>> <fluffy@cisco.com >>> <mailto:fluffy@cisco.com><mailto:fluffy@cisco.com <mailto:fluffy@cisco.com>>> >>> wrote: >>> >>> >>> This seems like good proposal, one comment >>> on a small detail. >>> >>> On Jun 15, 2012, at 1:28 PM, Justin Uberti >>> wrote: >>> >>> > SessionDescriptionOptions.IncludeAudio = >>> true/false // forces >>> m=audio line to be included >>> > SessionDescriptionOptions.IncludeVideo = >>> true/false // forces >>> m=video line to be included >>> > >>> SessionDescriptionOptions.UseVoiceActivityDetection >>> = true/false >>> // includes CN codecs if true >>> >>> I think these three should be constraints, >>> not settings because a >>> given browser may not support any of them. >>> >>> >>> Practically speaking, what does that mean for >>> applications? >>> >>> >>> I can conceive of a browser implementing audio but >>> not video. And a >>> gateway or other stand-alone WebRTC >>> box/functionality might include JS >>> and these JS apis for ease of programming (and might >>> be audio-only). >>> (I'd try to avoid it in production, probably, but >>> even that might not be >>> needed with modern JS JIT speed so long as it didn't >>> have to tear down >>> and restart all the time.) >>> >>> CN codecs: I dislike them anyways. :-) An >>> implementation definitely >>> could avoid including those. >>> >>> >>> Many codecs have built in CN modes. I guess for those it >>> is more a question of being able to switch off the VAD. >>> >>> >>> I agree with the scenarios mentioned - my question was >>> mostly about what does having these settings be >>> "constraints" vs "settings" mean for users of the API. Is it >>> simply that the call must fail if the request can't be >>> satisfied? >> >> If they are constraints, it's the caller's choice whether or >> not the call should fail if the constraint can't be satisfied >> (listing them in "mandatory" vs "optional" sections). >> >> If they are settings, it's the specification's choice whether >> or not the call should fail if the constraint can't be >> satisfied; it has to be always handled the same. >> >> At least that's how I read it. >> >> >> That makes sense. So perhaps we add .mandatory and .optional to >> make these dictionaries into >> SessionDescriptionConstraints/IceConstraints, e.g. >> >> constraints = {}; >> constraints.mandatory.getCapabilities = true; >> constraints.optional.includeAudio = true; >> constraints.optional.includeVideo = true; >> pc.createOffer(successCb, failCb, constraints); >> >> and we end up with MediaConstraints, >> SessionDescriptionConstraints, and IceConstraints that all act >> the same way. > Now the only difference between these constraints (?) and the > constraints defined in the getUserMedia draft is the initializer > syntax and the fact that we can't say that some optional > constraints are more important than others. > > If we're that close, I'd recommend going with the > getUserMedia-specified syntax. > > Let's just do one. > > > That's pretty much what I had in mind, I didn't realize that > constraints already had ordering for optional items. > > The question becomes how do we best indicate which constraints can be > passed to the various API calls - I was thinking we can have different > types of XXXXConstraints for different API calls, and we can indicate > what values are valid for each type of XXXXConstraints where we > declare the type. > > Open to other ideas too though. Have a requirement in the registry for what effect they're supposed to have at each API? (no documentation = not allowed)?
Received on Wednesday, 20 June 2012 20:06:16 UTC