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

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