Conversation
…ections to fail, these can be safely dropped as we use bundle by default and therefore these attributes are not used.
🦋 Changeset detectedLatest commit: 41bfea8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 2 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
lukehb
commented
Sep 11, 2025
Comment on lines
+1492
to
+1495
| const remoteIceCandidate = new RTCIceCandidate({ | ||
| candidate: iceCandidateInit.candidate, | ||
| sdpMid: '' | ||
| }); |
Contributor
Author
There was a problem hiding this comment.
These are the important lines of this fix
Contributor
💚 All backports created successfully
Note: Successful backport PRs will be merged automatically after passing CI. Questions ?Please refer to the Backport tool documentation and see the Github Action logs for details |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Relevant components:
Problem statement:
In some instances Pixel Streaming/WebRTC will fail to make a network connection even if the relevant ICE candidates are present. This behaviour manifests with certain connections (often Windows UE running on a slow machine where
srflxis required on both sides) and if the connection is repeatedly retried it will intermittently connect. See: #692Solution
Through investigation it was found that:
sdpMidandsdpMLineIndexsdpMidandsdpMLineIndexare not required if usingbundlemode (where media is multiplexed over one transport)bundleis Pixel Streaming's default (and only supported mode) for WebRTC connectionssdpMidcan be set to an empty string""andsdpMLineIndexcan be omitted and the connection can proceed normallyWhile the WebRTC spec says candidates can be trickled in any order, we observed that if a candidate containing
sdpMid:n(where n is any value other than the master bundle, e.g.0in our case) was received before the candidate containingsdpMid:m(where m is the master bundle, e.g.0) then the connection would fail. The fix was simply to remove this unnecessary information and the connection proceeds as it should and is able to connect.Documentation
N/A - though it should be noted with this change we explicitly are making the assumption now that Pixel Streaming must use
bundle- which has always been an implicit assumption anyway.Test Plan and Compatibility
I tested this PR on the following browsers/devices:
Chrome + Windows
Firefox + Windows
Chrome + iPhone
Chrome + Mac
Chrome + iPad
Safari + iPhone
Safari + Mac
Safari + iPad
Chrome + Android
Android Browser + Android