Skip to content

Comments

Fix regression in Chrome 143 due to changes in RTP extensions handling#355

Merged
ibc merged 2 commits intov3from
fix-new-extensions-stuff-in-chrome-143
Dec 12, 2025
Merged

Fix regression in Chrome 143 due to changes in RTP extensions handling#355
ibc merged 2 commits intov3from
fix-new-extensions-stuff-in-chrome-143

Conversation

@ibc
Copy link
Member

@ibc ibc commented Dec 10, 2025

Details

Rationale

Chrome 143 complains when we disable the first m= section in the sending PeerConnection. It complains because its locally generated offer contains simulcast attributes but the SDP answer mediasoup-client generates doesn't contain the corresponding RTP extensions for simulcast (RID). And since we are not closing the transceiver (because it's the first one so it would disconnect ICE), we only "disable" it which means that the response has "a=inactive" but the lack of RID extension makes Chrome 143 throw an error because the offer requests simulcast. Solution is to NOT remove RTP extension attributes from the disabled m= section in the remote SDP answer, and only do it when closing the transceiver (which involves remote port set to 0).

# Details

- Fixes #353
- Tested in Chrome 143.
- Tested in Opera 122 which uses Chromium version:138.0.7204.251.
- Tested in Firefox 144.0.2.
- Tested in Safari 18.6.

## Rationale

Chrome 143 complains when we disable the first m= section in the sending PeerConnection. It complains because its locally generated offer contains simulcast attributes but the SDP answer mediasoup-client generates doesn't contain the corresponding RTP extensions for simulcast (RID). And since we are not closing the transceiver (because it's the first one so it would disconnect ICE), we only "disable" it which means that the response has "a=inactive" but the lack of RID extension makes Chrome 143 throw an error because the offer requests simulcast.
Solution is to NOT remove RTP extension attributes from the disabled m= section in the remote SDP answer, and only do it when closing the transceiver (which involves remote port set to 0).
@ibc
Copy link
Member Author

ibc commented Dec 10, 2025

Notice that this is not a FULL solution. See my comment in the libwebrtc ticket: https://issues.chromium.org/issues/467164231#comment20

@Astagor
Copy link

Astagor commented Dec 10, 2025

Thank you for your work. So to have a full solution, we need to wait for Chromium devs, right?

@ibc
Copy link
Member Author

ibc commented Dec 10, 2025

Thank you for your work. So to have a full solution, we need to wait for Chromium devs, right?

Yes. I've been told that they are gonna revert the change ASAP.

@Astagor
Copy link

Astagor commented Dec 10, 2025

So I will wait and not change anything yet, as my patch (audio before video) works for me in most cases. And we never close audio producer but pause, we only close video producers.

@ibc ibc merged commit 27abc58 into v3 Dec 12, 2025
7 checks passed
@ibc ibc deleted the fix-new-extensions-stuff-in-chrome-143 branch December 12, 2025 12:22
@ibc
Copy link
Member Author

ibc commented Dec 12, 2025

mediasoup-client 3.18.2 released with the fix. Tested in many browsers.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

VP8 simulcast Producer fails on second creation (setLocalDescription error) after webcam toggle (Chrome 143)

3 participants