Separate proposal on layering/simulcast (was part of the "big proposal") #61

Closed
aboba opened this Issue Apr 15, 2014 · 1 comment

Projects

None yet

3 participants

@aboba
Contributor
aboba commented Apr 15, 2014

From: Peter Thatcher pthatcher@google.com
Date: Tue, 15 Apr 2014 11:10:38 -0700
Message-ID: CAJrXDUE5VZrWJMdmQRJyL3-Y=OmodgP7a814WKWjMvbiPE0mMg@mail.gmail.com
To: "public-ortc@w3.org" public-ortc@w3.org
URL: http://lists.w3.org/Archives/Public/public-ortc/2014Apr/0064.html

Here's a simplified proposal for how to add layering/simulcast support
without getting too mixed up with quality (there will be a separate
proposal for that).

dictionary RTCRtpEncodingParameters {
// ... existing ssrc, codec, fec, rtx
// These are to setup layer dependencies.
// If there are no layer dependencies
// (they are independent),
// then it's effectively simulcast.
int layerId;
sequence layerDependencies; // Just the IDs
// Disable is different than omitting the layer,
// because it can keep resources available to re-enable
// more quickly than re-adding.
// Plus, it still sends RTCP.
// Default is active.
bool active;
// Relative spatial resolution (0.5, 0.25, etc).
double scale;
}

And here are some examples:

Example of 3-layer SVC
var encodings =[{
layerId: 0,
scale: 0.25
}, {
layerId: 1,
layerDependencies: [0]
scale: 0.5
}, {
layerId: 2,
layerDependencies: [0, 1]
scale: 1.0
}]

Example of 3-layer SVC with all but bottom layer disabled
var encodings1 =[{
layerId: 0,
scale: 0.25
}, {
layerId: 1,
layerDependencies: [0],
scale: 0.5,
active: false
}, {
layerId: 2,
layerDependencies: [0, 1],
scale: 1.0,
active: false
}];

Example of 3-layer simlucast
var encodings =[{
layerId: 0,
scale: 0.25
}, {
layerId: 1,
scale: 0.5
}, {
layerId: 2,
scale: 1.0
}]

Example of 3-layer simulcast with all but bottom layer disabled
var encodings1 =[{
layerId: 0,
scale: 0.25
}, {
layerId: 1,
scale: 0.5,
active: false
}, {
layerId: 2,
scale: 1.0,
active: false
}];

@martinthomson
Member

Looks pretty usable.

I'd put "active = true" and "scale = 1.0" in the IDL to be explicit.

@robin-raymond robin-raymond pushed a commit to robin-raymond/ortc that referenced this issue Apr 29, 2014
Robin Raymond - Fixes for error handling, as described in w3c#26
- Support for contributing sources removed (re-classified as a 1.2 feature), as described in w3c#27
- Cleanup of DataChannel construction, as described in w3c#60
- Separate proposal on simulcast/layering, as described in w3c#61
- Separate proposal on quality, as described in w3c#62
- Fix for TCP candidate type, as described in w3c#63
- Fix to the fingerprint attribute, as described in w3c#64
- Fix to RTCRtpFeatures, as described in w3c#65
- Support for retrieval of remote certificates, as described in w3c#67
- Support for ICE error handling, described in w3c#68
- Support for Data Channel send rate control, as described in w3c#69
- Support for capabilities and settings, as described in w3c#70
- Removal of duplicate RTCRtpListener functionality, as described in w3c#71
- ICE gathering state added, as described in w3c#72
- Removed ICE role from the ICE transport constructor, as described in w3c#73
3571fd1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment