瀏覽代碼

fix(TPC) Enable L1T3 for p2p streams (#2845)

* fix(TPC) Enable L1T3 for p2p streams

* squash: Update unit tests
master
Jaya Allamsetty 5 月之前
父節點
當前提交
49eb29a846
沒有連結到貢獻者的電子郵件帳戶。
共有 2 個檔案被更改,包括 20 行新增15 行删除
  1. 6
    1
      modules/RTC/TPCUtils.js
  2. 14
    14
      modules/RTC/TPCUtils.spec.js

+ 6
- 1
modules/RTC/TPCUtils.js 查看文件

410
      * @returns {Array<VideoEncoderScalabilityMode> | undefined}
410
      * @returns {Array<VideoEncoderScalabilityMode> | undefined}
411
      */
411
      */
412
     calculateEncodingsScalabilityMode(localVideoTrack, codec, maxHeight) {
412
     calculateEncodingsScalabilityMode(localVideoTrack, codec, maxHeight) {
413
-        if (!this.pc.isSpatialScalabilityOn() || !this.codecSettings[codec].scalabilityModeEnabled) {
413
+        if (!this.codecSettings[codec].scalabilityModeEnabled) {
414
             return;
414
             return;
415
         }
415
         }
416
 
416
 
417
+        // Use LIT3 for P2P wherever its supported.
418
+        if (!this.pc.isSpatialScalabilityOn()) {
419
+            return [ VideoEncoderScalabilityMode.L1T3 ];
420
+        }
421
+
417
         // Default modes for simulcast.
422
         // Default modes for simulcast.
418
         const scalabilityModes = [
423
         const scalabilityModes = [
419
             VideoEncoderScalabilityMode.L1T3,
424
             VideoEncoderScalabilityMode.L1T3,

+ 14
- 14
modules/RTC/TPCUtils.spec.js 查看文件

504
                 expect(maxBitrates[0]).toBe(2500000);
504
                 expect(maxBitrates[0]).toBe(2500000);
505
 
505
 
506
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
506
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
507
-                expect(scalabilityModes).toBe(undefined);
507
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
508
 
508
 
509
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
509
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
510
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
510
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
590
                 expect(maxBitrates[0]).toBe(1000000);
590
                 expect(maxBitrates[0]).toBe(1000000);
591
 
591
 
592
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
592
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
593
-                expect(scalabilityModes).toBe(undefined);
593
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
594
 
594
 
595
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
595
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
596
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
596
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
605
                 expect(maxBitrates[0]).toBe(300000);
605
                 expect(maxBitrates[0]).toBe(300000);
606
 
606
 
607
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
607
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
608
-                expect(scalabilityModes).toBe(undefined);
608
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
609
 
609
 
610
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
610
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
611
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[1].scaleFactor);
611
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[1].scaleFactor);
620
                 expect(maxBitrates[0]).toBe(1000000);
620
                 expect(maxBitrates[0]).toBe(1000000);
621
 
621
 
622
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
622
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
623
-                expect(scalabilityModes).toBe(undefined);
623
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
624
 
624
 
625
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
625
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
626
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
626
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
635
                 expect(maxBitrates[0]).toBe(100000);
635
                 expect(maxBitrates[0]).toBe(100000);
636
 
636
 
637
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
637
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
638
-                expect(scalabilityModes).toBe(undefined);
638
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
639
 
639
 
640
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
640
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
641
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[0].scaleFactor);
641
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[0].scaleFactor);
672
                 expect(maxBitrates[0]).toBe(2500000);
672
                 expect(maxBitrates[0]).toBe(2500000);
673
 
673
 
674
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
674
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
675
-                expect(scalabilityModes).toBe(undefined);
675
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
676
 
676
 
677
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
677
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
678
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
678
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1104
                 expect(maxBitrates[0]).toBe(1200000);
1104
                 expect(maxBitrates[0]).toBe(1200000);
1105
 
1105
 
1106
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1106
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1107
-                expect(scalabilityModes).toBe(undefined);
1107
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1108
 
1108
 
1109
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1109
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1110
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1110
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1119
                 expect(maxBitrates[0]).toBe(300000);
1119
                 expect(maxBitrates[0]).toBe(300000);
1120
 
1120
 
1121
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1121
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1122
-                expect(scalabilityModes).toBe(undefined);
1122
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1123
 
1123
 
1124
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1124
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1125
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[1].scaleFactor);
1125
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[1].scaleFactor);
1134
                 expect(maxBitrates[0]).toBe(100000);
1134
                 expect(maxBitrates[0]).toBe(100000);
1135
 
1135
 
1136
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1136
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1137
-                expect(scalabilityModes).toBe(undefined);
1137
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1138
 
1138
 
1139
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1139
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1140
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[0].scaleFactor);
1140
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[0].scaleFactor);
1171
                 expect(maxBitrates[0]).toBe(2500000);
1171
                 expect(maxBitrates[0]).toBe(2500000);
1172
 
1172
 
1173
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1173
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1174
-                expect(scalabilityModes).toBe(undefined);
1174
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1175
 
1175
 
1176
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1176
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1177
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1177
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1397
                 expect(maxBitrates[0]).toBe(2000000);
1397
                 expect(maxBitrates[0]).toBe(2000000);
1398
 
1398
 
1399
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1399
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1400
-                expect(scalabilityModes).toBe(undefined);
1400
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1401
 
1401
 
1402
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1402
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1403
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1403
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1412
                 expect(maxBitrates[0]).toBe(800000);
1412
                 expect(maxBitrates[0]).toBe(800000);
1413
 
1413
 
1414
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1414
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1415
-                expect(scalabilityModes).toBe(undefined);
1415
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1416
 
1416
 
1417
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1417
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1418
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[1].scaleFactor);
1418
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[1].scaleFactor);
1427
                 expect(maxBitrates[0]).toBe(400000);
1427
                 expect(maxBitrates[0]).toBe(400000);
1428
 
1428
 
1429
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1429
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1430
-                expect(scalabilityModes).toBe(undefined);
1430
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1431
 
1431
 
1432
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1432
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1433
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[0].scaleFactor);
1433
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[0].scaleFactor);
1464
                 expect(maxBitrates[0]).toBe(2500000);
1464
                 expect(maxBitrates[0]).toBe(2500000);
1465
 
1465
 
1466
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1466
                 scalabilityModes = tpcUtils.calculateEncodingsScalabilityMode(track, codec, height);
1467
-                expect(scalabilityModes).toBe(undefined);
1467
+                expect(scalabilityModes).toEqual([ VideoEncoderScalabilityMode.L1T3 ]);
1468
 
1468
 
1469
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1469
                 scaleFactor = tpcUtils.calculateEncodingsScaleFactor(track, codec, height);
1470
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);
1470
                 expect(scaleFactor[0]).toBe(SIM_LAYERS[2].scaleFactor);

Loading…
取消
儲存