@webex/web-client-media-engine 3.30.0 → 3.30.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
@@ -10592,6 +10592,7 @@ exports.ReceiveSlotEvents = void 0;
10592
10592
  class ReceiveSlot extends EventEmitter$2 {
10593
10593
  constructor(idGetter, track) {
10594
10594
  super();
10595
+ this._isRequested = false;
10595
10596
  this._idGetter = idGetter;
10596
10597
  this.handleStreamMediaStateChange = this.handleStreamMediaStateChange.bind(this);
10597
10598
  this.handleStreamEnded = this.handleStreamEnded.bind(this);
@@ -10694,7 +10695,7 @@ class Transceiver {
10694
10695
  class ReceiveOnlyTransceiver extends Transceiver {
10695
10696
  constructor(config) {
10696
10697
  super(config);
10697
- this.metadata = { isRequested: false, isActiveSpeaker: false };
10698
+ this.metadata = { isActiveSpeaker: false };
10698
10699
  this.munger = config.munger;
10699
10700
  this._receiveSlot = new ReceiveSlot(() => {
10700
10701
  if (!this._rtcRtpTransceiver.mid) {
@@ -10727,7 +10728,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
10727
10728
  stats.requestedBitrate = this.metadata.requestedBitrate;
10728
10729
  stats.requestedFrameSize = this.metadata.requestedFrameSize;
10729
10730
  stats.requestedFrameRate = this.metadata.requestedFrameRate;
10730
- stats.isRequested = this.metadata.isRequested;
10731
+ stats.isRequested = this.receiveSlot._isRequested;
10731
10732
  stats.lastRequestedUpdateTimestamp = this.metadata.lastRequestedUpdateTimestamp;
10732
10733
  stats.isActiveSpeaker = this.metadata.isActiveSpeaker;
10733
10734
  stats.lastActiveSpeakerUpdateTimestamp = this.metadata.lastActiveSpeakerUpdateTimestamp;
@@ -10754,8 +10755,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
10754
10755
  }
10755
10756
  handleRequested(streamRequest) {
10756
10757
  var _a, _b, _c, _d;
10757
- if (!this.metadata.isRequested) {
10758
- this.metadata.isRequested = true;
10758
+ if (!this.receiveSlot._isRequested) {
10759
+ this.receiveSlot._isRequested = true;
10759
10760
  this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
10760
10761
  }
10761
10762
  this.metadata.requestedBitrate = streamRequest.maxPayloadBitsPerSecond;
@@ -10763,8 +10764,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
10763
10764
  this.metadata.requestedFrameRate = (_d = (_c = streamRequest.codecInfos[0]) === null || _c === void 0 ? void 0 : _c.h264) === null || _d === void 0 ? void 0 : _d.maxFps;
10764
10765
  }
10765
10766
  handleUnrequested() {
10766
- if (this.metadata.isRequested) {
10767
- this.metadata.isRequested = false;
10767
+ if (this.receiveSlot._isRequested) {
10768
+ this.receiveSlot._isRequested = false;
10768
10769
  this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
10769
10770
  }
10770
10771
  this.metadata.requestedBitrate = undefined;
@@ -14507,7 +14508,6 @@ class SendOnlyTransceiver extends Transceiver {
14507
14508
  this.rtxEnabled = false;
14508
14509
  this.streamMuteStateChange = new TypedEvent();
14509
14510
  this.streamPublishStateChange = new TypedEvent();
14510
- this.streamEnded = new TypedEvent();
14511
14511
  this.negotiationNeeded = new TypedEvent();
14512
14512
  this.namedMediaGroupsChange = new TypedEvent();
14513
14513
  this.requestedIdEncodingParamsMap = new Map();
@@ -14520,7 +14520,6 @@ class SendOnlyTransceiver extends Transceiver {
14520
14520
  this.handleTrackChange = this.handleTrackChange.bind(this);
14521
14521
  this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
14522
14522
  this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
14523
- this.handleStreamEnded = this.handleStreamEnded.bind(this);
14524
14523
  }
14525
14524
  replaceSenderSource(stream) {
14526
14525
  var _a, _b;
@@ -14552,9 +14551,6 @@ class SendOnlyTransceiver extends Transceiver {
14552
14551
  handleStreamMuteStateChange() {
14553
14552
  this.streamMuteStateChange.emit();
14554
14553
  }
14555
- handleStreamEnded() {
14556
- this.streamEnded.emit();
14557
- }
14558
14554
  get requested() {
14559
14555
  return this.requestedIdEncodingParamsMap.size > 0;
14560
14556
  }
@@ -14577,7 +14573,6 @@ class SendOnlyTransceiver extends Transceiver {
14577
14573
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14578
14574
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14579
14575
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
14580
- oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.StreamEventNames.Ended, this.handleStreamEnded);
14581
14576
  if (this.requested) {
14582
14577
  yield this.replaceSenderSource(newStream);
14583
14578
  }
@@ -14586,7 +14581,6 @@ class SendOnlyTransceiver extends Transceiver {
14586
14581
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14587
14582
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14588
14583
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
14589
- newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.StreamEventNames.Ended, this.handleStreamEnded);
14590
14584
  if ((!oldStream && newStream && !newStream.muted) ||
14591
14585
  (oldStream && !newStream && !oldStream.muted)) {
14592
14586
  this.streamPublishStateChange.emit();
@@ -15068,10 +15062,6 @@ class MultistreamConnection extends EventEmitter$2 {
15068
15062
  this.sendSourceAdvertisement(mediaType);
15069
15063
  this.sendMediaRequestStatus(mediaType);
15070
15064
  });
15071
- transceiver.streamEnded.on(() => {
15072
- this.sendSourceAdvertisement(mediaType);
15073
- this.sendMediaRequestStatus(mediaType);
15074
- });
15075
15065
  transceiver.negotiationNeeded.on((offerAnswerType) => {
15076
15066
  if (offerAnswerType === OfferAnswerType.Remote) {
15077
15067
  this.emit(exports.MultistreamConnectionEventNames.NegotiationNeeded);
@@ -15149,6 +15139,10 @@ SCTP Max Message Size: ${maxMessageSize}`);
15149
15139
  logger.warn(`Got MediaRequestStatus for unknown receive slot: ${JSON.stringify(s.id)}`);
15150
15140
  return;
15151
15141
  }
15142
+ if (!receiveSlot._isRequested) {
15143
+ logger.info(`MediaRequestStatus ignored due to transceiver's receive slot unrequested: ${JSON.stringify(s.id)} csi ${s.csi}`);
15144
+ return;
15145
+ }
15152
15146
  receiveSlot._updateSource(s.state, s.csi);
15153
15147
  });
15154
15148
  });
@@ -15301,12 +15295,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
15301
15295
  }
15302
15296
  }
15303
15297
  sendSourceAdvertisement(mediaType) {
15304
- var _a, _b, _c;
15298
+ var _a, _b;
15305
15299
  const transceiver = this.getSendTransceiverOrThrow(mediaType);
15306
- const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false &&
15307
- ((_b = transceiver.publishedStream) === null || _b === void 0 ? void 0 : _b.readyState) === 'live'
15308
- ? 1
15309
- : 0;
15300
+ const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false ? 1 : 0;
15310
15301
  let task;
15311
15302
  if (getMediaFamily(mediaType) === exports.MediaFamily.Video) {
15312
15303
  const sources = this.getVideoStreamStates(mediaType);
@@ -15330,7 +15321,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
15330
15321
  .get(mediaType)) === null || _a === void 0 ? void 0 : _a.sendSourceAdvertisement(1, numLiveSources, mediaType === exports.MediaType.AudioMain ? transceiver.namedMediaGroups : []);
15331
15322
  };
15332
15323
  }
15333
- if (((_c = this.dataChannel) === null || _c === void 0 ? void 0 : _c.readyState) === 'open') {
15324
+ if (((_b = this.dataChannel) === null || _b === void 0 ? void 0 : _b.readyState) === 'open') {
15334
15325
  task();
15335
15326
  }
15336
15327
  else {