@webex/plugin-meetings 3.0.0-beta.372 → 3.0.0-beta.373

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.
@@ -5,221 +5,354 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
5
5
  _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.getVideoSenderMqa = exports.getVideoReceiverMqa = exports.getAudioSenderMqa = exports.getAudioReceiverMqa = void 0;
8
+ exports.getVideoSenderStreamMqa = exports.getVideoSenderMqa = exports.getVideoReceiverStreamMqa = exports.getVideoReceiverMqa = exports.getAudioSenderStreamMqa = exports.getAudioSenderMqa = exports.getAudioReceiverStreamMqa = exports.getAudioReceiverMqa = void 0;
9
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
9
10
  var _max2 = _interopRequireDefault(require("lodash/max"));
10
11
  var _mean2 = _interopRequireDefault(require("lodash/mean"));
11
12
  var _constants = require("../constants");
13
+ /**
14
+ * Get the totals of a certain value from a certain media type.
15
+ *
16
+ * @param {object} stats - The large stats object.
17
+ * @param {string} sendrecvType - "send" or "recv".
18
+ * @param {string} baseMediaType - audio or video _and_ share or non-share.
19
+ * @param {string} value - The value we want to get the totals of.
20
+ * @returns {number}
21
+ */
22
+ var getTotalValueFromBaseType = function getTotalValueFromBaseType(stats, sendrecvType, baseMediaType, value) {
23
+ return (0, _keys.default)(stats).filter(function (mt) {
24
+ return mt.includes(baseMediaType);
25
+ }).reduce(function (acc, mt) {
26
+ var _stats$mt, _stats$mt$sendrecvTyp;
27
+ return acc + (((_stats$mt = stats[mt]) === null || _stats$mt === void 0 ? void 0 : (_stats$mt$sendrecvTyp = _stats$mt[sendrecvType]) === null || _stats$mt$sendrecvTyp === void 0 ? void 0 : _stats$mt$sendrecvTyp[value]) || 0);
28
+ }, 0);
29
+ };
12
30
  var getAudioReceiverMqa = function getAudioReceiverMqa(_ref) {
13
- var _lastMqaDataSent$medi, _lastMqaDataSent$medi2, _lastMqaDataSent$medi3, _lastMqaDataSent$medi4, _lastMqaDataSent$medi5, _lastMqaDataSent$medi6, _lastMqaDataSent$medi7, _lastMqaDataSent$medi8;
31
+ var _statsResults$Object$;
14
32
  var audioReceiver = _ref.audioReceiver,
15
33
  statsResults = _ref.statsResults,
16
34
  lastMqaDataSent = _ref.lastMqaDataSent,
17
- mediaType = _ref.mediaType;
35
+ baseMediaType = _ref.baseMediaType;
18
36
  var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
19
- var lastPacketsReceived = ((_lastMqaDataSent$medi = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi === void 0 ? void 0 : _lastMqaDataSent$medi[sendrecvType].totalPacketsReceived) || 0;
20
- var lastPacketsLost = ((_lastMqaDataSent$medi2 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi2 === void 0 ? void 0 : _lastMqaDataSent$medi2[sendrecvType].totalPacketsLost) || 0;
21
- var lastPacketsDecoded = ((_lastMqaDataSent$medi3 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi3 === void 0 ? void 0 : _lastMqaDataSent$medi3[sendrecvType].totalSamplesDecoded) || 0;
22
- var lastSamplesReceived = ((_lastMqaDataSent$medi4 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi4 === void 0 ? void 0 : _lastMqaDataSent$medi4[sendrecvType].totalSamplesReceived) || 0;
23
- var lastConcealedSamples = ((_lastMqaDataSent$medi5 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi5 === void 0 ? void 0 : _lastMqaDataSent$medi5[sendrecvType].concealedSamples) || 0;
24
- var lastBytesReceived = ((_lastMqaDataSent$medi6 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi6 === void 0 ? void 0 : _lastMqaDataSent$medi6[sendrecvType].totalBytesReceived) || 0;
25
- var lastFecPacketsReceived = ((_lastMqaDataSent$medi7 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi7 === void 0 ? void 0 : _lastMqaDataSent$medi7[sendrecvType].fecPacketsReceived) || 0;
26
- var lastFecPacketsDiscarded = ((_lastMqaDataSent$medi8 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi8 === void 0 ? void 0 : _lastMqaDataSent$medi8[sendrecvType].fecPacketsDiscarded) || 0;
27
- var csi = statsResults[mediaType].csi;
28
- if (csi && !audioReceiver.streams[0].common.csi.includes(csi)) {
29
- audioReceiver.streams[0].common.csi.push(csi);
30
- }
31
- audioReceiver.common.common.direction = statsResults[mediaType].direction;
32
- audioReceiver.common.common.isMain = !mediaType.includes('-share');
37
+ var getLastTotalValue = function getLastTotalValue(value) {
38
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
39
+ };
40
+ var getTotalValue = function getTotalValue(value) {
41
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
42
+ };
43
+ var lastPacketsReceived = getLastTotalValue('totalPacketsReceived');
44
+ var lastPacketsLost = getLastTotalValue('totalPacketsLost');
45
+ var lastBytesReceived = getLastTotalValue('totalBytesReceived');
46
+ var lastFecPacketsReceived = getLastTotalValue('fecPacketsReceived');
47
+ var lastFecPacketsDiscarded = getLastTotalValue('fecPacketsDiscarded');
48
+ var totalPacketsReceived = getTotalValue('totalPacketsReceived');
49
+ var packetsLost = getTotalValue('totalPacketsLost');
50
+ var totalBytesReceived = getTotalValue('totalBytesReceived');
51
+ var totalFecPacketsReceived = getTotalValue('fecPacketsReceived');
52
+ var totalFecPacketsDiscarded = getTotalValue('fecPacketsDiscarded');
53
+ audioReceiver.common.common.direction = ((_statsResults$Object$ = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
54
+ return mediaType.includes(baseMediaType);
55
+ })]) === null || _statsResults$Object$ === void 0 ? void 0 : _statsResults$Object$.direction) || 'inactive';
56
+ audioReceiver.common.common.isMain = !baseMediaType.includes('-share');
33
57
  audioReceiver.common.transportType = statsResults.connectionType.local.transport;
34
58
 
35
59
  // add rtpPacket info inside common as also for call analyzer
36
- audioReceiver.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
37
- audioReceiver.streams[0].common.rtpPackets = audioReceiver.common.rtpPackets;
60
+ audioReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived;
38
61
 
39
62
  // Hop by hop are numbers and not percentage so we compare on what we sent the last min
40
63
  // collect the packets received for the last min
41
- var totalPacketsLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
64
+ var totalPacketsLost = packetsLost - lastPacketsLost;
42
65
  audioReceiver.common.mediaHopByHopLost = totalPacketsLost;
43
66
  audioReceiver.common.rtpHopByHopLost = totalPacketsLost;
44
- audioReceiver.streams[0].common.maxRtpJitter =
45
- // @ts-ignore
46
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
47
- audioReceiver.streams[0].common.meanRtpJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
48
- audioReceiver.streams[0].common.rtpJitter = audioReceiver.streams[0].common.maxRtpJitter;
49
-
50
- // Fec packets do come in as part of the FEC only for audio
51
- var fecRecovered = statsResults[mediaType][sendrecvType].fecPacketsReceived - lastFecPacketsReceived - (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);
52
- audioReceiver.common.fecPackets = fecRecovered || 0;
53
- audioReceiver.streams[0].common.rtpEndToEndLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;
54
- audioReceiver.streams[0].common.framesDropped = statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;
55
- audioReceiver.streams[0].common.renderedFrameRate = audioReceiver.streams[0].common.framesDropped * 100 / 60 || 0;
56
- audioReceiver.streams[0].common.framesReceived = statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;
57
- audioReceiver.streams[0].common.concealedFrames = statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;
58
- audioReceiver.streams[0].common.receivedBitrate = (statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8 / 60 || 0;
59
- audioReceiver.common.rtpBitrate = audioReceiver.streams[0].common.receivedBitrate;
67
+ var fecRecovered = totalFecPacketsReceived - lastFecPacketsReceived - (totalFecPacketsDiscarded - lastFecPacketsDiscarded);
68
+ audioReceiver.common.fecPackets = fecRecovered;
69
+ audioReceiver.common.rtpBitrate = (totalBytesReceived - lastBytesReceived) * 8 / 60 || 0;
60
70
  };
61
71
  exports.getAudioReceiverMqa = getAudioReceiverMqa;
62
- var getAudioSenderMqa = function getAudioSenderMqa(_ref2) {
63
- var _lastMqaDataSent$medi9, _lastMqaDataSent$medi10, _lastMqaDataSent$medi11, _lastMqaDataSent$medi12, _lastMqaDataSent$medi13;
64
- var audioSender = _ref2.audioSender,
72
+ var getAudioReceiverStreamMqa = function getAudioReceiverStreamMqa(_ref2) {
73
+ var _lastMqaDataSent$medi, _lastMqaDataSent$medi2, _lastMqaDataSent$medi3, _lastMqaDataSent$medi4, _lastMqaDataSent$medi5, _lastMqaDataSent$medi6, _lastMqaDataSent$medi7, _lastMqaDataSent$medi8;
74
+ var audioReceiverStream = _ref2.audioReceiverStream,
65
75
  statsResults = _ref2.statsResults,
66
76
  lastMqaDataSent = _ref2.lastMqaDataSent,
67
77
  mediaType = _ref2.mediaType;
68
- var sendrecvType = _constants.STATS.SEND_DIRECTION;
69
- var lastPacketsSent = ((_lastMqaDataSent$medi9 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi9 === void 0 ? void 0 : _lastMqaDataSent$medi9[sendrecvType].totalPacketsSent) || 0;
70
- var lastPacketsLost = ((_lastMqaDataSent$medi10 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi10 === void 0 ? void 0 : _lastMqaDataSent$medi10[sendrecvType].totalPacketsLostOnReceiver) || 0;
71
- var lastBytesSent = ((_lastMqaDataSent$medi11 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi11 === void 0 ? void 0 : _lastMqaDataSent$medi11[sendrecvType].totalBytesSent) || 0;
72
- var lastFramesEncoded = ((_lastMqaDataSent$medi12 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi12 === void 0 ? void 0 : _lastMqaDataSent$medi12[sendrecvType].totalKeyFramesEncoded) || 0;
73
- var lastFirCount = ((_lastMqaDataSent$medi13 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi13 === void 0 ? void 0 : _lastMqaDataSent$medi13[sendrecvType].totalFirCount) || 0;
78
+ var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
79
+ var lastPacketsDecoded = ((_lastMqaDataSent$medi = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi === void 0 ? void 0 : _lastMqaDataSent$medi[sendrecvType].totalSamplesDecoded) || 0;
80
+ var lastSamplesReceived = ((_lastMqaDataSent$medi2 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi2 === void 0 ? void 0 : _lastMqaDataSent$medi2[sendrecvType].totalSamplesReceived) || 0;
81
+ var lastConcealedSamples = ((_lastMqaDataSent$medi3 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi3 === void 0 ? void 0 : _lastMqaDataSent$medi3[sendrecvType].concealedSamples) || 0;
82
+ var lastBytesReceived = ((_lastMqaDataSent$medi4 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi4 === void 0 ? void 0 : _lastMqaDataSent$medi4[sendrecvType].totalBytesReceived) || 0;
83
+ var lastFecPacketsReceived = ((_lastMqaDataSent$medi5 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi5 === void 0 ? void 0 : _lastMqaDataSent$medi5[sendrecvType].fecPacketsReceived) || 0;
84
+ var lastFecPacketsDiscarded = ((_lastMqaDataSent$medi6 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi6 === void 0 ? void 0 : _lastMqaDataSent$medi6[sendrecvType].fecPacketsDiscarded) || 0;
85
+ var lastPacketsReceived = ((_lastMqaDataSent$medi7 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi7 === void 0 ? void 0 : _lastMqaDataSent$medi7[sendrecvType].totalPacketsReceived) || 0;
86
+ var lastPacketsLost = ((_lastMqaDataSent$medi8 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi8 === void 0 ? void 0 : _lastMqaDataSent$medi8[sendrecvType].totalPacketsLost) || 0;
74
87
  var csi = statsResults[mediaType].csi;
75
- if (csi && !audioSender.streams[0].common.csi.includes(csi)) {
76
- audioSender.streams[0].common.csi.push(csi);
88
+ if (csi && !audioReceiverStream.common.csi.includes(csi)) {
89
+ audioReceiverStream.common.csi.push(csi);
77
90
  }
78
- audioSender.common.common.direction = statsResults[mediaType].direction;
79
- audioSender.common.common.isMain = !mediaType.includes('-share');
80
- audioSender.common.transportType = statsResults.connectionType.local.transport;
81
- audioSender.common.maxRemoteJitter =
91
+ audioReceiverStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
92
+ audioReceiverStream.common.maxRtpJitter =
82
93
  // @ts-ignore
83
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
84
- audioSender.common.meanRemoteJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
85
- audioSender.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
86
- audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;
94
+ (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
95
+ audioReceiverStream.common.meanRtpJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRtpJitter) * 1000 || 0;
96
+ audioReceiverStream.common.rtpJitter = audioReceiverStream.common.maxRtpJitter;
97
+
98
+ // Fec packets do come in as part of the FEC only for audio
99
+ var fecRecovered = statsResults[mediaType][sendrecvType].fecPacketsReceived - lastFecPacketsReceived - (statsResults[mediaType][sendrecvType].fecPacketsDiscarded - lastFecPacketsDiscarded);
100
+ audioReceiverStream.common.rtpEndToEndLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost - fecRecovered || 0;
101
+ audioReceiverStream.common.framesDropped = statsResults[mediaType][sendrecvType].totalSamplesDecoded - lastPacketsDecoded || 0;
102
+ audioReceiverStream.common.renderedFrameRate = audioReceiverStream.common.framesDropped * 100 / 60 || 0;
103
+ audioReceiverStream.common.framesReceived = statsResults[mediaType][sendrecvType].totalSamplesReceived - lastSamplesReceived || 0;
104
+ audioReceiverStream.common.concealedFrames = statsResults[mediaType][sendrecvType].concealedSamples - lastConcealedSamples || 0;
105
+ audioReceiverStream.common.receivedBitrate = (statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived) * 8 / 60 || 0;
106
+ };
107
+ exports.getAudioReceiverStreamMqa = getAudioReceiverStreamMqa;
108
+ var getAudioSenderMqa = function getAudioSenderMqa(_ref3) {
109
+ var _statsResults$Object$2;
110
+ var audioSender = _ref3.audioSender,
111
+ statsResults = _ref3.statsResults,
112
+ lastMqaDataSent = _ref3.lastMqaDataSent,
113
+ baseMediaType = _ref3.baseMediaType;
114
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
115
+ var getLastTotalValue = function getLastTotalValue(value) {
116
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
117
+ };
118
+ var getTotalValue = function getTotalValue(value) {
119
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
120
+ };
121
+ var lastPacketsSent = getLastTotalValue('totalPacketsSent');
122
+ var lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');
123
+ var totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');
124
+ var totalPacketsSent = getTotalValue('totalPacketsSent');
125
+ var meanRemoteJitter = (0, _keys.default)(statsResults).filter(function (mt) {
126
+ return mt.includes(baseMediaType);
127
+ }).reduce(function (acc, mt) {
128
+ return acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter);
129
+ }, []);
130
+ var meanRoundTripTime = (0, _keys.default)(statsResults).filter(function (mt) {
131
+ return mt.includes(baseMediaType);
132
+ }).reduce(function (acc, mt) {
133
+ return acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime);
134
+ }, []);
135
+ audioSender.common.common.direction = ((_statsResults$Object$2 = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
136
+ return mediaType.includes(baseMediaType);
137
+ })]) === null || _statsResults$Object$2 === void 0 ? void 0 : _statsResults$Object$2.direction) || 'inactive';
138
+ audioSender.common.common.isMain = !baseMediaType.includes('-share');
139
+ audioSender.common.transportType = statsResults.connectionType.local.transport;
140
+ audioSender.common.maxRemoteJitter = (0, _max2.default)(meanRemoteJitter) * 1000 || 0;
141
+ audioSender.common.meanRemoteJitter = (0, _mean2.default)(meanRemoteJitter) * 1000 || 0;
142
+ audioSender.common.rtpPackets = totalPacketsSent - lastPacketsSent || 0;
143
+ // audioSender.streams[0].common.rtpPackets = audioSender.common.rtpPackets;
87
144
  // From candidate-pair
88
- audioSender.common.availableBitrate = statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;
145
+ audioSender.common.availableBitrate = getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'availableOutgoingBitrate');
89
146
  // Calculate based on how much packets lost of received compated to how to the client sent
90
147
 
91
- var totalpacketsLostForaMin = statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;
92
- audioSender.common.remoteLossRate = audioSender.common.rtpPackets > 0 ? totalpacketsLostForaMin * 100 / audioSender.common.rtpPackets : 0; // This is the packets sent with in last min || 0;
148
+ var totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;
149
+ audioSender.common.remoteLossRate = totalPacketsSent - lastPacketsSent > 0 ? totalPacketsLostForaMin * 100 / (totalPacketsSent - lastPacketsSent) : 0; // This is the packets sent with in last min
93
150
 
94
- audioSender.common.maxRoundTripTime =
95
- // @ts-ignore
96
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
97
- audioSender.common.meanRoundTripTime = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
151
+ audioSender.common.maxRoundTripTime = (0, _max2.default)(meanRoundTripTime) * 1000 || 0;
152
+ audioSender.common.meanRoundTripTime = (0, _mean2.default)(meanRoundTripTime) * 1000 || 0;
98
153
  audioSender.common.roundTripTime = audioSender.common.maxRoundTripTime;
99
154
 
100
155
  // Calculate the outgoing bitrate
101
- var totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;
102
- audioSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
103
- audioSender.common.rtpBitrate = audioSender.streams[0].common.transmittedBitrate;
104
- audioSender.streams[0].transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;
105
- audioSender.streams[0].requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
156
+ var totalBytesSentInaMin = getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, 'totalBytesSent') - getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, 'totalBytesSent');
157
+ audioSender.common.rtpBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
106
158
  };
107
159
  exports.getAudioSenderMqa = getAudioSenderMqa;
108
- var getVideoReceiverMqa = function getVideoReceiverMqa(_ref3) {
109
- var _lastMqaDataSent$medi14, _lastMqaDataSent$medi15, _lastMqaDataSent$medi16, _lastMqaDataSent$medi17, _lastMqaDataSent$medi18, _lastMqaDataSent$medi19, _lastMqaDataSent$medi20, _lastMqaDataSent$medi21;
110
- var videoReceiver = _ref3.videoReceiver,
111
- statsResults = _ref3.statsResults,
112
- lastMqaDataSent = _ref3.lastMqaDataSent,
113
- mediaType = _ref3.mediaType;
114
- var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
115
- var lastPacketsReceived = ((_lastMqaDataSent$medi14 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi14 === void 0 ? void 0 : _lastMqaDataSent$medi14[sendrecvType].totalPacketsReceived) || 0;
116
- var lastPacketsLost = ((_lastMqaDataSent$medi15 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi15 === void 0 ? void 0 : _lastMqaDataSent$medi15[sendrecvType].totalPacketsLost) || 0;
117
- var lastBytesReceived = ((_lastMqaDataSent$medi16 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi16 === void 0 ? void 0 : _lastMqaDataSent$medi16[sendrecvType].totalBytesReceived) || 0;
118
- var lastFramesReceived = ((_lastMqaDataSent$medi17 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi17 === void 0 ? void 0 : _lastMqaDataSent$medi17[sendrecvType].framesReceived) || 0;
119
- var lastFramesDecoded = ((_lastMqaDataSent$medi18 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi18 === void 0 ? void 0 : _lastMqaDataSent$medi18[sendrecvType].framesDecoded) || 0;
120
- var lastFramesDropped = ((_lastMqaDataSent$medi19 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi19 === void 0 ? void 0 : _lastMqaDataSent$medi19[sendrecvType].framesDropped) || 0;
121
- var lastKeyFramesDecoded = ((_lastMqaDataSent$medi20 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi20 === void 0 ? void 0 : _lastMqaDataSent$medi20[sendrecvType].keyFramesDecoded) || 0;
122
- var lastPliCount = ((_lastMqaDataSent$medi21 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi21 === void 0 ? void 0 : _lastMqaDataSent$medi21[sendrecvType].totalPliCount) || 0;
160
+ var getAudioSenderStreamMqa = function getAudioSenderStreamMqa(_ref4) {
161
+ var _lastMqaDataSent$medi9, _lastMqaDataSent$medi10, _lastMqaDataSent$medi11, _lastMqaDataSent$medi12;
162
+ var audioSenderStream = _ref4.audioSenderStream,
163
+ statsResults = _ref4.statsResults,
164
+ lastMqaDataSent = _ref4.lastMqaDataSent,
165
+ mediaType = _ref4.mediaType;
166
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
167
+ var lastBytesSent = ((_lastMqaDataSent$medi9 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi9 === void 0 ? void 0 : _lastMqaDataSent$medi9[sendrecvType].totalBytesSent) || 0;
168
+ var lastFramesEncoded = ((_lastMqaDataSent$medi10 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi10 === void 0 ? void 0 : _lastMqaDataSent$medi10[sendrecvType].totalKeyFramesEncoded) || 0;
169
+ var lastFirCount = ((_lastMqaDataSent$medi11 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi11 === void 0 ? void 0 : _lastMqaDataSent$medi11[sendrecvType].totalFirCount) || 0;
170
+ var lastPacketsSent = ((_lastMqaDataSent$medi12 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi12 === void 0 ? void 0 : _lastMqaDataSent$medi12[sendrecvType].totalPacketsSent) || 0;
123
171
  var csi = statsResults[mediaType].csi;
124
- if (csi && !videoReceiver.streams[0].common.csi.includes(csi)) {
125
- videoReceiver.streams[0].common.csi.push(csi);
172
+ if (csi && !audioSenderStream.common.csi.includes(csi)) {
173
+ audioSenderStream.common.csi.push(csi);
126
174
  }
127
- videoReceiver.common.common.direction = statsResults[mediaType].direction;
128
- videoReceiver.common.common.isMain = !mediaType.includes('-share');
175
+ audioSenderStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
176
+ var totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;
177
+ audioSenderStream.common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
178
+ audioSenderStream.transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastFramesEncoded || 0;
179
+ audioSenderStream.requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
180
+ };
181
+ exports.getAudioSenderStreamMqa = getAudioSenderStreamMqa;
182
+ var getVideoReceiverMqa = function getVideoReceiverMqa(_ref5) {
183
+ var _statsResults$Object$3;
184
+ var videoReceiver = _ref5.videoReceiver,
185
+ statsResults = _ref5.statsResults,
186
+ lastMqaDataSent = _ref5.lastMqaDataSent,
187
+ baseMediaType = _ref5.baseMediaType;
188
+ var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
189
+ var getLastTotalValue = function getLastTotalValue(value) {
190
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
191
+ };
192
+ var getTotalValue = function getTotalValue(value) {
193
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
194
+ };
195
+ var lastPacketsReceived = getLastTotalValue('totalPacketsReceived');
196
+ var lastPacketsLost = getLastTotalValue('totalPacketsLost');
197
+ var lastBytesReceived = getLastTotalValue('totalBytesReceived');
198
+ var packetsLost = getTotalValue('totalPacketsLost');
199
+ var totalPacketsReceived = getTotalValue('totalPacketsReceived');
200
+ var totalBytesReceived = getTotalValue('totalBytesReceived');
201
+ var meanRemoteJitter = (0, _keys.default)(statsResults).filter(function (mt) {
202
+ return mt.includes(baseMediaType);
203
+ }).reduce(function (acc, mt) {
204
+ return acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter);
205
+ }, []);
206
+ videoReceiver.common.common.direction = ((_statsResults$Object$3 = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
207
+ return mediaType.includes(baseMediaType);
208
+ })]) === null || _statsResults$Object$3 === void 0 ? void 0 : _statsResults$Object$3.direction) || 'inactive';
209
+ videoReceiver.common.common.isMain = !baseMediaType.includes('-share');
129
210
  videoReceiver.common.transportType = statsResults.connectionType.local.transport;
130
211
 
131
212
  // collect the packets received for the last min
132
- videoReceiver.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
133
- videoReceiver.streams[0].common.rtpPackets = videoReceiver.common.rtpPackets;
213
+ videoReceiver.common.rtpPackets = totalPacketsReceived - lastPacketsReceived || 0;
134
214
 
135
215
  // Hop by hop are numbers and not percentage so we compare on what we sent the last min
136
216
  // this is including packet lost
137
- var totalPacketsLost = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
217
+ var totalPacketsLost = packetsLost - lastPacketsLost;
138
218
  videoReceiver.common.mediaHopByHopLost = totalPacketsLost;
139
219
  videoReceiver.common.rtpHopByHopLost = totalPacketsLost;
140
220
 
141
- // End to end packetloss is after recovery
142
- videoReceiver.streams[0].common.rtpEndToEndLost = totalPacketsLost;
143
-
144
221
  // calculate this values
222
+ videoReceiver.common.maxRemoteJitter = (0, _max2.default)(meanRemoteJitter) * 1000 || 0;
223
+ videoReceiver.common.meanRemoteJitter = (0, _mean2.default)(meanRemoteJitter) * 1000 || 0;
145
224
 
146
- videoReceiver.common.maxRemoteJitter =
225
+ // Calculate the outgoing bitrate
226
+ var totalBytesReceivedInaMin = totalBytesReceived - lastBytesReceived;
227
+ videoReceiver.common.rtpBitrate = totalBytesReceivedInaMin ? totalBytesReceivedInaMin * 8 / 60 : 0;
228
+ };
229
+ exports.getVideoReceiverMqa = getVideoReceiverMqa;
230
+ var getVideoReceiverStreamMqa = function getVideoReceiverStreamMqa(_ref6) {
231
+ var _lastMqaDataSent$medi13, _lastMqaDataSent$medi14, _lastMqaDataSent$medi15, _lastMqaDataSent$medi16, _lastMqaDataSent$medi17, _lastMqaDataSent$medi18, _lastMqaDataSent$medi19, _lastMqaDataSent$medi20;
232
+ var videoReceiverStream = _ref6.videoReceiverStream,
233
+ statsResults = _ref6.statsResults,
234
+ lastMqaDataSent = _ref6.lastMqaDataSent,
235
+ mediaType = _ref6.mediaType;
236
+ var sendrecvType = _constants.STATS.RECEIVE_DIRECTION;
237
+ var lastPacketsReceived = ((_lastMqaDataSent$medi13 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi13 === void 0 ? void 0 : _lastMqaDataSent$medi13[sendrecvType].totalPacketsReceived) || 0;
238
+ var lastPacketsLost = ((_lastMqaDataSent$medi14 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi14 === void 0 ? void 0 : _lastMqaDataSent$medi14[sendrecvType].totalPacketsLost) || 0;
239
+ var lastBytesReceived = ((_lastMqaDataSent$medi15 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi15 === void 0 ? void 0 : _lastMqaDataSent$medi15[sendrecvType].totalBytesReceived) || 0;
240
+ var lastFramesReceived = ((_lastMqaDataSent$medi16 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi16 === void 0 ? void 0 : _lastMqaDataSent$medi16[sendrecvType].framesReceived) || 0;
241
+ var lastFramesDecoded = ((_lastMqaDataSent$medi17 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi17 === void 0 ? void 0 : _lastMqaDataSent$medi17[sendrecvType].framesDecoded) || 0;
242
+ var lastFramesDropped = ((_lastMqaDataSent$medi18 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi18 === void 0 ? void 0 : _lastMqaDataSent$medi18[sendrecvType].framesDropped) || 0;
243
+ var lastKeyFramesDecoded = ((_lastMqaDataSent$medi19 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi19 === void 0 ? void 0 : _lastMqaDataSent$medi19[sendrecvType].keyFramesDecoded) || 0;
244
+ var lastPliCount = ((_lastMqaDataSent$medi20 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi20 === void 0 ? void 0 : _lastMqaDataSent$medi20[sendrecvType].totalPliCount) || 0;
245
+ var csi = statsResults[mediaType].csi;
246
+ if (csi && !videoReceiverStream.common.csi.includes(csi)) {
247
+ videoReceiverStream.common.csi.push(csi);
248
+ }
249
+ videoReceiverStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsReceived - lastPacketsReceived || 0;
250
+ var totalPacketLoss = statsResults[mediaType][sendrecvType].totalPacketsLost - lastPacketsLost || 0;
251
+
252
+ // End to end packetloss is after recovery
253
+ videoReceiverStream.common.rtpEndToEndLost = totalPacketLoss;
254
+ videoReceiverStream.common.rtpJitter =
147
255
  // @ts-ignore
148
256
  (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
149
- videoReceiver.common.meanRemoteJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
150
- videoReceiver.streams[0].common.rtpJitter = videoReceiver.common.maxRemoteJitter;
151
-
152
- // Calculate the outgoing bitrate
153
257
  var totalBytesReceivedInaMin = statsResults[mediaType][sendrecvType].totalBytesReceived - lastBytesReceived;
154
- videoReceiver.streams[0].common.receivedBitrate = totalBytesReceivedInaMin ? totalBytesReceivedInaMin * 8 / 60 : 0;
155
- videoReceiver.common.rtpBitrate = videoReceiver.streams[0].common.receivedBitrate;
156
-
157
- // From tracks //TODO: calculate a proper one
258
+ videoReceiverStream.common.receivedBitrate = totalBytesReceivedInaMin ? totalBytesReceivedInaMin * 8 / 60 : 0;
158
259
  var totalFrameReceivedInaMin = statsResults[mediaType][sendrecvType].framesReceived - lastFramesReceived;
159
260
  var totalFrameDecodedInaMin = statsResults[mediaType][sendrecvType].framesDecoded - lastFramesDecoded;
160
- videoReceiver.streams[0].common.receivedFrameRate = Math.round(totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0);
161
- videoReceiver.streams[0].common.renderedFrameRate = Math.round(totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0);
162
- videoReceiver.streams[0].common.framesDropped = statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped;
163
- videoReceiver.streams[0].receivedHeight = statsResults[mediaType][sendrecvType].height || 0;
164
- videoReceiver.streams[0].receivedWidth = statsResults[mediaType][sendrecvType].width || 0;
165
- videoReceiver.streams[0].receivedFrameSize = videoReceiver.streams[0].receivedHeight * videoReceiver.streams[0].receivedWidth / 256;
166
- videoReceiver.streams[0].receivedKeyFrames = statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;
167
- videoReceiver.streams[0].requestedKeyFrames = statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;
261
+ videoReceiverStream.common.receivedFrameRate = Math.round(totalFrameReceivedInaMin ? totalFrameReceivedInaMin / 60 : 0);
262
+ videoReceiverStream.common.renderedFrameRate = Math.round(totalFrameDecodedInaMin ? totalFrameDecodedInaMin / 60 : 0);
263
+ videoReceiverStream.common.framesDropped = statsResults[mediaType][sendrecvType].framesDropped - lastFramesDropped || 0;
264
+ videoReceiverStream.receivedHeight = statsResults[mediaType][sendrecvType].height || 0;
265
+ videoReceiverStream.receivedWidth = statsResults[mediaType][sendrecvType].width || 0;
266
+ videoReceiverStream.receivedFrameSize = videoReceiverStream.receivedHeight * videoReceiverStream.receivedWidth / 256;
267
+ videoReceiverStream.receivedKeyFrames = statsResults[mediaType][sendrecvType].keyFramesDecoded - lastKeyFramesDecoded || 0;
268
+ videoReceiverStream.requestedKeyFrames = statsResults[mediaType][sendrecvType].totalPliCount - lastPliCount || 0;
168
269
  };
169
- exports.getVideoReceiverMqa = getVideoReceiverMqa;
170
- var getVideoSenderMqa = function getVideoSenderMqa(_ref4) {
171
- var _lastMqaDataSent$medi22, _lastMqaDataSent$medi23, _lastMqaDataSent$medi24, _lastMqaDataSent$medi25, _lastMqaDataSent$medi26, _lastMqaDataSent$medi27;
172
- var videoSender = _ref4.videoSender,
173
- statsResults = _ref4.statsResults,
174
- lastMqaDataSent = _ref4.lastMqaDataSent,
175
- mediaType = _ref4.mediaType;
270
+ exports.getVideoReceiverStreamMqa = getVideoReceiverStreamMqa;
271
+ var getVideoSenderMqa = function getVideoSenderMqa(_ref7) {
272
+ var _statsResults$Object$4;
273
+ var videoSender = _ref7.videoSender,
274
+ statsResults = _ref7.statsResults,
275
+ lastMqaDataSent = _ref7.lastMqaDataSent,
276
+ baseMediaType = _ref7.baseMediaType;
176
277
  var sendrecvType = _constants.STATS.SEND_DIRECTION;
177
- var lastPacketsSent = ((_lastMqaDataSent$medi22 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi22 === void 0 ? void 0 : _lastMqaDataSent$medi22[sendrecvType].totalPacketsSent) || 0;
178
- var lastPacketsLost = ((_lastMqaDataSent$medi23 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi23 === void 0 ? void 0 : _lastMqaDataSent$medi23[sendrecvType].totalPacketsLostOnReceiver) || 0;
179
- var lastBytesSent = ((_lastMqaDataSent$medi24 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi24 === void 0 ? void 0 : _lastMqaDataSent$medi24[sendrecvType].totalBytesSent) || 0;
180
- var lastKeyFramesEncoded = ((_lastMqaDataSent$medi25 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi25 === void 0 ? void 0 : _lastMqaDataSent$medi25[sendrecvType].totalKeyFramesEncoded) || 0;
181
- var lastFirCount = ((_lastMqaDataSent$medi26 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi26 === void 0 ? void 0 : _lastMqaDataSent$medi26[sendrecvType].totalFirCount) || 0;
182
- var lastFramesSent = ((_lastMqaDataSent$medi27 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi27 === void 0 ? void 0 : _lastMqaDataSent$medi27[sendrecvType].framesSent) || 0;
183
- var csi = statsResults[mediaType].csi;
184
- if (csi && !videoSender.streams[0].common.csi.includes(csi)) {
185
- videoSender.streams[0].common.csi.push(csi);
186
- }
187
- videoSender.common.common.direction = statsResults[mediaType].direction;
188
- videoSender.common.common.isMain = !mediaType.includes('-share');
278
+ var getLastTotalValue = function getLastTotalValue(value) {
279
+ return getTotalValueFromBaseType(lastMqaDataSent, sendrecvType, baseMediaType, value);
280
+ };
281
+ var getTotalValue = function getTotalValue(value) {
282
+ return getTotalValueFromBaseType(statsResults, sendrecvType, baseMediaType, value);
283
+ };
284
+ var lastPacketsSent = getLastTotalValue('totalPacketsSent');
285
+ var lastBytesSent = getLastTotalValue('totalBytesSent');
286
+ var lastPacketsLostTotal = getLastTotalValue('totalPacketsLostOnReceiver');
287
+ var totalPacketsLostOnReceiver = getTotalValue('totalPacketsLostOnReceiver');
288
+ var totalPacketsSent = getTotalValue('totalPacketsSent');
289
+ var totalBytesSent = getTotalValue('totalBytesSent');
290
+ var availableOutgoingBitrate = getTotalValue('availableOutgoingBitrate');
291
+ videoSender.common.common.direction = ((_statsResults$Object$4 = statsResults[(0, _keys.default)(statsResults).find(function (mediaType) {
292
+ return mediaType.includes(baseMediaType);
293
+ })]) === null || _statsResults$Object$4 === void 0 ? void 0 : _statsResults$Object$4.direction) || 'inactive';
294
+ videoSender.common.common.isMain = !baseMediaType.includes('-share');
189
295
  videoSender.common.transportType = statsResults.connectionType.local.transport;
296
+ var meanRemoteJitter = (0, _keys.default)(statsResults).filter(function (mt) {
297
+ return mt.includes(baseMediaType);
298
+ }).reduce(function (acc, mt) {
299
+ return acc.concat(statsResults[mt][sendrecvType].meanRemoteJitter);
300
+ }, []);
301
+ var meanRoundTripTime = (0, _keys.default)(statsResults).filter(function (mt) {
302
+ return mt.includes(baseMediaType);
303
+ }).reduce(function (acc, mt) {
304
+ return acc.concat(statsResults[mt][sendrecvType].meanRoundTripTime);
305
+ }, []);
190
306
 
191
307
  // @ts-ignore
192
- videoSender.common.maxRemoteJitter =
193
- // @ts-ignore
194
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
195
- videoSender.common.meanRemoteJitter = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRemoteJitter) * 1000 || 0;
196
- videoSender.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
197
- videoSender.common.availableBitrate = statsResults[mediaType][sendrecvType].availableOutgoingBitrate || 0;
198
- // Calculate based on how much packets lost of received compated to how to the client sent
308
+ videoSender.common.maxRemoteJitter = (0, _max2.default)(meanRemoteJitter) * 1000 || 0;
309
+ videoSender.common.meanRemoteJitter = (0, _mean2.default)(meanRemoteJitter) * 1000 || 0;
310
+ videoSender.common.rtpPackets = totalPacketsSent - lastPacketsSent;
311
+ videoSender.common.availableBitrate = availableOutgoingBitrate;
199
312
 
200
- var totalpacketsLostForaMin = statsResults[mediaType][sendrecvType].totalPacketsLostOnReceiver - lastPacketsLost;
201
- videoSender.common.remoteLossRate = videoSender.common.rtpPackets > 0 ? totalpacketsLostForaMin * 100 / videoSender.common.rtpPackets : 0; // This is the packets sent with in last min || 0;
313
+ // Calculate based on how much packets lost of received compated to how to the client sent
314
+ var totalPacketsLostForaMin = totalPacketsLostOnReceiver - lastPacketsLostTotal;
315
+ videoSender.common.remoteLossRate = totalPacketsSent - lastPacketsSent > 0 ? totalPacketsLostForaMin * 100 / (totalPacketsSent - lastPacketsSent) : 0; // This is the packets sent with in last min || 0;
202
316
 
203
- videoSender.common.maxRoundTripTime =
204
- // @ts-ignore
205
- (0, _max2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
206
- videoSender.common.meanRoundTripTime = (0, _mean2.default)(statsResults[mediaType][sendrecvType].meanRoundTripTime) * 1000 || 0;
317
+ videoSender.common.maxRoundTripTime = (0, _max2.default)(meanRoundTripTime) * 1000 || 0;
318
+ videoSender.common.meanRoundTripTime = (0, _mean2.default)(meanRoundTripTime) * 1000 || 0;
207
319
  videoSender.common.roundTripTime = videoSender.common.maxRoundTripTime;
208
- videoSender.streams[0].common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
320
+
321
+ // Calculate the outgoing bitrate
322
+ var totalBytesSentInaMin = totalBytesSent - lastBytesSent;
323
+ videoSender.common.rtpBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
324
+ };
325
+ exports.getVideoSenderMqa = getVideoSenderMqa;
326
+ var getVideoSenderStreamMqa = function getVideoSenderStreamMqa(_ref8) {
327
+ var _lastMqaDataSent$medi21, _lastMqaDataSent$medi22, _lastMqaDataSent$medi23, _lastMqaDataSent$medi24, _lastMqaDataSent$medi25;
328
+ var videoSenderStream = _ref8.videoSenderStream,
329
+ statsResults = _ref8.statsResults,
330
+ lastMqaDataSent = _ref8.lastMqaDataSent,
331
+ mediaType = _ref8.mediaType;
332
+ var sendrecvType = _constants.STATS.SEND_DIRECTION;
333
+ var lastPacketsSent = ((_lastMqaDataSent$medi21 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi21 === void 0 ? void 0 : _lastMqaDataSent$medi21[sendrecvType].totalPacketsSent) || 0;
334
+ var lastBytesSent = ((_lastMqaDataSent$medi22 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi22 === void 0 ? void 0 : _lastMqaDataSent$medi22[sendrecvType].totalBytesSent) || 0;
335
+ var lastKeyFramesEncoded = ((_lastMqaDataSent$medi23 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi23 === void 0 ? void 0 : _lastMqaDataSent$medi23[sendrecvType].totalKeyFramesEncoded) || 0;
336
+ var lastFirCount = ((_lastMqaDataSent$medi24 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi24 === void 0 ? void 0 : _lastMqaDataSent$medi24[sendrecvType].totalFirCount) || 0;
337
+ var lastFramesSent = ((_lastMqaDataSent$medi25 = lastMqaDataSent[mediaType]) === null || _lastMqaDataSent$medi25 === void 0 ? void 0 : _lastMqaDataSent$medi25[sendrecvType].framesSent) || 0;
338
+ var csi = statsResults[mediaType].csi;
339
+ if (csi && !videoSenderStream.common.csi.includes(csi)) {
340
+ videoSenderStream.common.csi.push(csi);
341
+ }
342
+ videoSenderStream.common.rtpPackets = statsResults[mediaType][sendrecvType].totalPacketsSent - lastPacketsSent || 0;
209
343
 
210
344
  // Calculate the outgoing bitrate
211
345
  var totalBytesSentInaMin = statsResults[mediaType][sendrecvType].totalBytesSent - lastBytesSent;
212
- videoSender.streams[0].common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
213
- videoSender.common.rtpBitrate = videoSender.streams[0].common.transmittedBitrate;
214
- videoSender.streams[0].transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;
215
- videoSender.streams[0].requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
346
+ videoSenderStream.common.transmittedBitrate = totalBytesSentInaMin ? totalBytesSentInaMin * 8 / 60 : 0;
347
+ videoSenderStream.transmittedKeyFrames = statsResults[mediaType][sendrecvType].totalKeyFramesEncoded - lastKeyFramesEncoded || 0;
348
+ videoSenderStream.requestedKeyFrames = statsResults[mediaType][sendrecvType].totalFirCount - lastFirCount || 0;
216
349
 
217
350
  // From tracks //TODO: calculate a proper one
218
351
  var totalFrameSentInaMin = statsResults[mediaType][sendrecvType].framesSent - (lastFramesSent || 0);
219
- videoSender.streams[0].common.transmittedFrameRate = Math.round(totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0);
220
- videoSender.streams[0].transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;
221
- videoSender.streams[0].transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;
222
- videoSender.streams[0].transmittedFrameSize = videoSender.streams[0].transmittedHeight * videoSender.streams[0].transmittedWidth / 256;
352
+ videoSenderStream.common.transmittedFrameRate = Math.round(totalFrameSentInaMin ? totalFrameSentInaMin / 60 : 0);
353
+ videoSenderStream.transmittedHeight = statsResults[mediaType][sendrecvType].height || 0;
354
+ videoSenderStream.transmittedWidth = statsResults[mediaType][sendrecvType].width || 0;
355
+ videoSenderStream.transmittedFrameSize = videoSenderStream.transmittedHeight * videoSenderStream.transmittedWidth / 256;
223
356
  };
224
- exports.getVideoSenderMqa = getVideoSenderMqa;
357
+ exports.getVideoSenderStreamMqa = getVideoSenderStreamMqa;
225
358
  //# sourceMappingURL=mqaUtil.js.map