@webex/plugin-meetings 3.0.0-beta.379 → 3.0.0-beta.380
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/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/meeting/index.js +14 -3
- package/dist/meeting/index.js.map +1 -1
- package/dist/statsAnalyzer/index.js +75 -88
- package/dist/statsAnalyzer/index.js.map +1 -1
- package/dist/types/statsAnalyzer/index.d.ts +5 -1
- package/dist/webinar/index.js +1 -1
- package/package.json +19 -19
- package/src/meeting/index.ts +12 -0
- package/src/statsAnalyzer/index.ts +131 -153
- package/test/unit/spec/meeting/index.js +21 -2
- package/test/unit/spec/stats-analyzer/index.js +686 -493
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
+
var _Object$keys2 = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
7
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
8
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
4
9
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
5
10
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
11
|
_Object$defineProperty(exports, "__esModule", {
|
|
@@ -26,6 +31,8 @@ var _config = require("../mediaQualityMetrics/config");
|
|
|
26
31
|
var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
|
|
27
32
|
var _global = _interopRequireDefault(require("./global"));
|
|
28
33
|
var _mqaUtil = require("./mqaUtil");
|
|
34
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
35
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
36
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
30
37
|
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
31
38
|
var EVENTS = {
|
|
@@ -248,7 +255,11 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
248
255
|
}, {
|
|
249
256
|
key: "updateMediaStatus",
|
|
250
257
|
value: function updateMediaStatus(status) {
|
|
251
|
-
|
|
258
|
+
var _this$meetingMediaSta, _this$meetingMediaSta2;
|
|
259
|
+
this.meetingMediaStatus = {
|
|
260
|
+
actual: _objectSpread(_objectSpread({}, (_this$meetingMediaSta = this.meetingMediaStatus) === null || _this$meetingMediaSta === void 0 ? void 0 : _this$meetingMediaSta.actual), status === null || status === void 0 ? void 0 : status.actual),
|
|
261
|
+
expected: _objectSpread(_objectSpread({}, (_this$meetingMediaSta2 = this.meetingMediaStatus) === null || _this$meetingMediaSta2 === void 0 ? void 0 : _this$meetingMediaSta2.expected), status === null || status === void 0 ? void 0 : status.expected)
|
|
262
|
+
};
|
|
252
263
|
}
|
|
253
264
|
|
|
254
265
|
/**
|
|
@@ -693,122 +704,77 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
693
704
|
return prev + (((_this7$lastStatsResul = _this7.lastStatsResults[cur]) === null || _this7$lastStatsResul === void 0 ? void 0 : _this7$lastStatsResul.recv[value]) || 0);
|
|
694
705
|
}, 0);
|
|
695
706
|
};
|
|
696
|
-
|
|
707
|
+
|
|
708
|
+
// Audio Transmit
|
|
709
|
+
if (this.lastStatsResults['audio-send']) {
|
|
697
710
|
// compare audio stats sent
|
|
698
711
|
// NOTE: relies on there being only one sender.
|
|
699
712
|
var currentStats = this.statsResults['audio-send'].send;
|
|
700
713
|
var previousStats = this.lastStatsResults['audio-send'].send;
|
|
701
|
-
if (currentStats.totalPacketsSent === previousStats.totalPacketsSent || currentStats.totalPacketsSent === 0) {
|
|
714
|
+
if (this.meetingMediaStatus.expected.sendAudio && currentStats.totalPacketsSent === previousStats.totalPacketsSent || currentStats.totalPacketsSent === 0) {
|
|
702
715
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio RTP packets sent", currentStats.totalPacketsSent);
|
|
703
716
|
} else {
|
|
704
|
-
if (currentStats.totalAudioEnergy === previousStats.totalAudioEnergy || currentStats.totalAudioEnergy === 0) {
|
|
717
|
+
if (this.meetingMediaStatus.expected.sendAudio && currentStats.totalAudioEnergy === previousStats.totalAudioEnergy || currentStats.totalAudioEnergy === 0) {
|
|
705
718
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio Energy present", currentStats.totalAudioEnergy);
|
|
706
719
|
}
|
|
707
|
-
if (currentStats.audioLevel === 0) {
|
|
720
|
+
if (this.meetingMediaStatus.expected.sendAudio && currentStats.audioLevel === 0) {
|
|
708
721
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> audio level is 0 for the user");
|
|
709
722
|
}
|
|
710
723
|
}
|
|
711
724
|
this.emitStartStopEvents('audio', previousStats.totalPacketsSent, currentStats.totalPacketsSent, true);
|
|
712
725
|
}
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
} else if (currentSamplesReceived === previousSamplesReceived || currentSamplesReceived === 0) {
|
|
722
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No audio samples received", currentSamplesReceived);
|
|
723
|
-
}
|
|
724
|
-
this.emitStartStopEvents('audio', previousPacketsReceived, currentPacketsReceived, false);
|
|
725
|
-
}
|
|
726
|
-
if (this.meetingMediaStatus.expected.sendVideo && this.lastStatsResults['video-send']) {
|
|
726
|
+
|
|
727
|
+
// Audio Receive
|
|
728
|
+
var currentAudioPacketsReceived = getCurrentStatsTotals('audio-recv', 'totalPacketsReceived');
|
|
729
|
+
var previousAudioPacketsReceived = getPreviousStatsTotals('audio-recv', 'totalPacketsReceived');
|
|
730
|
+
this.emitStartStopEvents('audio', previousAudioPacketsReceived, currentAudioPacketsReceived, false);
|
|
731
|
+
|
|
732
|
+
// Video Transmit
|
|
733
|
+
if (this.lastStatsResults['video-send']) {
|
|
727
734
|
// compare video stats sent
|
|
728
735
|
var _currentStats = this.statsResults['video-send'].send;
|
|
729
736
|
var _previousStats = this.lastStatsResults['video-send'].send;
|
|
730
|
-
if (_currentStats.totalPacketsSent === _previousStats.totalPacketsSent || _currentStats.totalPacketsSent === 0) {
|
|
737
|
+
if (this.meetingMediaStatus.expected.sendVideo && (_currentStats.totalPacketsSent === _previousStats.totalPacketsSent || _currentStats.totalPacketsSent === 0)) {
|
|
731
738
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets sent", _currentStats.totalPacketsSent);
|
|
732
739
|
} else {
|
|
733
|
-
if (_currentStats.framesEncoded === _previousStats.framesEncoded || _currentStats.framesEncoded === 0) {
|
|
740
|
+
if (this.meetingMediaStatus.expected.sendVideo && (_currentStats.framesEncoded === _previousStats.framesEncoded || _currentStats.framesEncoded === 0)) {
|
|
734
741
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames Encoded", _currentStats.framesEncoded);
|
|
735
742
|
}
|
|
736
|
-
if (this.statsResults['video-send'].send.framesSent === this.lastStatsResults['video-send'].send.framesSent || this.statsResults['video-send'].send.framesSent === 0) {
|
|
743
|
+
if (this.meetingMediaStatus.expected.sendVideo && (this.statsResults['video-send'].send.framesSent === this.lastStatsResults['video-send'].send.framesSent || this.statsResults['video-send'].send.framesSent === 0)) {
|
|
737
744
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video Frames sent", this.statsResults['video-send'].send.framesSent);
|
|
738
745
|
}
|
|
739
746
|
}
|
|
740
747
|
this.emitStartStopEvents('video', _previousStats.framesSent, _currentStats.framesSent, true);
|
|
741
748
|
}
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
var currentFramesDropped = getCurrentStatsTotals('video-recv', 'framesDropped');
|
|
751
|
-
var previousFramesDropped = getPreviousStatsTotals('video-recv', 'framesDropped');
|
|
752
|
-
if (_currentPacketsReceived === _previousPacketsReceived || _currentPacketsReceived === 0) {
|
|
753
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video RTP packets received", _currentPacketsReceived);
|
|
754
|
-
} else {
|
|
755
|
-
if (currentFramesReceived === previousFramesReceived || currentFramesReceived === 0) {
|
|
756
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video frames received", currentFramesReceived);
|
|
757
|
-
}
|
|
758
|
-
if (currentFramesDecoded === previousFramesDecoded || currentFramesDecoded === 0) {
|
|
759
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No video frames decoded", currentFramesDecoded);
|
|
760
|
-
}
|
|
761
|
-
if (currentFramesDropped - previousFramesDropped > 10) {
|
|
762
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> video frames are getting dropped", currentFramesDropped - previousFramesDropped);
|
|
763
|
-
}
|
|
764
|
-
}
|
|
765
|
-
this.emitStartStopEvents('video', previousFramesDecoded, currentFramesDecoded, false);
|
|
766
|
-
}
|
|
767
|
-
if (this.meetingMediaStatus.expected.sendShare && this.lastStatsResults['video-share-send']) {
|
|
749
|
+
|
|
750
|
+
// Video Receive
|
|
751
|
+
var currentVideoFramesDecoded = getCurrentStatsTotals('video-recv', 'framesDecoded');
|
|
752
|
+
var previousVideoFramesDecoded = getPreviousStatsTotals('video-recv', 'framesDecoded');
|
|
753
|
+
this.emitStartStopEvents('video', previousVideoFramesDecoded, currentVideoFramesDecoded, false);
|
|
754
|
+
|
|
755
|
+
// Share Transmit
|
|
756
|
+
if (this.lastStatsResults['video-share-send']) {
|
|
768
757
|
// compare share stats sent
|
|
769
758
|
|
|
770
759
|
var _currentStats2 = this.statsResults['video-share-send'].send;
|
|
771
760
|
var _previousStats2 = this.lastStatsResults['video-share-send'].send;
|
|
772
|
-
if (_currentStats2.totalPacketsSent === _previousStats2.totalPacketsSent || _currentStats2.totalPacketsSent === 0) {
|
|
761
|
+
if (this.meetingMediaStatus.expected.sendShare && (_currentStats2.totalPacketsSent === _previousStats2.totalPacketsSent || _currentStats2.totalPacketsSent === 0)) {
|
|
773
762
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets sent", _currentStats2.totalPacketsSent);
|
|
774
763
|
} else {
|
|
775
|
-
if (_currentStats2.framesEncoded === _previousStats2.framesEncoded || _currentStats2.framesEncoded === 0) {
|
|
764
|
+
if (this.meetingMediaStatus.expected.sendShare && (_currentStats2.framesEncoded === _previousStats2.framesEncoded || _currentStats2.framesEncoded === 0)) {
|
|
776
765
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames getting encoded", _currentStats2.framesEncoded);
|
|
777
766
|
}
|
|
778
|
-
if (this.statsResults['video-share-send'].send.framesSent === this.lastStatsResults['video-share-send'].send.framesSent || this.statsResults['video-share-send'].send.framesSent === 0) {
|
|
767
|
+
if (this.meetingMediaStatus.expected.sendShare && (this.statsResults['video-share-send'].send.framesSent === this.lastStatsResults['video-share-send'].send.framesSent || this.statsResults['video-share-send'].send.framesSent === 0)) {
|
|
779
768
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames sent", this.statsResults['video-share-send'].send.framesSent);
|
|
780
769
|
}
|
|
781
770
|
}
|
|
771
|
+
this.emitStartStopEvents('share', _previousStats2.framesSent, _currentStats2.framesSent, true);
|
|
782
772
|
}
|
|
783
|
-
if (this.meetingMediaStatus.expected.sendShare) {
|
|
784
|
-
// TODO:need to check receive share value
|
|
785
|
-
// compare share stats received
|
|
786
|
-
var _currentPacketsReceived2 = getCurrentStatsTotals('video-share-recv', 'totalPacketsReceived');
|
|
787
|
-
var _previousPacketsReceived2 = getPreviousStatsTotals('video-share-recv', 'totalPacketsReceived');
|
|
788
|
-
var _currentFramesReceived = getCurrentStatsTotals('video-share-recv', 'framesReceived');
|
|
789
|
-
var _previousFramesReceived = getPreviousStatsTotals('video-share-recv', 'framesReceived');
|
|
790
|
-
var _currentFramesDecoded = getCurrentStatsTotals('video-share-recv', 'framesDecoded');
|
|
791
|
-
var _previousFramesDecoded = getPreviousStatsTotals('video-share-recv', 'framesDecoded');
|
|
792
|
-
var _currentFramesDropped = getCurrentStatsTotals('video-share-recv', 'framesDropped');
|
|
793
|
-
var _previousFramesDropped = getPreviousStatsTotals('video-share-recv', 'framesDropped');
|
|
794
|
-
if (_currentPacketsReceived2 === _previousPacketsReceived2 || _currentPacketsReceived2 === 0) {
|
|
795
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share RTP packets received", _currentPacketsReceived2);
|
|
796
|
-
} else {
|
|
797
|
-
if (_currentFramesReceived === _previousFramesReceived || _currentFramesReceived === 0) {
|
|
798
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames received", _currentFramesReceived);
|
|
799
|
-
}
|
|
800
|
-
if (_currentFramesDecoded === _previousFramesDecoded || _currentFramesDecoded === 0) {
|
|
801
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> No share frames decoded", _currentFramesDecoded);
|
|
802
|
-
}
|
|
803
|
-
if (_currentFramesDropped - _previousFramesDropped > 10) {
|
|
804
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#compareLastStatsResult --> share frames are getting dropped", _currentFramesDropped - _previousFramesDropped);
|
|
805
|
-
}
|
|
806
|
-
}
|
|
807
773
|
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
774
|
+
// Share receive
|
|
775
|
+
var currentShareFramesDecoded = getCurrentStatsTotals('video-share-recv', 'framesDecoded');
|
|
776
|
+
var previousShareFramesDecoded = getPreviousStatsTotals('video-share-recv', 'framesDecoded');
|
|
777
|
+
this.emitStartStopEvents('share', previousShareFramesDecoded, currentShareFramesDecoded, false);
|
|
812
778
|
}
|
|
813
779
|
}
|
|
814
780
|
|
|
@@ -936,11 +902,6 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
936
902
|
var receiveSlot = this.receiveSlotCallback(result.ssrc);
|
|
937
903
|
var sourceState = receiveSlot === null || receiveSlot === void 0 ? void 0 : receiveSlot.sourceState;
|
|
938
904
|
var idAndCsi = receiveSlot ? "id: \"".concat(receiveSlot.id || '', "\"").concat(receiveSlot.csi ? " and csi: ".concat(receiveSlot.csi) : '') : '';
|
|
939
|
-
if (result.frameWidth && result.frameHeight) {
|
|
940
|
-
this.statsResults[mediaType][sendrecvType].width = result.frameWidth;
|
|
941
|
-
this.statsResults[mediaType][sendrecvType].height = result.frameHeight;
|
|
942
|
-
this.statsResults[mediaType][sendrecvType].framesReceived = result.framesReceived;
|
|
943
|
-
}
|
|
944
905
|
var bytes = result.bytesReceived - this.statsResults[mediaType][sendrecvType].totalBytesReceived;
|
|
945
906
|
kilobytes = bytes / 1024;
|
|
946
907
|
this.statsResults[mediaType][sendrecvType].availableBandwidth = kilobytes.toFixed(1);
|
|
@@ -948,19 +909,44 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
948
909
|
if (currentPacketsLost < 0) {
|
|
949
910
|
currentPacketsLost = 0;
|
|
950
911
|
}
|
|
951
|
-
var
|
|
912
|
+
var packetsReceivedDiff = result.packetsReceived - this.statsResults[mediaType][sendrecvType].totalPacketsReceived;
|
|
952
913
|
this.statsResults[mediaType][sendrecvType].totalPacketsReceived = result.packetsReceived;
|
|
953
|
-
if (
|
|
914
|
+
if (packetsReceivedDiff === 0) {
|
|
954
915
|
if (receiveSlot && sourceState === 'live') {
|
|
955
|
-
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No packets received for receive slot ".concat(idAndCsi, ". Total packets received on slot: "), result.packetsReceived);
|
|
916
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No packets received for mediaType: ".concat(mediaType, ", receive slot ").concat(idAndCsi, ". Total packets received on slot: "), result.packetsReceived);
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
if (mediaType.startsWith('video') || mediaType.startsWith('share')) {
|
|
920
|
+
var videoFramesReceivedDiff = result.framesReceived - this.statsResults[mediaType][sendrecvType].framesReceived;
|
|
921
|
+
if (videoFramesReceivedDiff === 0) {
|
|
922
|
+
if (receiveSlot && sourceState === 'live') {
|
|
923
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No frames received for mediaType: ".concat(mediaType, ", receive slot ").concat(idAndCsi, ". Total frames received on slot: "), result.framesReceived);
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
var videoFramesDecodedDiff = result.framesDecoded - this.statsResults[mediaType][sendrecvType].framesDecoded;
|
|
927
|
+
if (videoFramesDecodedDiff === 0) {
|
|
928
|
+
if (receiveSlot && sourceState === 'live') {
|
|
929
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> No frames decoded for mediaType: ".concat(mediaType, ", receive slot ").concat(idAndCsi, ". Total frames decoded on slot: "), result.framesDecoded);
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
var videoFramesDroppedDiff = result.framesDropped - this.statsResults[mediaType][sendrecvType].framesDropped;
|
|
933
|
+
if (videoFramesDroppedDiff > 10) {
|
|
934
|
+
if (receiveSlot && sourceState === 'live') {
|
|
935
|
+
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> Frames dropped for mediaType: ".concat(mediaType, ", receive slot ").concat(idAndCsi, ". Total frames dropped on slot: "), result.framesDropped);
|
|
936
|
+
}
|
|
956
937
|
}
|
|
957
938
|
}
|
|
958
939
|
|
|
959
940
|
// Check the over all packet Lost ratio
|
|
960
|
-
this.statsResults[mediaType][sendrecvType].currentPacketLossRatio = currentPacketsLost > 0 ? currentPacketsLost / (
|
|
941
|
+
this.statsResults[mediaType][sendrecvType].currentPacketLossRatio = currentPacketsLost > 0 ? currentPacketsLost / (packetsReceivedDiff + currentPacketsLost) : 0;
|
|
961
942
|
if (this.statsResults[mediaType][sendrecvType].currentPacketLossRatio > 3) {
|
|
962
943
|
_loggerProxy.default.logger.info("StatsAnalyzer:index#processInboundRTPResult --> Packets getting lost from the receiver with slot ".concat(idAndCsi), this.statsResults[mediaType][sendrecvType].currentPacketLossRatio);
|
|
963
944
|
}
|
|
945
|
+
if (result.frameWidth && result.frameHeight) {
|
|
946
|
+
this.statsResults[mediaType][sendrecvType].width = result.frameWidth;
|
|
947
|
+
this.statsResults[mediaType][sendrecvType].height = result.frameHeight;
|
|
948
|
+
this.statsResults[mediaType][sendrecvType].framesReceived = result.framesReceived;
|
|
949
|
+
}
|
|
964
950
|
|
|
965
951
|
// TODO: check the packet loss value is negative values here
|
|
966
952
|
|
|
@@ -976,6 +962,7 @@ var StatsAnalyzer = /*#__PURE__*/function (_EventsScope) {
|
|
|
976
962
|
this.statsResults[mediaType][sendrecvType].totalPliCount = result.pliCount;
|
|
977
963
|
this.statsResults[mediaType][sendrecvType].framesDecoded = result.framesDecoded;
|
|
978
964
|
this.statsResults[mediaType][sendrecvType].keyFramesDecoded = result.keyFramesDecoded;
|
|
965
|
+
this.statsResults[mediaType][sendrecvType].framesDropped = result.framesDropped;
|
|
979
966
|
this.statsResults[mediaType][sendrecvType].decoderImplementation = result.decoderImplementation;
|
|
980
967
|
this.statsResults[mediaType][sendrecvType].totalPacketsReceived = result.packetsReceived;
|
|
981
968
|
this.statsResults[mediaType][sendrecvType].fecPacketsDiscarded = result.fecPacketsDiscarded;
|