@webex/plugin-meetings 3.3.1-next.7 → 3.3.1-next.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/breakouts/index.js
CHANGED
|
@@ -1041,7 +1041,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
1041
1041
|
this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
|
|
1042
1042
|
}
|
|
1043
1043
|
},
|
|
1044
|
-
version: "3.3.1-next.
|
|
1044
|
+
version: "3.3.1-next.9"
|
|
1045
1045
|
});
|
|
1046
1046
|
var _default = exports.default = Breakouts;
|
|
1047
1047
|
//# sourceMappingURL=index.js.map
|
|
@@ -373,7 +373,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
|
|
|
373
373
|
throw error;
|
|
374
374
|
});
|
|
375
375
|
},
|
|
376
|
-
version: "3.3.1-next.
|
|
376
|
+
version: "3.3.1-next.9"
|
|
377
377
|
});
|
|
378
378
|
var _default = exports.default = SimultaneousInterpretation;
|
|
379
379
|
//# sourceMappingURL=index.js.map
|
package/dist/webinar/index.js
CHANGED
|
@@ -62,7 +62,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
updateCanManageWebcast: function updateCanManageWebcast(canManageWebcast) {
|
|
63
63
|
this.set('canManageWebcast', canManageWebcast);
|
|
64
64
|
},
|
|
65
|
-
version: "3.3.1-next.
|
|
65
|
+
version: "3.3.1-next.9"
|
|
66
66
|
});
|
|
67
67
|
var _default = exports.default = Webinar;
|
|
68
68
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
44
44
|
"@webex/jest-config-legacy": "0.0.0",
|
|
45
45
|
"@webex/legacy-tools": "0.0.0",
|
|
46
|
-
"@webex/plugin-meetings": "3.3.1-next.
|
|
47
|
-
"@webex/plugin-rooms": "3.3.1-next.
|
|
48
|
-
"@webex/test-helper-chai": "3.3.1-next.
|
|
49
|
-
"@webex/test-helper-mocha": "3.3.1-next.
|
|
50
|
-
"@webex/test-helper-mock-webex": "3.3.1-next.
|
|
51
|
-
"@webex/test-helper-retry": "3.3.1-next.
|
|
52
|
-
"@webex/test-helper-test-users": "3.3.1-next.
|
|
46
|
+
"@webex/plugin-meetings": "3.3.1-next.9",
|
|
47
|
+
"@webex/plugin-rooms": "3.3.1-next.3",
|
|
48
|
+
"@webex/test-helper-chai": "3.3.1-next.2",
|
|
49
|
+
"@webex/test-helper-mocha": "3.3.1-next.2",
|
|
50
|
+
"@webex/test-helper-mock-webex": "3.3.1-next.2",
|
|
51
|
+
"@webex/test-helper-retry": "3.3.1-next.2",
|
|
52
|
+
"@webex/test-helper-test-users": "3.3.1-next.2",
|
|
53
53
|
"chai": "^4.3.4",
|
|
54
54
|
"chai-as-promised": "^7.1.1",
|
|
55
55
|
"eslint": "^8.24.0",
|
|
@@ -61,20 +61,20 @@
|
|
|
61
61
|
"typescript": "^4.7.4"
|
|
62
62
|
},
|
|
63
63
|
"dependencies": {
|
|
64
|
-
"@webex/common": "3.3.1-next.
|
|
64
|
+
"@webex/common": "3.3.1-next.2",
|
|
65
65
|
"@webex/internal-media-core": "2.5.3",
|
|
66
|
-
"@webex/internal-plugin-conversation": "3.3.1-next.
|
|
67
|
-
"@webex/internal-plugin-device": "3.3.1-next.
|
|
68
|
-
"@webex/internal-plugin-llm": "3.3.1-next.
|
|
69
|
-
"@webex/internal-plugin-mercury": "3.3.1-next.
|
|
70
|
-
"@webex/internal-plugin-metrics": "3.3.1-next.
|
|
71
|
-
"@webex/internal-plugin-support": "3.3.1-next.
|
|
72
|
-
"@webex/internal-plugin-user": "3.3.1-next.
|
|
73
|
-
"@webex/internal-plugin-voicea": "3.3.1-next.
|
|
74
|
-
"@webex/media-helpers": "3.3.1-next.
|
|
75
|
-
"@webex/plugin-people": "3.3.1-next.
|
|
76
|
-
"@webex/plugin-rooms": "3.3.1-next.
|
|
77
|
-
"@webex/webex-core": "3.3.1-next.
|
|
66
|
+
"@webex/internal-plugin-conversation": "3.3.1-next.3",
|
|
67
|
+
"@webex/internal-plugin-device": "3.3.1-next.2",
|
|
68
|
+
"@webex/internal-plugin-llm": "3.3.1-next.3",
|
|
69
|
+
"@webex/internal-plugin-mercury": "3.3.1-next.3",
|
|
70
|
+
"@webex/internal-plugin-metrics": "3.3.1-next.2",
|
|
71
|
+
"@webex/internal-plugin-support": "3.3.1-next.3",
|
|
72
|
+
"@webex/internal-plugin-user": "3.3.1-next.2",
|
|
73
|
+
"@webex/internal-plugin-voicea": "3.3.1-next.9",
|
|
74
|
+
"@webex/media-helpers": "3.3.1-next.4",
|
|
75
|
+
"@webex/plugin-people": "3.3.1-next.3",
|
|
76
|
+
"@webex/plugin-rooms": "3.3.1-next.3",
|
|
77
|
+
"@webex/webex-core": "3.3.1-next.2",
|
|
78
78
|
"ampersand-collection": "^2.0.2",
|
|
79
79
|
"bowser": "^2.11.0",
|
|
80
80
|
"btoa": "^1.2.1",
|
|
@@ -91,5 +91,5 @@
|
|
|
91
91
|
"//": [
|
|
92
92
|
"TODO: upgrade jwt-decode when moving to node 18"
|
|
93
93
|
],
|
|
94
|
-
"version": "3.3.1-next.
|
|
94
|
+
"version": "3.3.1-next.9"
|
|
95
95
|
}
|
|
@@ -905,14 +905,17 @@ describe('plugin-meetings', () => {
|
|
|
905
905
|
);
|
|
906
906
|
});
|
|
907
907
|
|
|
908
|
-
|
|
909
|
-
|
|
908
|
+
describe('frame rate reporting in stats analyzer', () => {
|
|
909
|
+
beforeEach(async () => {
|
|
910
910
|
await startStatsAnalyzer();
|
|
911
|
+
});
|
|
912
|
+
|
|
913
|
+
it('should report a zero frame rate for both transmitted and received video at the start', async () => {
|
|
911
914
|
assert.strictEqual(mqeData.videoTransmit[0].streams[0].common.transmittedFrameRate, 0);
|
|
912
915
|
assert.strictEqual(mqeData.videoReceive[0].streams[0].common.receivedFrameRate, 0);
|
|
913
916
|
});
|
|
914
917
|
|
|
915
|
-
it('
|
|
918
|
+
it('should accurately report the transmitted and received frame rate after video frames are processed', async () => {
|
|
916
919
|
fakeStats.video.senders[0].report[0].framesSent += 300;
|
|
917
920
|
fakeStats.video.receivers[0].report[0].framesReceived += 300;
|
|
918
921
|
await progressTime(MQA_INTERVAL);
|
|
@@ -923,9 +926,12 @@ describe('plugin-meetings', () => {
|
|
|
923
926
|
});
|
|
924
927
|
});
|
|
925
928
|
|
|
926
|
-
|
|
927
|
-
|
|
929
|
+
describe('RTP packets count in stats analyzer', () => {
|
|
930
|
+
beforeEach(async () => {
|
|
928
931
|
await startStatsAnalyzer();
|
|
932
|
+
});
|
|
933
|
+
|
|
934
|
+
it('should report zero RTP packets for all streams at the start of the stats analyzer', async () => {
|
|
929
935
|
assert.strictEqual(mqeData.audioTransmit[0].common.rtpPackets, 0);
|
|
930
936
|
assert.strictEqual(mqeData.audioTransmit[0].streams[0].common.rtpPackets, 0);
|
|
931
937
|
assert.strictEqual(mqeData.audioReceive[0].common.rtpPackets, 0);
|
|
@@ -936,7 +942,7 @@ describe('plugin-meetings', () => {
|
|
|
936
942
|
assert.strictEqual(mqeData.videoReceive[0].streams[0].common.rtpPackets, 0);
|
|
937
943
|
});
|
|
938
944
|
|
|
939
|
-
it('after packets are sent', async () => {
|
|
945
|
+
it('should update the RTP packets count correctly after audio and video packets are sent', async () => {
|
|
940
946
|
fakeStats.audio.senders[0].report[0].packetsSent += 5;
|
|
941
947
|
fakeStats.video.senders[0].report[0].packetsSent += 5;
|
|
942
948
|
await progressTime(MQA_INTERVAL);
|
|
@@ -947,7 +953,7 @@ describe('plugin-meetings', () => {
|
|
|
947
953
|
assert.strictEqual(mqeData.videoTransmit[0].streams[0].common.rtpPackets, 5);
|
|
948
954
|
});
|
|
949
955
|
|
|
950
|
-
it('after packets are received', async () => {
|
|
956
|
+
it('should update the RTP packets count correctly after audio and video packets are received', async () => {
|
|
951
957
|
fakeStats.audio.senders[0].report[0].packetsSent += 10;
|
|
952
958
|
fakeStats.video.senders[0].report[0].packetsSent += 10;
|
|
953
959
|
fakeStats.audio.receivers[0].report[0].packetsReceived += 10;
|
|
@@ -961,20 +967,23 @@ describe('plugin-meetings', () => {
|
|
|
961
967
|
});
|
|
962
968
|
});
|
|
963
969
|
|
|
964
|
-
|
|
965
|
-
|
|
970
|
+
describe('FEC packet reporting in stats analyzer', () => {
|
|
971
|
+
beforeEach(async () => {
|
|
966
972
|
await startStatsAnalyzer();
|
|
973
|
+
})
|
|
974
|
+
|
|
975
|
+
it('should initially report zero FEC packets at the start of the stats analyzer', async () => {
|
|
967
976
|
assert.strictEqual(mqeData.audioReceive[0].common.fecPackets, 0);
|
|
968
977
|
});
|
|
969
978
|
|
|
970
|
-
it('
|
|
979
|
+
it('should accurately report the count of FEC packets received', async () => {
|
|
971
980
|
fakeStats.audio.receivers[0].report[0].fecPacketsReceived += 5;
|
|
972
981
|
await progressTime(MQA_INTERVAL);
|
|
973
982
|
|
|
974
983
|
assert.strictEqual(mqeData.audioReceive[0].common.fecPackets, 5);
|
|
975
984
|
});
|
|
976
985
|
|
|
977
|
-
it('
|
|
986
|
+
it('should correctly adjust the FEC packet count when packets are discarded', async () => {
|
|
978
987
|
fakeStats.audio.receivers[0].report[0].fecPacketsReceived += 15;
|
|
979
988
|
fakeStats.audio.receivers[0].report[0].fecPacketsDiscarded += 5;
|
|
980
989
|
await progressTime(MQA_INTERVAL);
|
|
@@ -983,16 +992,19 @@ describe('plugin-meetings', () => {
|
|
|
983
992
|
});
|
|
984
993
|
});
|
|
985
994
|
|
|
986
|
-
|
|
987
|
-
|
|
995
|
+
describe('packet loss metrics reporting in stats analyzer', () => {
|
|
996
|
+
beforeEach(async () => {
|
|
988
997
|
await startStatsAnalyzer();
|
|
998
|
+
})
|
|
999
|
+
|
|
1000
|
+
it('should report zero packet loss for both audio and video at the start of the stats analyzer', async () => {
|
|
989
1001
|
assert.strictEqual(mqeData.audioReceive[0].common.mediaHopByHopLost, 0);
|
|
990
1002
|
assert.strictEqual(mqeData.audioReceive[0].common.rtpHopByHopLost, 0);
|
|
991
1003
|
assert.strictEqual(mqeData.videoReceive[0].common.mediaHopByHopLost, 0);
|
|
992
1004
|
assert.strictEqual(mqeData.videoReceive[0].common.rtpHopByHopLost, 0);
|
|
993
1005
|
});
|
|
994
1006
|
|
|
995
|
-
it('after
|
|
1007
|
+
it('should update packet loss metrics correctly for both audio and video after packet loss is detected', async () => {
|
|
996
1008
|
fakeStats.audio.receivers[0].report[0].packetsLost += 5;
|
|
997
1009
|
fakeStats.video.receivers[0].report[0].packetsLost += 5;
|
|
998
1010
|
await progressTime(MQA_INTERVAL);
|
|
@@ -1004,14 +1016,17 @@ describe('plugin-meetings', () => {
|
|
|
1004
1016
|
});
|
|
1005
1017
|
});
|
|
1006
1018
|
|
|
1007
|
-
|
|
1008
|
-
|
|
1019
|
+
describe('remote loss rate reporting in stats analyzer', () => {
|
|
1020
|
+
beforeEach(async () => {
|
|
1009
1021
|
await startStatsAnalyzer();
|
|
1022
|
+
});
|
|
1023
|
+
|
|
1024
|
+
it('should report a zero remote loss rate for both audio and video at the start', async () => {
|
|
1010
1025
|
assert.strictEqual(mqeData.audioTransmit[0].common.remoteLossRate, 0);
|
|
1011
1026
|
assert.strictEqual(mqeData.videoTransmit[0].common.remoteLossRate, 0);
|
|
1012
1027
|
});
|
|
1013
1028
|
|
|
1014
|
-
it('after packets are sent', async () => {
|
|
1029
|
+
it('should maintain a zero remote loss rate for both audio and video after packets are sent without loss', async () => {
|
|
1015
1030
|
fakeStats.audio.senders[0].report[0].packetsSent += 100;
|
|
1016
1031
|
fakeStats.video.senders[0].report[0].packetsSent += 100;
|
|
1017
1032
|
await progressTime(MQA_INTERVAL);
|
|
@@ -1020,7 +1035,7 @@ describe('plugin-meetings', () => {
|
|
|
1020
1035
|
assert.strictEqual(mqeData.videoTransmit[0].common.remoteLossRate, 0);
|
|
1021
1036
|
});
|
|
1022
1037
|
|
|
1023
|
-
it('
|
|
1038
|
+
it('should accurately calculate the remote loss rate for both audio and video after packet loss is detected', async () => {
|
|
1024
1039
|
fakeStats.audio.senders[0].report[0].packetsSent += 200;
|
|
1025
1040
|
fakeStats.audio.senders[0].report[1].packetsLost += 10;
|
|
1026
1041
|
fakeStats.video.senders[0].report[0].packetsSent += 200;
|
|
@@ -1032,6 +1047,7 @@ describe('plugin-meetings', () => {
|
|
|
1032
1047
|
});
|
|
1033
1048
|
});
|
|
1034
1049
|
|
|
1050
|
+
|
|
1035
1051
|
it('has the correct localIpAddress set when the candidateType is host', async () => {
|
|
1036
1052
|
await startStatsAnalyzer();
|
|
1037
1053
|
|
|
@@ -1646,189 +1662,191 @@ describe('plugin-meetings', () => {
|
|
|
1646
1662
|
]);
|
|
1647
1663
|
});
|
|
1648
1664
|
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
await startStatsAnalyzer({expected: {receiveVideo: true}});
|
|
1716
|
-
|
|
1717
|
-
await progressTime();
|
|
1665
|
+
describe('stream count for simulcast', async() => {
|
|
1666
|
+
it('has three streams for video senders for simulcast', async () => {
|
|
1667
|
+
pc.getTransceiverStats = sinon.stub().resolves({
|
|
1668
|
+
audio: {
|
|
1669
|
+
senders: [fakeStats.audio.senders[0]],
|
|
1670
|
+
receivers: [fakeStats.audio.receivers[0]],
|
|
1671
|
+
},
|
|
1672
|
+
video: {
|
|
1673
|
+
senders: [
|
|
1674
|
+
{
|
|
1675
|
+
localTrackLabel: 'fake-camera',
|
|
1676
|
+
report: [
|
|
1677
|
+
{
|
|
1678
|
+
type: 'outbound-rtp',
|
|
1679
|
+
bytesSent: 1,
|
|
1680
|
+
framesSent: 0,
|
|
1681
|
+
packetsSent: 0,
|
|
1682
|
+
isRequested: true,
|
|
1683
|
+
},
|
|
1684
|
+
{
|
|
1685
|
+
type: 'outbound-rtp',
|
|
1686
|
+
bytesSent: 1,
|
|
1687
|
+
framesSent: 0,
|
|
1688
|
+
packetsSent: 1,
|
|
1689
|
+
isRequested: true,
|
|
1690
|
+
},
|
|
1691
|
+
{
|
|
1692
|
+
type: 'outbound-rtp',
|
|
1693
|
+
bytesSent: 1000,
|
|
1694
|
+
framesSent: 1,
|
|
1695
|
+
packetsSent: 0,
|
|
1696
|
+
isRequested: true,
|
|
1697
|
+
},
|
|
1698
|
+
{
|
|
1699
|
+
type: 'remote-inbound-rtp',
|
|
1700
|
+
packetsLost: 0,
|
|
1701
|
+
},
|
|
1702
|
+
{
|
|
1703
|
+
type: 'candidate-pair',
|
|
1704
|
+
state: 'succeeded',
|
|
1705
|
+
localCandidateId: 'fake-candidate-id',
|
|
1706
|
+
},
|
|
1707
|
+
{
|
|
1708
|
+
type: 'candidate-pair',
|
|
1709
|
+
state: 'failed',
|
|
1710
|
+
localCandidateId: 'bad-candidate-id',
|
|
1711
|
+
},
|
|
1712
|
+
{
|
|
1713
|
+
type: 'local-candidate',
|
|
1714
|
+
id: 'fake-candidate-id',
|
|
1715
|
+
protocol: 'tcp',
|
|
1716
|
+
},
|
|
1717
|
+
],
|
|
1718
|
+
},
|
|
1719
|
+
],
|
|
1720
|
+
receivers: [fakeStats.video.receivers[0]],
|
|
1721
|
+
},
|
|
1722
|
+
screenShareAudio: {
|
|
1723
|
+
senders: [fakeStats.audio.senders[0]],
|
|
1724
|
+
receivers: [fakeStats.audio.receivers[0]],
|
|
1725
|
+
},
|
|
1726
|
+
screenShareVideo: {
|
|
1727
|
+
senders: [fakeStats.video.senders[0]],
|
|
1728
|
+
receivers: [fakeStats.video.receivers[0]],
|
|
1729
|
+
},
|
|
1730
|
+
});
|
|
1718
1731
|
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1732
|
+
await startStatsAnalyzer({expected: {receiveVideo: true}});
|
|
1733
|
+
|
|
1734
|
+
await progressTime();
|
|
1735
|
+
|
|
1736
|
+
assert.deepEqual(mqeData.videoTransmit[0].streams, [
|
|
1737
|
+
{
|
|
1738
|
+
common: {
|
|
1739
|
+
codec: 'H264',
|
|
1740
|
+
csi: [],
|
|
1741
|
+
duplicateSsci: 0,
|
|
1742
|
+
requestedBitrate: 0,
|
|
1743
|
+
requestedFrames: 0,
|
|
1744
|
+
rtpPackets: 0,
|
|
1745
|
+
ssci: 0,
|
|
1746
|
+
transmittedBitrate: 0.13333333333333333,
|
|
1747
|
+
transmittedFrameRate: 0
|
|
1748
|
+
},
|
|
1749
|
+
h264CodecProfile: 'BP',
|
|
1750
|
+
isAvatar: false,
|
|
1751
|
+
isHardwareEncoded: false,
|
|
1752
|
+
localConfigurationChanges: 2,
|
|
1753
|
+
maxFrameQp: 0,
|
|
1754
|
+
maxNoiseLevel: 0,
|
|
1755
|
+
minRegionQp: 0,
|
|
1756
|
+
remoteConfigurationChanges: 0,
|
|
1757
|
+
requestedFrameSize: 0,
|
|
1758
|
+
requestedKeyFrames: 0,
|
|
1759
|
+
transmittedFrameSize: 0,
|
|
1760
|
+
transmittedHeight: 0,
|
|
1761
|
+
transmittedKeyFrames: 0,
|
|
1762
|
+
transmittedKeyFramesClient: 0,
|
|
1763
|
+
transmittedKeyFramesConfigurationChange: 0,
|
|
1764
|
+
transmittedKeyFramesFeedback: 0,
|
|
1765
|
+
transmittedKeyFramesLocalDrop: 0,
|
|
1766
|
+
transmittedKeyFramesOtherLayer: 0,
|
|
1767
|
+
transmittedKeyFramesPeriodic: 0,
|
|
1768
|
+
transmittedKeyFramesSceneChange: 0,
|
|
1769
|
+
transmittedKeyFramesStartup: 0,
|
|
1770
|
+
transmittedKeyFramesUnknown: 0,
|
|
1771
|
+
transmittedWidth: 0,
|
|
1725
1772
|
requestedBitrate: 0,
|
|
1726
|
-
requestedFrames: 0,
|
|
1727
|
-
rtpPackets: 0,
|
|
1728
|
-
ssci: 0,
|
|
1729
|
-
transmittedBitrate: 0.13333333333333333,
|
|
1730
|
-
transmittedFrameRate: 0
|
|
1731
1773
|
},
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1774
|
+
{
|
|
1775
|
+
common: {
|
|
1776
|
+
codec: 'H264',
|
|
1777
|
+
csi: [],
|
|
1778
|
+
duplicateSsci: 0,
|
|
1779
|
+
requestedBitrate: 0,
|
|
1780
|
+
requestedFrames: 0,
|
|
1781
|
+
rtpPackets: 1,
|
|
1782
|
+
ssci: 0,
|
|
1783
|
+
transmittedBitrate: 0.13333333333333333,
|
|
1784
|
+
transmittedFrameRate: 0,
|
|
1785
|
+
},
|
|
1786
|
+
h264CodecProfile: 'BP',
|
|
1787
|
+
isAvatar: false,
|
|
1788
|
+
isHardwareEncoded: false,
|
|
1789
|
+
localConfigurationChanges: 2,
|
|
1790
|
+
maxFrameQp: 0,
|
|
1791
|
+
maxNoiseLevel: 0,
|
|
1792
|
+
minRegionQp: 0,
|
|
1793
|
+
remoteConfigurationChanges: 0,
|
|
1794
|
+
requestedFrameSize: 0,
|
|
1795
|
+
requestedKeyFrames: 0,
|
|
1796
|
+
transmittedFrameSize: 0,
|
|
1797
|
+
transmittedHeight: 0,
|
|
1798
|
+
transmittedKeyFrames: 0,
|
|
1799
|
+
transmittedKeyFramesClient: 0,
|
|
1800
|
+
transmittedKeyFramesConfigurationChange: 0,
|
|
1801
|
+
transmittedKeyFramesFeedback: 0,
|
|
1802
|
+
transmittedKeyFramesLocalDrop: 0,
|
|
1803
|
+
transmittedKeyFramesOtherLayer: 0,
|
|
1804
|
+
transmittedKeyFramesPeriodic: 0,
|
|
1805
|
+
transmittedKeyFramesSceneChange: 0,
|
|
1806
|
+
transmittedKeyFramesStartup: 0,
|
|
1807
|
+
transmittedKeyFramesUnknown: 0,
|
|
1808
|
+
transmittedWidth: 0,
|
|
1762
1809
|
requestedBitrate: 0,
|
|
1763
|
-
requestedFrames: 0,
|
|
1764
|
-
rtpPackets: 0,
|
|
1765
|
-
ssci: 0,
|
|
1766
|
-
transmittedBitrate: 0.13333333333333333,
|
|
1767
|
-
transmittedFrameRate: 0,
|
|
1768
1810
|
},
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1811
|
+
{
|
|
1812
|
+
common: {
|
|
1813
|
+
codec: 'H264',
|
|
1814
|
+
csi: [],
|
|
1815
|
+
duplicateSsci: 0,
|
|
1816
|
+
requestedBitrate: 0,
|
|
1817
|
+
requestedFrames: 0,
|
|
1818
|
+
rtpPackets: 0,
|
|
1819
|
+
ssci: 0,
|
|
1820
|
+
transmittedBitrate: 133.33333333333334,
|
|
1821
|
+
transmittedFrameRate: 0,
|
|
1822
|
+
},
|
|
1823
|
+
h264CodecProfile: 'BP',
|
|
1824
|
+
isAvatar: false,
|
|
1825
|
+
isHardwareEncoded: false,
|
|
1826
|
+
localConfigurationChanges: 2,
|
|
1827
|
+
maxFrameQp: 0,
|
|
1828
|
+
maxNoiseLevel: 0,
|
|
1829
|
+
minRegionQp: 0,
|
|
1830
|
+
remoteConfigurationChanges: 0,
|
|
1831
|
+
requestedFrameSize: 0,
|
|
1832
|
+
requestedKeyFrames: 0,
|
|
1833
|
+
transmittedFrameSize: 0,
|
|
1834
|
+
transmittedHeight: 0,
|
|
1835
|
+
transmittedKeyFrames: 0,
|
|
1836
|
+
transmittedKeyFramesClient: 0,
|
|
1837
|
+
transmittedKeyFramesConfigurationChange: 0,
|
|
1838
|
+
transmittedKeyFramesFeedback: 0,
|
|
1839
|
+
transmittedKeyFramesLocalDrop: 0,
|
|
1840
|
+
transmittedKeyFramesOtherLayer: 0,
|
|
1841
|
+
transmittedKeyFramesPeriodic: 0,
|
|
1842
|
+
transmittedKeyFramesSceneChange: 0,
|
|
1843
|
+
transmittedKeyFramesStartup: 0,
|
|
1844
|
+
transmittedKeyFramesUnknown: 0,
|
|
1845
|
+
transmittedWidth: 0,
|
|
1799
1846
|
requestedBitrate: 0,
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
transmittedBitrate: 133.33333333333334,
|
|
1804
|
-
transmittedFrameRate: 0,
|
|
1805
|
-
},
|
|
1806
|
-
h264CodecProfile: 'BP',
|
|
1807
|
-
isAvatar: false,
|
|
1808
|
-
isHardwareEncoded: false,
|
|
1809
|
-
localConfigurationChanges: 2,
|
|
1810
|
-
maxFrameQp: 0,
|
|
1811
|
-
maxNoiseLevel: 0,
|
|
1812
|
-
minRegionQp: 0,
|
|
1813
|
-
remoteConfigurationChanges: 0,
|
|
1814
|
-
requestedFrameSize: 0,
|
|
1815
|
-
requestedKeyFrames: 0,
|
|
1816
|
-
transmittedFrameSize: 0,
|
|
1817
|
-
transmittedHeight: 0,
|
|
1818
|
-
transmittedKeyFrames: 0,
|
|
1819
|
-
transmittedKeyFramesClient: 0,
|
|
1820
|
-
transmittedKeyFramesConfigurationChange: 0,
|
|
1821
|
-
transmittedKeyFramesFeedback: 0,
|
|
1822
|
-
transmittedKeyFramesLocalDrop: 0,
|
|
1823
|
-
transmittedKeyFramesOtherLayer: 0,
|
|
1824
|
-
transmittedKeyFramesPeriodic: 0,
|
|
1825
|
-
transmittedKeyFramesSceneChange: 0,
|
|
1826
|
-
transmittedKeyFramesStartup: 0,
|
|
1827
|
-
transmittedKeyFramesUnknown: 0,
|
|
1828
|
-
transmittedWidth: 0,
|
|
1829
|
-
requestedBitrate: 0,
|
|
1830
|
-
}
|
|
1831
|
-
]);
|
|
1847
|
+
}
|
|
1848
|
+
]);
|
|
1849
|
+
});
|
|
1832
1850
|
});
|
|
1833
1851
|
describe('active speaker status emission', async () => {
|
|
1834
1852
|
beforeEach(async () => {
|