Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move Simulcast envelope concept to RTCRtpSender. #2922

Merged
merged 1 commit into from
Jan 11, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 11 additions & 10 deletions webrtc.html
Original file line number Diff line number Diff line change
Expand Up @@ -4126,16 +4126,14 @@ <h2>
<p>
When a
{{RTCPeerConnection/setRemoteDescription(offer)}}
establishes a transceiver's [=proposed envelope=],
the transceiver's
{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}
establishes a sender's [=proposed envelope=],
the sender's {{RTCRtpSender/[[SendEncodings]]}}
is updated in
{{RTCSignalingState/"have-remote-offer"}}, exposing
it to rollback. However, once a
[=simulcast envelope=] has been established for
the transceiver, subsequent pruning of the
transceiver's
{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}
the sender, subsequent pruning of the
sender's {{RTCRtpSender/[[SendEncodings]]}}
happen when this answer is set with
{{RTCPeerConnection/setLocalDescription}}.
</p>
Expand Down Expand Up @@ -11384,7 +11382,7 @@ <h3>
object can be used to inspect and modify the functionality.
</p>
<p class="needs-test">
An {{RTCRtpTransceiver}}'s <dfn>simulcast envelope</dfn> is
An {{RTCRtpSender}}'s <dfn>simulcast envelope</dfn> is
established in the first successful negotiation that involves it
sending simulcast instead of unicast, and includes the maximum number of
simulcast streams that can be sent, as well as the ordering of its
Expand All @@ -11396,16 +11394,19 @@ <h3>
itself cannot be changed by that method.
</p>
<p class="needs-test">
One way to configure simulcast is with the
{{RTCRtpTransceiverInit/sendEncodings}} option to
{{RTCPeerConnection/addTransceiver()}}.
While the {{RTCPeerConnection/addTrack()}} method lacks the
{{RTCRtpTransceiverInit/sendEncodings}} argument necessary to
configure simulcast, transceivers can be promoted to
configure simulcast, senders can be promoted to
simulcast when the user agent is the answerer. Upon calling the
{{RTCPeerConnection/setRemoteDescription}} method with a remote
offer to receive simulcast, a <dfn>proposed envelope</dfn> is
configured on a {{RTCRtpTransceiver}} to contain the layers
configured on an {{RTCRtpSender}} to contain the layers
described in the specified session description. As long as this
description isn't rolled back, the [=proposed envelope=] becomes
the {{RTCRtpTransceiver}}'s [=simulcast envelope=] when negotiation
the {{RTCRtpSender}}'s [=simulcast envelope=] when negotiation
completes. As above, this [=simulcast envelope=] may be narrowed
in subsequent renegotiation, but not reexpanded.
</p>
Expand Down