|
|
@@ -1460,8 +1460,7 @@ TraceablePeerConnection.prototype._injectSsrcGroupForUnifiedSimulcast
|
|
1460
|
1460
|
const sdp = transform.parse(desc.sdp);
|
|
1461
|
1461
|
const video = sdp.media.find(mline => mline.type === 'video');
|
|
1462
|
1462
|
|
|
1463
|
|
- // Check if the browser supports RTX, add only the primary ssrcs to the
|
|
1464
|
|
- // SIM group if that is the case.
|
|
|
1463
|
+ // Check if the browser supports RTX, add only the primary ssrcs to the SIM group if that is the case.
|
|
1465
|
1464
|
video.ssrcGroups = video.ssrcGroups || [];
|
|
1466
|
1465
|
const fidGroups = video.ssrcGroups.filter(group => group.semantics === 'FID');
|
|
1467
|
1466
|
|
|
|
@@ -1483,6 +1482,12 @@ TraceablePeerConnection.prototype._injectSsrcGroupForUnifiedSimulcast
|
|
1483
|
1482
|
// Group already exists, no need to do anything
|
|
1484
|
1483
|
return desc;
|
|
1485
|
1484
|
}
|
|
|
1485
|
+
|
|
|
1486
|
+ // Reverse the order of the SSRCs when signaling them to the bridge. On Firefox, the first SSRC corresponds
|
|
|
1487
|
+ // to the highest resolution stream whereas the bridge assumes it to be that of the lowest resolution
|
|
|
1488
|
+ // stream as is the case with the other browsers.
|
|
|
1489
|
+ browser.isFirefox() && ssrcs.reverse();
|
|
|
1490
|
+
|
|
1486
|
1491
|
video.ssrcGroups.push({
|
|
1487
|
1492
|
semantics: 'SIM',
|
|
1488
|
1493
|
ssrcs: ssrcs.join(' ')
|