Skip to content
This repository was archived by the owner on Feb 25, 2026. It is now read-only.
This repository was archived by the owner on Feb 25, 2026. It is now read-only.

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

Closed

Description

@aboba

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
}];

Activity

  1. martinthomson commented on Apr 15, 2014

    @martinthomson
    Contributor

    Looks pretty usable.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions