From d90cd0eeb0e3f9727c3e1d54afa7d75d38d81516 Mon Sep 17 00:00:00 2001
From: Amit Hilbuch Set the RTCSessionDescription
(transceiver is unset), run the following
steps:
If the description is of type "offer"
+ and contains a request to receive simulcast, follow the order
+ of the rid values specified in the simulcast attribute to create
+ an RTCRtpEncodingParameters
dictionary for
+ each of the simulcast layers, populating the rid member
+ according to the corresponding rid value, and let sendEncodings
+ be the list containing the created dictionaries.
+ Otherwise, let sendEncodings be an empty list.
Create an RTCRtpSender, sender, - from the media description.
+ from the media description using sendEncodings.Create an RTCRtpReceiver, @@ -1767,6 +1777,38 @@
If description is of type "answer"
+ or "pranswer"
, and transceiver.
+ [[\Sender]].[[\sendEncodings]] .length is
+ greater than 1
, then run the following steps:
If description indicates that simulcast is
+ not supported or desired, then set the
+ active
+ member to false
on all dictionaries in
+ transceiver.[[\Sender]].[[\sendEncodings]]
+ except the first one and abort these sub steps.
If description rejects any of the offered layers,
+ then set the
+ active
+ member to false
on the dictionaries in
+ transceiver.[[\Sender]].[[\sendEncodings]]
+ that correspond to rejected layers.
Update the paused status as indicated by [[MMUSIC-SIMULCAST]] of
+ each simulcast layer by setting the
+ active
+ member on the corresponding dictionaries in
+ transceiver.[[\Sender]].[[\sendEncodings]]
+ to true
for unpaused or to false
for paused.
Set transceiver's mid
value to the mid of
@@ -7604,6 +7646,12 @@
addTrack
method cannot provide simulcast
functionality since it does not take sendEncodings
as an argument, and therefore cannot
configure an RTCRtpTransceiver
to send simulcast.
+ Another implication is that the answerer cannot set the simulcast envelope directly.
+ Upon calling the setRemoteDescription
method of the RTCPeerConnection
+ object, the simulcast envelope is configured on the RTCRtpTransceiver
+ to contain the layers described by the specified RTCSessionDescription
.
+ Once the envelope is determined, layers cannot be removed. They can be marked as inactive by setting
+ the active
attribute to false
effectively disabling the layer.
While If description indicates that simulcast is
- not supported or desired, then set the
- If description rejects any of the offered layers,
- then set the
- setParameters
cannot modify the simulcast envelope, it is still possible
to control the number of streams that are sent and the characteristics of those streams. Using
setParameters
, simulcast streams can be made inactive by setting the active
From 8d7631499fe8a81b44475227c4496a870e91c945 Mon Sep 17 00:00:00 2001
From: Amit Hilbuch Set the RTCSessionDescription
active
- member to false
on all dictionaries in
+ not supported or desired, then remove all dictionaries in
transceiver.[[\Sender]].[[\sendEncodings]]
except the first one and abort these sub steps.active
- member to false
on the dictionaries in
- transceiver.[[\Sender]].[[\sendEncodings]]
- that correspond to rejected layers.
Update the paused status as indicated by [[MMUSIC-SIMULCAST]] of