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.orgReceived on Wednesday, 1 February 2012 17:02:47 GMT
This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 1 February 2012 17:02:47 GMT