- 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