From 85fb8fad45a645a8fa098743c7d2fa21cfbfb2e7 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Wed, 30 Nov 2022 20:35:27 -0500 Subject: [PATCH 1/6] Prune createAnswer()'s encodings and [[SendEncodings]] in sLD(answer). --- webrtc.html | 60 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 50 insertions(+), 10 deletions(-) diff --git a/webrtc.html b/webrtc.html index 32130b783..56be5c1ed 100644 --- a/webrtc.html +++ b/webrtc.html @@ -2273,6 +2273,35 @@

following steps:

    +
  1. +

    + If transceiver. + {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}} + .length is greater than 1, then + run the following steps: +

    +
      +
    1. +

      + 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. +

      +
    2. +
    3. +

      + 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]]}}. +

      +
    4. +
    +
  2. Set @@ -4011,18 +4040,29 @@

  3. - 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, remove all + but the first one. No RID restrictions are set.

  4. +
    +

    + 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}}. +

    +
  • From eac5ddde9fa8846c0ca768519a02d57f32e74d76 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Wed, 30 Nov 2022 21:01:10 -0500 Subject: [PATCH 2/6] Fix
    under
      error in last commit --- webrtc.html | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/webrtc.html b/webrtc.html index 56be5c1ed..d780de7f8 100644 --- a/webrtc.html +++ b/webrtc.html @@ -4049,20 +4049,24 @@

      If there are any identically named RIDs, remove all but 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}}. +

      +
      -
      -

      - 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}}. -

      -

  • From 0edac7c5c2674a83effb240c6b14da227e29647a Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Thu, 1 Dec 2022 10:13:47 -0500 Subject: [PATCH 3/6] specify identically RIDs means in a=simulcast attr --- webrtc.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/webrtc.html b/webrtc.html index d780de7f8..58f0f6154 100644 --- a/webrtc.html +++ b/webrtc.html @@ -4046,7 +4046,8 @@

    in the answer any RID not found in the corresponding transceiver's {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}. - If there are any identically named RIDs, remove all + If there are any identically named RIDs in the + a=simulcast attribute, remove all but the first one. No RID restrictions are set.

    From 6aaea50a80487b8c23c5dabdc6e5fd7c24718828 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Thu, 8 Dec 2022 10:21:07 -0500 Subject: [PATCH 4/6] Remove all duplicates except 1st --- webrtc.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webrtc.html b/webrtc.html index 58f0f6154..5009c3b80 100644 --- a/webrtc.html +++ b/webrtc.html @@ -4048,7 +4048,7 @@

    {{RTCRtpTransceiver/[[Sender]]}}.{{RTCRtpSender/[[SendEncodings]]}}. If there are any identically named RIDs in the a=simulcast attribute, remove all - but the first one. No RID restrictions are set. + duplicates except the first one. No RID restrictions are set.

    From 5ac0293ada440c653e9125fcb268245ea5c2880e Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Tue, 13 Dec 2022 18:27:13 -0500 Subject: [PATCH 5/6] Add amendments. --- amendments.json | 20 ++++++++++++++++++++ base-rec.html | 4 ++-- webrtc.html | 4 ++-- 3 files changed, 24 insertions(+), 4 deletions(-) diff --git a/amendments.json b/amendments.json index 015cf52d0..952ff046d 100644 --- a/amendments.json +++ b/amendments.json @@ -346,5 +346,25 @@ "status": "candidate", "id": 22 } + ], + "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 84ac0cdff..ad44a4e12 100644 --- a/base-rec.html +++ b/base-rec.html @@ -2773,7 +2773,7 @@

    4.4.1.5 run the following steps for each media description in description:

    -
      +
      1. If the media description was not yet associated with an RTCRtpTransceiver @@ -4512,7 +4512,7 @@

        generate an SDP answer, sdpString, as described in [RFC8829] (section 5.3.).

        -
          +
          1. The codec preferences of an m= section's diff --git a/webrtc.html b/webrtc.html index 5009c3b80..51bf869fc 100644 --- a/webrtc.html +++ b/webrtc.html @@ -2148,7 +2148,7 @@

            run the following steps for each [= media description =] in description:

            -
              +
              1. If the [= media description =] was not yet [= @@ -3994,7 +3994,7 @@

                described in [[!RFC8829]].

                -
                  +
                  1. The codec preferences of an m= section's From b5480e2a932cc8b61f70e7afb9c0341ff18b5fc2 Mon Sep 17 00:00:00 2001 From: Jan-Ivar Bruaroey Date: Tue, 13 Dec 2022 18:34:25 -0500 Subject: [PATCH 6/6] Avoid [[]] in amendments. --- amendments.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/amendments.json b/amendments.json index 952ff046d..fda374b5e 100644 --- a/amendments.json +++ b/amendments.json @@ -349,7 +349,7 @@ ], "apply-local-description": [ { - "description": "Prune createAnswer()'s encodings and [[SendEncodings]] in sLD(answer).", + "description": "Prune createAnswer()'s encodings and SendEncodings in sLD(answer).", "pr": 2801, "difftype": "modify", "type": "correction", @@ -359,7 +359,7 @@ ], "create-answer-restrictions": [ { - "description": "Prune createAnswer()'s encodings and [[SendEncodings]] in sLD(answer).", + "description": "Prune createAnswer()'s encodings and SendEncodings in sLD(answer).", "pr": 2801, "difftype": "modify", "type": "correction",