Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/light-games-wonder.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@epicgames-ps/lib-pixelstreamingfrontend-ue5.6': patch
---

Some versions of Firefox were unable to connect due the changes in PR#694 to overcome this issue and preserve the connectivity fixes from PR#694 we now assume the sdpMLineIndex is always 0 for bundle master media line. This change was tested on many browsers and restores connectivity with FireFox.
8 changes: 4 additions & 4 deletions Frontend/library/src/WebRtcPlayer/WebRtcPlayerController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1485,13 +1485,13 @@ export class WebRtcPlayerController {
handleIceCandidate(iceCandidateInit: RTCIceCandidateInit) {
Logger.Info(`Remote ICE candidate information received: ${JSON.stringify(iceCandidateInit)}`);

// We are using "bundle" policy for media lines so we remove the sdpMid and sdpMLineIndex attributes
// from ICE candidates as these are legacy attributes for when bundle is not used.
// We are using "bundle" policy for media lines so we manually set the sdpMLineIndex attribute to 0 (our assumed bundle master media line)
// If we don't do this the browser may be unable to form a media connection
// because some browsers are brittle if the bundle master (e.g. commonly mid=0) doesn't get a candidate first.
// because some browsers are brittle if the bundle master doesn't get a candidate first.
// Note: This assumes we are using bundle and that the bundle master is the first media line (0).
const remoteIceCandidate = new RTCIceCandidate({
candidate: iceCandidateInit.candidate,
sdpMid: ''
sdpMLineIndex: 0
});

this.peerConnectionController.handleOnIce(remoteIceCandidate);
Expand Down