Просмотр исходного кода

fix(TPC): Filter ssrcs differently while extracting the SSRC map from SDP.

Use 'msid' for plan-b clients and 'cname' for unified-plan clients.
dev1
Jaya Allamsetty 4 лет назад
Родитель
Сommit
d5e60583b8
1 измененных файлов: 10 добавлений и 10 удалений
  1. 10
    10
      modules/RTC/TraceablePeerConnection.js

+ 10
- 10
modules/RTC/TraceablePeerConnection.js Просмотреть файл

@@ -1221,11 +1221,15 @@ TraceablePeerConnection.prototype._extractSSRCMap = function(desc) {
1221 1221
                 }
1222 1222
             }
1223 1223
         }
1224
-        for (const ssrc of mLine.ssrcs) {
1225
-            if (!this._usesUnifiedPlan && ssrc.attribute !== 'msid') {
1226
-                continue; // eslint-disable-line no-continue
1227
-            }
1228 1224
 
1225
+        let ssrcs = mLine.ssrcs;
1226
+
1227
+        // Filter the ssrcs with 'msid' attribute for plan-b clients and 'cname' for unified-plan clients.
1228
+        ssrcs = this._usesUnifiedPlan
1229
+            ? ssrcs.filter(s => s.attribute === 'cname')
1230
+            : ssrcs.filter(s => s.attribute === 'msid');
1231
+
1232
+        for (const ssrc of ssrcs) {
1229 1233
             // Use the mediaType as key for the source map for unified plan clients since msids are not part of
1230 1234
             // the standard and the unified plan SDPs do not have a proper msid attribute for the sources.
1231 1235
             // Also the ssrcs for sources do not change for Unified plan clients since RTCRtpSender#replaceTrack is
@@ -1242,11 +1246,7 @@ TraceablePeerConnection.prototype._extractSSRCMap = function(desc) {
1242 1246
                 };
1243 1247
                 ssrcMap.set(key, ssrcInfo);
1244 1248
             }
1245
-
1246
-            // Avoid duplicates.
1247
-            if (!ssrcInfo.ssrcs.find(s => s === ssrcNumber)) {
1248
-                ssrcInfo.ssrcs.push(ssrcNumber);
1249
-            }
1249
+            ssrcInfo.ssrcs.push(ssrcNumber);
1250 1250
 
1251 1251
             if (groupsMap.has(ssrcNumber)) {
1252 1252
                 const ssrcGroups = groupsMap.get(ssrcNumber);
@@ -2922,7 +2922,7 @@ TraceablePeerConnection.prototype._processLocalSSRCsMap = function(ssrcMap) {
2922 2922
             // It is normal to find no SSRCs for a muted video track in
2923 2923
             // the local SDP as the recv-only SSRC is no longer munged in.
2924 2924
             // So log the warning only if it's not a muted video track.
2925
-            logger.warn(`${this} No SSRCs found in the local SDP for track=${track}`);
2925
+            logger.warn(`${this} No SSRCs found in the local SDP for track=${track}, stream=${sourceIdentifier}`);
2926 2926
         }
2927 2927
     }
2928 2928
 };

Загрузка…
Отмена
Сохранить