@webex/internal-media-core 2.10.1 → 2.10.2

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/cjs/index.js CHANGED
@@ -17468,6 +17468,10 @@ exports.StatsAnalyzerEventNames = void 0;
17468
17468
  StatsAnalyzerEventNames["REMOTE_MEDIA_STARTED"] = "REMOTE_MEDIA_STARTED";
17469
17469
  StatsAnalyzerEventNames["REMOTE_MEDIA_STOPPED"] = "REMOTE_MEDIA_STOPPED";
17470
17470
  })(exports.StatsAnalyzerEventNames || (exports.StatsAnalyzerEventNames = {}));
17471
+ exports.NetworkQualityEventNames = void 0;
17472
+ (function (NetworkQualityEventNames) {
17473
+ NetworkQualityEventNames["NETWORK_QUALITY"] = "NETWORK_QUALITY";
17474
+ })(exports.NetworkQualityEventNames || (exports.NetworkQualityEventNames = {}));
17471
17475
 
17472
17476
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(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; }
17473
17477
  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) { _defineProperty__default["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; }
@@ -17475,7 +17479,7 @@ class StatsAnalyzer extends EventEmitter$5 {
17475
17479
  constructor(_ref) {
17476
17480
  var {
17477
17481
  config,
17478
- networkQualityMonitor = {},
17482
+ networkQualityMonitor,
17479
17483
  statsResults = STATS_DEFAULT,
17480
17484
  isMultistream = false
17481
17485
  } = _ref;
@@ -18258,6 +18262,107 @@ class StatsAnalyzer extends EventEmitter$5 {
18258
18262
  }
18259
18263
  }
18260
18264
 
18265
+ class NetworkQualityMonitor extends EventEmitter$5 {
18266
+ constructor(config) {
18267
+ super();
18268
+ _defineProperty__default["default"](this, "config", void 0);
18269
+ _defineProperty__default["default"](this, "frequencyTypes", void 0);
18270
+ _defineProperty__default["default"](this, "indicatorTypes", void 0);
18271
+ _defineProperty__default["default"](this, "networkQualityScore", void 0);
18272
+ _defineProperty__default["default"](this, "networkQualityStatus", void 0);
18273
+ this.config = config;
18274
+ this.indicatorTypes = Object.freeze({
18275
+ PACKETLOSS: 'packetLoss',
18276
+ LATENCY: 'latency',
18277
+ JITTER: 'jitter'
18278
+ });
18279
+ this.frequencyTypes = Object.freeze({
18280
+ UPLINK: 'uplink',
18281
+ DOWNLINK: 'downlink'
18282
+ });
18283
+ this.networkQualityScore = 1;
18284
+ this.networkQualityStatus = {
18285
+ [this.frequencyTypes.UPLINK]: {}
18286
+ };
18287
+ }
18288
+ emitNetworkQuality(mediaType) {
18289
+ this.emit(exports.NetworkQualityEventNames.NETWORK_QUALITY, {
18290
+ mediaType,
18291
+ networkQualityScore: this.networkQualityScore
18292
+ });
18293
+ }
18294
+ updateNetworkQualityStatus(mediaType) {
18295
+ this.emitNetworkQuality(mediaType);
18296
+ this.networkQualityScore = 1;
18297
+ }
18298
+ determineUplinkNetworkQuality(_ref) {
18299
+ var {
18300
+ mediaType,
18301
+ remoteRtpResults,
18302
+ statsAnalyzerCurrentStats
18303
+ } = _ref;
18304
+ var roundTripTimeInMilliseconds = remoteRtpResults.roundTripTime * 1000;
18305
+ var jitterInMilliseconds = remoteRtpResults.jitter * 1000;
18306
+ var {
18307
+ currentPacketLossRatio
18308
+ } = statsAnalyzerCurrentStats[mediaType].send;
18309
+ var {
18310
+ JITTER,
18311
+ PACKETLOSS,
18312
+ LATENCY
18313
+ } = this.indicatorTypes;
18314
+ var {
18315
+ UPLINK
18316
+ } = this.frequencyTypes;
18317
+ var determinePacketLoss = () => {
18318
+ if (this.config.videoPacketLossRatioThreshold !== undefined && currentPacketLossRatio > this.config.videoPacketLossRatioThreshold) {
18319
+ this.networkQualityScore = 0;
18320
+ return false;
18321
+ }
18322
+ return true;
18323
+ };
18324
+ var determineLatency = () => {
18325
+ if (this.config.rttThreshold !== undefined && roundTripTimeInMilliseconds > this.config.rttThreshold) {
18326
+ this.networkQualityScore = 0;
18327
+ return false;
18328
+ }
18329
+ return true;
18330
+ };
18331
+ var determineJitter = () => {
18332
+ if (this.config.jitterThreshold !== undefined && jitterInMilliseconds > this.config.jitterThreshold) {
18333
+ this.networkQualityScore = 0;
18334
+ return false;
18335
+ }
18336
+ return true;
18337
+ };
18338
+ var getValueOrNull = value => typeof value === 'undefined' ? null : value;
18339
+ if (mediaType !== null) {
18340
+ if (!this.networkQualityStatus[UPLINK][mediaType]) {
18341
+ this.networkQualityStatus[UPLINK][mediaType] = {};
18342
+ }
18343
+ this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {
18344
+ acceptable: determinePacketLoss(),
18345
+ value: getValueOrNull(currentPacketLossRatio)
18346
+ };
18347
+ this.networkQualityStatus[UPLINK][mediaType][LATENCY] = {
18348
+ acceptable: determineLatency(),
18349
+ value: getValueOrNull(remoteRtpResults.roundTripTime)
18350
+ };
18351
+ this.networkQualityStatus[UPLINK][mediaType][JITTER] = {
18352
+ acceptable: determineJitter(),
18353
+ value: getValueOrNull(remoteRtpResults.jitter)
18354
+ };
18355
+ this.updateNetworkQualityStatus(mediaType);
18356
+ }
18357
+ }
18358
+ get networkQualityStats() {
18359
+ var {
18360
+ UPLINK
18361
+ } = this.frequencyTypes;
18362
+ return this.networkQualityStatus[UPLINK];
18363
+ }
18364
+ }
18365
+
18261
18366
  var Media = {
18262
18367
  createAudioTrack: createAudioTrack,
18263
18368
  createVideoTrack: createVideoTrack,
@@ -18286,6 +18391,7 @@ exports.LocalStream = LocalStream;
18286
18391
  exports.LocalSystemAudioStream = LocalSystemAudioStream;
18287
18392
  exports.Media = Media;
18288
18393
  exports.MultistreamRoapMediaConnection = MultistreamRoapMediaConnection;
18394
+ exports.NetworkQualityMonitor = NetworkQualityMonitor;
18289
18395
  exports.PeerConnection = PeerConnection;
18290
18396
  exports.ReceiveSlot = ReceiveSlot;
18291
18397
  exports.ReceiverSelectedInfo = ReceiverSelectedInfo;
package/dist/esm/index.js CHANGED
@@ -17457,6 +17457,10 @@ var StatsAnalyzerEventNames;
17457
17457
  StatsAnalyzerEventNames["REMOTE_MEDIA_STARTED"] = "REMOTE_MEDIA_STARTED";
17458
17458
  StatsAnalyzerEventNames["REMOTE_MEDIA_STOPPED"] = "REMOTE_MEDIA_STOPPED";
17459
17459
  })(StatsAnalyzerEventNames || (StatsAnalyzerEventNames = {}));
17460
+ var NetworkQualityEventNames;
17461
+ (function (NetworkQualityEventNames) {
17462
+ NetworkQualityEventNames["NETWORK_QUALITY"] = "NETWORK_QUALITY";
17463
+ })(NetworkQualityEventNames || (NetworkQualityEventNames = {}));
17460
17464
 
17461
17465
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(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; }
17462
17466
  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) { _defineProperty(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; }
@@ -17464,7 +17468,7 @@ class StatsAnalyzer extends EventEmitter$5 {
17464
17468
  constructor(_ref) {
17465
17469
  var {
17466
17470
  config,
17467
- networkQualityMonitor = {},
17471
+ networkQualityMonitor,
17468
17472
  statsResults = STATS_DEFAULT,
17469
17473
  isMultistream = false
17470
17474
  } = _ref;
@@ -18247,6 +18251,107 @@ class StatsAnalyzer extends EventEmitter$5 {
18247
18251
  }
18248
18252
  }
18249
18253
 
18254
+ class NetworkQualityMonitor extends EventEmitter$5 {
18255
+ constructor(config) {
18256
+ super();
18257
+ _defineProperty(this, "config", void 0);
18258
+ _defineProperty(this, "frequencyTypes", void 0);
18259
+ _defineProperty(this, "indicatorTypes", void 0);
18260
+ _defineProperty(this, "networkQualityScore", void 0);
18261
+ _defineProperty(this, "networkQualityStatus", void 0);
18262
+ this.config = config;
18263
+ this.indicatorTypes = Object.freeze({
18264
+ PACKETLOSS: 'packetLoss',
18265
+ LATENCY: 'latency',
18266
+ JITTER: 'jitter'
18267
+ });
18268
+ this.frequencyTypes = Object.freeze({
18269
+ UPLINK: 'uplink',
18270
+ DOWNLINK: 'downlink'
18271
+ });
18272
+ this.networkQualityScore = 1;
18273
+ this.networkQualityStatus = {
18274
+ [this.frequencyTypes.UPLINK]: {}
18275
+ };
18276
+ }
18277
+ emitNetworkQuality(mediaType) {
18278
+ this.emit(NetworkQualityEventNames.NETWORK_QUALITY, {
18279
+ mediaType,
18280
+ networkQualityScore: this.networkQualityScore
18281
+ });
18282
+ }
18283
+ updateNetworkQualityStatus(mediaType) {
18284
+ this.emitNetworkQuality(mediaType);
18285
+ this.networkQualityScore = 1;
18286
+ }
18287
+ determineUplinkNetworkQuality(_ref) {
18288
+ var {
18289
+ mediaType,
18290
+ remoteRtpResults,
18291
+ statsAnalyzerCurrentStats
18292
+ } = _ref;
18293
+ var roundTripTimeInMilliseconds = remoteRtpResults.roundTripTime * 1000;
18294
+ var jitterInMilliseconds = remoteRtpResults.jitter * 1000;
18295
+ var {
18296
+ currentPacketLossRatio
18297
+ } = statsAnalyzerCurrentStats[mediaType].send;
18298
+ var {
18299
+ JITTER,
18300
+ PACKETLOSS,
18301
+ LATENCY
18302
+ } = this.indicatorTypes;
18303
+ var {
18304
+ UPLINK
18305
+ } = this.frequencyTypes;
18306
+ var determinePacketLoss = () => {
18307
+ if (this.config.videoPacketLossRatioThreshold !== undefined && currentPacketLossRatio > this.config.videoPacketLossRatioThreshold) {
18308
+ this.networkQualityScore = 0;
18309
+ return false;
18310
+ }
18311
+ return true;
18312
+ };
18313
+ var determineLatency = () => {
18314
+ if (this.config.rttThreshold !== undefined && roundTripTimeInMilliseconds > this.config.rttThreshold) {
18315
+ this.networkQualityScore = 0;
18316
+ return false;
18317
+ }
18318
+ return true;
18319
+ };
18320
+ var determineJitter = () => {
18321
+ if (this.config.jitterThreshold !== undefined && jitterInMilliseconds > this.config.jitterThreshold) {
18322
+ this.networkQualityScore = 0;
18323
+ return false;
18324
+ }
18325
+ return true;
18326
+ };
18327
+ var getValueOrNull = value => typeof value === 'undefined' ? null : value;
18328
+ if (mediaType !== null) {
18329
+ if (!this.networkQualityStatus[UPLINK][mediaType]) {
18330
+ this.networkQualityStatus[UPLINK][mediaType] = {};
18331
+ }
18332
+ this.networkQualityStatus[UPLINK][mediaType][PACKETLOSS] = {
18333
+ acceptable: determinePacketLoss(),
18334
+ value: getValueOrNull(currentPacketLossRatio)
18335
+ };
18336
+ this.networkQualityStatus[UPLINK][mediaType][LATENCY] = {
18337
+ acceptable: determineLatency(),
18338
+ value: getValueOrNull(remoteRtpResults.roundTripTime)
18339
+ };
18340
+ this.networkQualityStatus[UPLINK][mediaType][JITTER] = {
18341
+ acceptable: determineJitter(),
18342
+ value: getValueOrNull(remoteRtpResults.jitter)
18343
+ };
18344
+ this.updateNetworkQualityStatus(mediaType);
18345
+ }
18346
+ }
18347
+ get networkQualityStats() {
18348
+ var {
18349
+ UPLINK
18350
+ } = this.frequencyTypes;
18351
+ return this.networkQualityStatus[UPLINK];
18352
+ }
18353
+ }
18354
+
18250
18355
  var Media = {
18251
18356
  createAudioTrack: createAudioTrack,
18252
18357
  createVideoTrack: createVideoTrack,
@@ -18264,4 +18369,4 @@ var Media = {
18264
18369
  }
18265
18370
  };
18266
18371
 
18267
- export { ActiveSpeakerInfo, CodecInfo$1 as CodecInfo, ConnectionState, ErrorType, Errors, H264Codec, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, Media, MediaConnectionEventNames, MediaContent, MediaFamily, MediaStreamTrackKind, MediaType, MultistreamRoapMediaConnection, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RecommendedOpusBitrates, RemoteStream, RemoteStreamEventNames, RemoteTrackType, RoapMediaConnection, SendSlot, StatsAnalyzer, StatsAnalyzerEventNames, StreamEventNames, StreamRequest, WcmeError, WcmeErrorType, configureWcmeLogger, createCameraStream, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getErrorDescription, getLogger, getMediaFamily, getRecommendedMaxBitrateForFrameSize, getVideoInputDevices, setLogger, setOnDeviceChangeHandler };
18372
+ export { ActiveSpeakerInfo, CodecInfo$1 as CodecInfo, ConnectionState, ErrorType, Errors, H264Codec, LocalCameraStream, LocalDisplayStream, LocalMicrophoneStream, LocalStream, LocalStreamEventNames, LocalSystemAudioStream, Media, MediaConnectionEventNames, MediaContent, MediaFamily, MediaStreamTrackKind, MediaType, MultistreamRoapMediaConnection, NetworkQualityEventNames, NetworkQualityMonitor, PeerConnection, Policy, ReceiveSlot, ReceiveSlotEvents, ReceiverSelectedInfo, RecommendedOpusBitrates, RemoteStream, RemoteStreamEventNames, RemoteTrackType, RoapMediaConnection, SendSlot, StatsAnalyzer, StatsAnalyzerEventNames, StreamEventNames, StreamRequest, WcmeError, WcmeErrorType, configureWcmeLogger, createCameraStream, createDisplayStream, createDisplayStreamWithAudio, createMicrophoneStream, getAudioInputDevices, getAudioOutputDevices, getDevices, getErrorDescription, getLogger, getMediaFamily, getRecommendedMaxBitrateForFrameSize, getVideoInputDevices, setLogger, setOnDeviceChangeHandler };
@@ -0,0 +1,20 @@
1
+ import { EventEmitter } from '../EventEmitter';
2
+ import { NetworkQualityMonitorEvents } from './eventTypes';
3
+ import { NetworkQualityFrequencyTypes, NetworkQualityIndicatorTypes, NetworkQualityMonitorConfig, NetworkQualityStatus, StatsResults } from './types';
4
+ export declare class NetworkQualityMonitor extends EventEmitter<NetworkQualityMonitorEvents> {
5
+ config: NetworkQualityMonitorConfig;
6
+ frequencyTypes: NetworkQualityFrequencyTypes;
7
+ indicatorTypes: NetworkQualityIndicatorTypes;
8
+ networkQualityScore: 0 | 1;
9
+ networkQualityStatus: NetworkQualityStatus;
10
+ constructor(config: NetworkQualityMonitorConfig);
11
+ private emitNetworkQuality;
12
+ private updateNetworkQualityStatus;
13
+ determineUplinkNetworkQuality({ mediaType, remoteRtpResults, statsAnalyzerCurrentStats, }: {
14
+ mediaType: string;
15
+ remoteRtpResults: StatsResults;
16
+ statsAnalyzerCurrentStats: StatsResults;
17
+ }): void;
18
+ get networkQualityStats(): any;
19
+ }
20
+ //# sourceMappingURL=NetworkQualityMonitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkQualityMonitor.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/NetworkQualityMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAA2B,2BAA2B,EAAC,MAAM,cAAc,CAAC;AACnF,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,oBAAoB,EACpB,YAAY,EACb,MAAM,SAAS,CAAC;AAKjB,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,2BAA2B,CAAC;IAElF,MAAM,EAAE,2BAA2B,CAAC;IAGpC,cAAc,EAAE,4BAA4B,CAAC;IAG7C,cAAc,EAAE,4BAA4B,CAAC;IAG7C,mBAAmB,EAAE,CAAC,GAAG,CAAC,CAAC;IAG3B,oBAAoB,EAAE,oBAAoB,CAAC;gBAQ/B,MAAM,EAAE,2BAA2B;IAuB/C,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,0BAA0B;IAe3B,6BAA6B,CAAC,EACnC,SAAS,EACT,gBAAgB,EAChB,yBAAyB,GAC1B,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,YAAY,CAAC;QAC/B,yBAAyB,EAAE,YAAY,CAAC;KACzC,GAAG,IAAI;IA0GR,IAAI,mBAAmB,QAItB;CACF"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=NetworkQualityMonitor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkQualityMonitor.test.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/NetworkQualityMonitor.test.ts"],"names":[],"mappings":""}
@@ -1,7 +1,8 @@
1
1
  import { EventEmitter } from '../EventEmitter';
2
- import { ActualExpectedMediaStatus, MqaData, NetworkQualityMonitor, StatsAnalyzerConfig, StatsResults } from './types';
2
+ import { ActualExpectedMediaStatus, MqaData, StatsAnalyzerConfig, StatsResults } from './types';
3
3
  import { MultistreamRoapMediaConnection, RoapMediaConnection } from '../MediaConnection';
4
4
  import { LastEmittedStartStopEvents, StatsAnalyzerEvents } from './eventTypes';
5
+ import { NetworkQualityMonitor } from './NetworkQualityMonitor';
5
6
  export declare class StatsAnalyzer extends EventEmitter<StatsAnalyzerEvents> {
6
7
  config: StatsAnalyzerConfig;
7
8
  correlationId: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"StatsAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/StatsAnalyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AA8B7C,OAAO,EAIL,yBAAyB,EACzB,OAAO,EAEP,qBAAqB,EACrB,mBAAmB,EACnB,YAAY,EAEb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,8BAA8B,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EAGpB,MAAM,cAAc,CAAC;AAKtB,qBAAa,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAClE,MAAM,EAAE,mBAAmB,CAAC;IAE5B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,0BAA0B,EAAE,0BAA0B,CAAC;IAEvD,eAAe,EAAE,OAAO,CAAC;IAEzB,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAE/C,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE5C,YAAY,EAAE,MAAM,CAAC;IAIrB,qBAAqB,EAAE,qBAAqB,CAAC;IAE7C,eAAe,EAAE,8BAA8B,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAE7E,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE9C,YAAY,EAAE,YAAY,CAAC;IAE3B,YAAY,EAAE,OAAO,CAAC;IAGtB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE7C,cAAc,EAAE,MAAM,CAAC;IAEvB,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC,aAAa,EAAE,OAAO,CAAC;gBAUX,EACV,MAAM,EACN,qBAA0B,EAC1B,YAA4B,EAC5B,aAAqB,GACtB,EAAE;QACD,MAAM,EAAE,mBAAmB,CAAC;QAC5B,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB;IAoBD,OAAO,CAAC,iBAAiB;IAmBlB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAgBnE,OAAO,CAAC,WAAW;IAwUZ,iBAAiB,IAAI,MAAM;IAU3B,aAAa,CAAC,eAAe,EAAE,8BAA8B,GAAG,mBAAmB;IAuBnF,YAAY;IA8BnB,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,6BAA6B;IA4DrC,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,mBAAmB,CAkDzB;IAKF,OAAO,CAAC,sBAAsB;IAgN9B,OAAO,CAAC,gBAAgB;IAyExB,OAAO,CAAC,wBAAwB;IA0DhC,OAAO,CAAC,uBAAuB;IAgK/B,OAAO,CAAC,6CAA6C,CA+BnD;IAUF,OAAO,CAAC,cAAc,CAuDpB;IAQF,OAAO,CAAC,sBAAsB;CAkD/B"}
1
+ {"version":3,"file":"StatsAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/StatsAnalyzer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAC,YAAY,EAAC,MAAM,iBAAiB,CAAC;AA8B7C,OAAO,EAIL,yBAAyB,EACzB,OAAO,EAEP,mBAAmB,EACnB,YAAY,EAEb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,8BAA8B,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvF,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EAGpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAK9D,qBAAa,aAAc,SAAQ,YAAY,CAAC,mBAAmB,CAAC;IAClE,MAAM,EAAE,mBAAmB,CAAC;IAE5B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAElC,0BAA0B,EAAE,0BAA0B,CAAC;IAEvD,eAAe,EAAE,OAAO,CAAC;IAEzB,gBAAgB,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC,kBAAkB,CAAC,EAAE,yBAAyB,CAAC;IAE/C,WAAW,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE5C,YAAY,EAAE,MAAM,CAAC;IAErB,qBAAqB,EAAE,qBAAqB,CAAC;IAE7C,eAAe,EAAE,8BAA8B,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAE7E,aAAa,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IAE9C,YAAY,EAAE,YAAY,CAAC;IAE3B,YAAY,EAAE,OAAO,CAAC;IAGtB,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAE7C,cAAc,EAAE,MAAM,CAAC;IAEvB,+BAA+B,CAAC,EAAE,MAAM,CAAC;IAEzC,aAAa,EAAE,OAAO,CAAC;gBAUX,EACV,MAAM,EACN,qBAAqB,EACrB,YAA4B,EAC5B,aAAqB,GACtB,EAAE;QACD,MAAM,EAAE,mBAAmB,CAAC;QAC5B,qBAAqB,EAAE,qBAAqB,CAAC;QAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;QAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB;IAoBD,OAAO,CAAC,iBAAiB;IAmBlB,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,yBAAyB,CAAC;IAgBnE,OAAO,CAAC,WAAW;IAwUZ,iBAAiB,IAAI,MAAM;IAU3B,aAAa,CAAC,eAAe,EAAE,8BAA8B,GAAG,mBAAmB;IAuBnF,YAAY;IA8BnB,OAAO,CAAC,mBAAmB;IAiD3B,OAAO,CAAC,6BAA6B;IA4DrC,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,mBAAmB,CAkDzB;IAKF,OAAO,CAAC,sBAAsB;IAgN9B,OAAO,CAAC,gBAAgB;IAyExB,OAAO,CAAC,wBAAwB;IA0DhC,OAAO,CAAC,uBAAuB;IAgK/B,OAAO,CAAC,6CAA6C,CA+BnD;IAUF,OAAO,CAAC,cAAc,CAuDpB;IAQF,OAAO,CAAC,sBAAsB;CAkD/B"}
@@ -29,5 +29,15 @@ export declare type LastEmittedStartStopEvents = Partial<{
29
29
  video: Partial<LocalRemoteMediaStartedStopped>;
30
30
  share: Partial<LocalRemoteMediaStartedStopped>;
31
31
  }>;
32
+ export declare enum NetworkQualityEventNames {
33
+ NETWORK_QUALITY = "NETWORK_QUALITY"
34
+ }
35
+ interface NetworkQualityEvent {
36
+ mediaType: string;
37
+ networkQualityScore: number;
38
+ }
39
+ export interface NetworkQualityMonitorEvents extends EventMap {
40
+ [NetworkQualityEventNames.NETWORK_QUALITY]: (event: NetworkQualityEvent) => void;
41
+ }
32
42
  export {};
33
43
  //# sourceMappingURL=eventTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"eventTypes.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/eventTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAEvC,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAED,UAAU,iBAAiB;IAEzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5E,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtF;AAED,oBAAY,8BAA8B,GAAG;IAC3C,KAAK,EAAE,uBAAuB,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;IACjG,MAAM,EACF,uBAAuB,CAAC,oBAAoB,GAC5C,uBAAuB,CAAC,oBAAoB,CAAC;CAClD,CAAC;AAEF,oBAAY,0BAA0B,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAChD,CAAC,CAAC"}
1
+ {"version":3,"file":"eventTypes.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/eventTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AACvC,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AAEvC,oBAAY,uBAAuB;IACjC,aAAa,kBAAkB;IAC/B,mBAAmB,wBAAwB;IAC3C,mBAAmB,wBAAwB;IAC3C,oBAAoB,yBAAyB;IAC7C,oBAAoB,yBAAyB;CAC9C;AAED,UAAU,iBAAiB;IAEzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAoB,SAAQ,QAAQ;IACnD,CAAC,uBAAuB,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC5E,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACpF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;IACrF,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtF;AAED,oBAAY,8BAA8B,GAAG;IAC3C,KAAK,EAAE,uBAAuB,CAAC,mBAAmB,GAAG,uBAAuB,CAAC,mBAAmB,CAAC;IACjG,MAAM,EACF,uBAAuB,CAAC,oBAAoB,GAC5C,uBAAuB,CAAC,oBAAoB,CAAC;CAClD,CAAC;AAEF,oBAAY,0BAA0B,GAAG,OAAO,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IAC/C,KAAK,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,oBAAY,wBAAwB;IAClC,eAAe,oBAAoB;CACpC;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,2BAA4B,SAAQ,QAAQ;IAC3D,CAAC,wBAAwB,CAAC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClF"}
@@ -1,4 +1,5 @@
1
1
  export * from './StatsAnalyzer';
2
+ export * from './NetworkQualityMonitor';
2
3
  export * from './eventTypes';
3
4
  export { ActualExpectedMediaStatus } from './types';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,yBAAyB,EAAC,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAC,yBAAyB,EAAC,MAAM,SAAS,CAAC"}
@@ -30,7 +30,6 @@ export declare type StatsAnalyzerConfig = {
30
30
  export declare type StatsResults = Record<string, any>;
31
31
  export declare type MqaData = Record<string, any>;
32
32
  export declare type GetStatsResults = Record<string, any>;
33
- export declare type NetworkQualityMonitor = Record<string, any>;
34
33
  declare type MediaStatus = {
35
34
  mediaType: StatsMediaType;
36
35
  mediaContent: 'main' | 'slides';
@@ -54,5 +53,20 @@ export declare type ActualExpectedMediaStatus = {
54
53
  receiveShare?: boolean;
55
54
  };
56
55
  };
56
+ export declare type NetworkQualityStatus = Record<string, any>;
57
+ export declare type NetworkQualityMonitorConfig = {
58
+ videoPacketLossRatioThreshold: number;
59
+ rttThreshold: number;
60
+ jitterThreshold: number;
61
+ };
62
+ export declare type NetworkQualityFrequencyTypes = {
63
+ UPLINK: 'uplink';
64
+ DOWNLINK: 'downlink';
65
+ };
66
+ export declare type NetworkQualityIndicatorTypes = {
67
+ PACKETLOSS: 'packetLoss';
68
+ LATENCY: 'latency';
69
+ JITTER: 'jitter';
70
+ };
57
71
  export {};
58
72
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAEnD,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzD,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,OAAO,SAAS;CACjB;AAED,oBAAY,MAAM;IAChB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB,GAAG;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B,EAAE,MAAM,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAI/C,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAI1C,oBAAY,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAKlD,oBAAY,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAExD,aAAK,WAAW,GAAG;IACjB,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACtC,MAAM,EAAE;QACN,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/StatsAnalyzer/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,0BAA0B,CAAC;AAEnD,oBAAY,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAEzD,oBAAY,WAAW;IACrB,GAAG,QAAQ;IACX,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,MAAM,WAAW;CAClB;AAED,oBAAY,cAAc;IACxB,IAAI,SAAS;IACb,OAAO,SAAS;CACjB;AAED,oBAAY,MAAM;IAChB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB,GAAG;IAChC,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,6BAA6B,EAAE,MAAM,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,oBAAY,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAI/C,oBAAY,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAI1C,oBAAY,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAElD,aAAK,WAAW,GAAG;IACjB,SAAS,EAAE,cAAc,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,QAAQ,CAAC;IAChC,SAAS,EAAE,SAAS,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,yBAAyB,GAAG;IACtC,MAAM,EAAE;QACN,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,CAAC;IACF,QAAQ,EAAE;QACR,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CACH,CAAC;AAGF,oBAAY,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEvD,oBAAY,2BAA2B,GAAG;IACxC,6BAA6B,EAAE,MAAM,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IACzC,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,oBAAY,4BAA4B,GAAG;IACzC,UAAU,EAAE,YAAY,CAAC;IACzB,OAAO,EAAE,SAAS,CAAC;IACnB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-media-core",
3
- "version": "2.10.1",
3
+ "version": "2.10.2",
4
4
  "files": [
5
5
  "dist/cjs",
6
6
  "dist/esm",