- From: Peter Thatcher <pthatcher@google.com>
- Date: Tue, 15 Apr 2014 11:10:38 -0700
- To: "public-ortc@w3.org" <public-ortc@w3.org>
- Message-ID: <CAJrXDUE5VZrWJMdmQRJyL3-Y=OmodgP7a814WKWjMvbiPE0mMg@mail.gmail.com>
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<int> 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
}];
Received on Tuesday, 15 April 2014 18:11:49 UTC