- From: cowwoc <cowwoc@bbs.darktech.org>
- Date: Fri, 19 Jul 2013 11:43:14 -0400
- To: tim panton <thp@westhawk.co.uk>
- CC: public-webrtc@w3.org
On 19/07/2013 6:53 AM, tim panton wrote:
> On 19 Jul 2013, at 03:03, cowwoc <cowwoc@bbs.darktech.org> wrote:
>> Short answer: yes.
>>
>> Long answer: if we're going to go with an Object API I recommend going a lot further than the current Constraint API. Populating a key-value map is not an API in my book; it's also the reason I think SDP is a poor match for end-users. We can (and should) do a lot better by exposing an imperative API.
>>
> The original constraints idea was for the web programmer to express in _their_ terms what the application they were writing needs. So they state that LowlatencyAudio (for a choir) is required or HighFrameRate video (for a motor racing broadcast) and the browser does it's best to translate that into whatever is needed in the (opaque to the Javascript user) SDP.
>
> The problem with an imperative API is that you _very_ soon end up exposing the codec names or worse
> Quality/Complexity/etc settings of the codecs - who's meanings are even _less_ clear than SDP :-) . The only way to avoid that is to couch the requirements in more generic terms, which brings you to the constraints style above.
Hi Tim,
I'm pretty sure now I used the wrong terminology. When I say
imperative API versus passing in a map I simply mean that that we break
the functionality down into individual API methods instead of passing in
a big map. Nothing about this approach forces the API to be low-level.
It just means that instead of setting a bunch of properties at once, you
get/set them in smaller chunks. Interacting with API methods allows us
to fail-fast, throw context-specific exceptions and introduce
instruction ordering in a way that is awkward for maps.
And to get back to your point, the API should enable users to
"Tell, Don't Ask": http://programmers.stackexchange.com/a/157527/42177
This implicitly addresses a discussion brought up elsewhere on this
list that we should move a big up-front Offer/Answer to a model where a
small number of constraints change over time.
Gili
Received on Friday, 19 July 2013 15:43:56 UTC