diff --git a/amendments.json b/amendments.json index 21af09c14..5bf87432b 100644 --- a/amendments.json +++ b/amendments.json @@ -365,5 +365,25 @@ "status": "candidate", "id": 25 } + ], + "apply-local-description": [ + { + "description": "Prune createAnswer()'s encodings and SendEncodings in sLD(answer).", + "pr": 2801, + "difftype": "modify", + "type": "correction", + "status": "candidate", + "id": 26 + } + ], + "create-answer-restrictions": [ + { + "description": "Prune createAnswer()'s encodings and SendEncodings in sLD(answer).", + "pr": 2801, + "difftype": "modify", + "type": "correction", + "status": "candidate", + "id": 26 + } ] } diff --git a/base-rec.html b/base-rec.html index ab61b361e..c34fb8170 100644 --- a/base-rec.html +++ b/base-rec.html @@ -2773,7 +2773,7 @@
If the media description was not yet associated with an
@@ -4512,7 +4512,7 @@ RTCRtpTransceiver
The codec preferences of an m= section's diff --git a/webrtc.html b/webrtc.html index 301ff8230..42a054bf9 100644 --- a/webrtc.html +++ b/webrtc.html @@ -2134,7 +2134,7 @@
If the [= media description =] was not yet [= @@ -2259,6 +2259,35 @@
+ If transceiver.
+ {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}
+ .length is greater than 1
, then
+ run the following steps:
+
+ If description is missing + all of the previously negotiated layers, + then remove all dictionaries in + transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}} + except the first one, and skip the next + step. +
++ If description is missing any of + the previously negototiated layers, then + remove the dictionaries that correspond to + the missing layers from + transceiver.{{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}. +
+Set @@ -3977,7 +4006,7 @@
The codec preferences of an m= section's @@ -4023,17 +4052,33 @@
- If the length of the {{RTCRtpSender/[[SendEncodings]]}} slot
- of the {{RTCRtpSender}} is larger than 1, then for
- each encoding given in {{RTCRtpSender/[[SendEncodings]]}} of
- the {{RTCRtpSender}}, add an a=rid send
line to the corresponding
- media section, and add an a=simulcast:send
line giving the RIDs
- in the same order as given in the
- {{RTCRtpSendParameters/encodings}} field. No RID
- restrictions are set.
+ If this is an answer to an offer to receive
+ simulcast, then for each media section requesting
+ to receive simulcast, exclude from the media section
+ in the answer any RID not found in the corresponding
+ transceiver's
+ {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}.
+ If there are any identically named RIDs in the
+ a=simulcast
attribute, remove all
+ duplicates except the first one. No RID restrictions are set.
+ When a + {{RTCPeerConnection/setRemoteDescription(offer)}} + establishes a transceiver's [=simulcast envelope=], + the transceiver's + {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}} + is updated in + {{RTCSignalingState/"have-remote-offer"}}. However, + once a simulcast envelope has been established for + the transceiver, subsequent pruning of the + transceiver's + {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}} + happen when this answer is set with + {{RTCPeerConnection/setLocalDescription}}. +
+