W3C home > Mailing lists > Public > public-webrtc@w3.org > February 2012

Re: [rtcweb] JS app interaction with congestion control

From: Cullen Jennings <fluffy@iii.ca>
Date: Mon, 13 Feb 2012 08:10:02 -0700
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>, public-webrtc@w3.org
Message-Id: <CCB52C54-4F34-4D73-9159-F916209C4AE5@iii.ca>
To: Randell Jesup <randell-ietf@jesup.org>

There are really a lot of things that are along the lines of of providing JS control of echo cancellation, bandwidth etc. I'd like to figure out an bit of extensible framework for adding these types of things. It might be that in the end we end up with exactly this but we have been talking about some other ways of doing it to - I think Dan is going to send a proposal to the list at some point. 


On Feb 1, 2012, at 10:02 AM, Randell Jesup wrote:

> This really is almost all W3c stuff; cc'ing that list where most discussion should occur.
> 
> Updated suggestion based on Justin's comments:  (largely for W3C discussion) 
> 
> This is rough, and a first cut, but we need to start somewhere. 
> 
> I propose we add a callback on PeerConnection and some attributes on it 
> and MediaTracks: 
> 
> { 
> ... 
>     // allow app to limit total bitrate used for the PeerConnection 
>     attribute unsigned long maxBitrate; 
>     attribute readonly unsigned long currentBitrate;  // [Open issue] - how much smoothing? 
> 
>     attribute Function? onBitrateChange; 
>     // don't notify until change since last notify is more than this 
>     attribute unsigned long minBitrateChangeToNotify; 
>     attribute Function? onResolutionChange;  // not strictly needed 
> 
>     // These are global settings that can be overridden on a per-track basis 
>     attribute float minFramerate; 
>     attribute float maxFramerate; // might not be needed 
>     attribute boolean preferMotion;  // false means preference for Resolution 
> } 
> 
> 
> To each MediaTrack: 
> 
> { 
> ... 
>     // If the app bumps up the currentBitrate of one track and doesn't lower another track, the 
>     // system will make cuts to keep the total bitrate within bounds. 
>     attribute unsigned long currentBitrate; 
>     attribute short priority;  // for allocating bits 
> 
>     // The rest of these are for video (is short guaranteed enough, always?  Probably) 
>     attribute unsigned short width;  // Let app override the values chosen automatically 
>     attribute unsigned short height; 
>     attribute float framerate; 
>     attribute float minFramerate; 
>     attribute float maxFramerate; // might not be needed 
>     attribute boolean preferMotion;  // false means preference for Resolution 
> 
>     // typically derived from QP 
>     attribute readonly unsigned short videoQuality; 
>     // audioQuality?? (samplerate?) 
> 
> } 
> 
> Should some of these be echoed in MediaTrackLists or MediaStreams? 
> 
> 
> -- 
> Randell Jesup
> 
> randell-ietf@jesup.org
Received on Monday, 13 February 2012 15:10:39 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 13 February 2012 15:10:39 GMT