[webrtc-pc] SLD/SRD(answer) trips over itself when narrowing simulcast envelope (#2743)

jan-ivar has just created a new issue for https://github.com/w3c/webrtc-pc:

== SLD/SRD(answer) trips over itself when narrowing simulcast envelope ==
https://github.com/w3c/webrtc-pc/pull/2081 added simulcast rejection in answer (by truncating layers): _"If ... simulcast is not supported or desired, ... description rejects any of the offered layers, ... [OR] update the paused status ... [THEN MODIFY] transceiver.[[[Sender]]](https://w3c.github.io/webrtc-pc/#dfn-sender).[[[SendEncodings]]](https://w3c.github.io/webrtc-pc/#dfn-sendencodings)"_

Unfortunately, this runs afoul of language added in https://github.com/w3c/webrtc-pc/issues/2314: _"If applying description leads to modifying a transceiver transceiver, and transceiver.[[[Sender]]](https://w3c.github.io/webrtc-pc/#dfn-sender).[[[SendEncodings]]](https://w3c.github.io/webrtc-pc/#dfn-sendencodings) is non-empty, and not equal to the encodings that would result from processing description, the process of applying description fails."_

When read together, this says SRD(answer) must fail the following if the answer doesn't support simulcast or rejects a layer:
```js
pc.addTransceiver("video", {sendEncodings: [{rid: "a"}, {rid: "b"}]});
```
This seems accidental, because:
 1. failing defeats the detailed modifications that #2081 made.
 2. #2314 say its purpose was to _"not allow remotely initiated RID renegotiation"_.

Remotely initiated = remote offer, not remote answer.

The solution would be to narrow the #2314 language so it doesn't catch #2081.

Please view or discuss this issue at https://github.com/w3c/webrtc-pc/issues/2743 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Wednesday, 15 June 2022 22:25:18 UTC