@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/esm/index.js CHANGED
@@ -10588,6 +10588,7 @@ var ReceiveSlotEvents;
10588
10588
  class ReceiveSlot extends EventEmitter$2 {
10589
10589
  constructor(idGetter, track) {
10590
10590
  super();
10591
+ this._isRequested = false;
10591
10592
  this._idGetter = idGetter;
10592
10593
  this.handleStreamMediaStateChange = this.handleStreamMediaStateChange.bind(this);
10593
10594
  this.handleStreamEnded = this.handleStreamEnded.bind(this);
@@ -10690,7 +10691,7 @@ class Transceiver {
10690
10691
  class ReceiveOnlyTransceiver extends Transceiver {
10691
10692
  constructor(config) {
10692
10693
  super(config);
10693
- this.metadata = { isRequested: false, isActiveSpeaker: false };
10694
+ this.metadata = { isActiveSpeaker: false };
10694
10695
  this.munger = config.munger;
10695
10696
  this._receiveSlot = new ReceiveSlot(() => {
10696
10697
  if (!this._rtcRtpTransceiver.mid) {
@@ -10723,7 +10724,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
10723
10724
  stats.requestedBitrate = this.metadata.requestedBitrate;
10724
10725
  stats.requestedFrameSize = this.metadata.requestedFrameSize;
10725
10726
  stats.requestedFrameRate = this.metadata.requestedFrameRate;
10726
- stats.isRequested = this.metadata.isRequested;
10727
+ stats.isRequested = this.receiveSlot._isRequested;
10727
10728
  stats.lastRequestedUpdateTimestamp = this.metadata.lastRequestedUpdateTimestamp;
10728
10729
  stats.isActiveSpeaker = this.metadata.isActiveSpeaker;
10729
10730
  stats.lastActiveSpeakerUpdateTimestamp = this.metadata.lastActiveSpeakerUpdateTimestamp;
@@ -10750,8 +10751,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
10750
10751
  }
10751
10752
  handleRequested(streamRequest) {
10752
10753
  var _a, _b, _c, _d;
10753
- if (!this.metadata.isRequested) {
10754
- this.metadata.isRequested = true;
10754
+ if (!this.receiveSlot._isRequested) {
10755
+ this.receiveSlot._isRequested = true;
10755
10756
  this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
10756
10757
  }
10757
10758
  this.metadata.requestedBitrate = streamRequest.maxPayloadBitsPerSecond;
@@ -10759,8 +10760,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
10759
10760
  this.metadata.requestedFrameRate = (_d = (_c = streamRequest.codecInfos[0]) === null || _c === void 0 ? void 0 : _c.h264) === null || _d === void 0 ? void 0 : _d.maxFps;
10760
10761
  }
10761
10762
  handleUnrequested() {
10762
- if (this.metadata.isRequested) {
10763
- this.metadata.isRequested = false;
10763
+ if (this.receiveSlot._isRequested) {
10764
+ this.receiveSlot._isRequested = false;
10764
10765
  this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
10765
10766
  }
10766
10767
  this.metadata.requestedBitrate = undefined;
@@ -14503,7 +14504,6 @@ class SendOnlyTransceiver extends Transceiver {
14503
14504
  this.rtxEnabled = false;
14504
14505
  this.streamMuteStateChange = new TypedEvent();
14505
14506
  this.streamPublishStateChange = new TypedEvent();
14506
- this.streamEnded = new TypedEvent();
14507
14507
  this.negotiationNeeded = new TypedEvent();
14508
14508
  this.namedMediaGroupsChange = new TypedEvent();
14509
14509
  this.requestedIdEncodingParamsMap = new Map();
@@ -14516,7 +14516,6 @@ class SendOnlyTransceiver extends Transceiver {
14516
14516
  this.handleTrackChange = this.handleTrackChange.bind(this);
14517
14517
  this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
14518
14518
  this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
14519
- this.handleStreamEnded = this.handleStreamEnded.bind(this);
14520
14519
  }
14521
14520
  replaceSenderSource(stream) {
14522
14521
  var _a, _b;
@@ -14548,9 +14547,6 @@ class SendOnlyTransceiver extends Transceiver {
14548
14547
  handleStreamMuteStateChange() {
14549
14548
  this.streamMuteStateChange.emit();
14550
14549
  }
14551
- handleStreamEnded() {
14552
- this.streamEnded.emit();
14553
- }
14554
14550
  get requested() {
14555
14551
  return this.requestedIdEncodingParamsMap.size > 0;
14556
14552
  }
@@ -14573,7 +14569,6 @@ class SendOnlyTransceiver extends Transceiver {
14573
14569
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14574
14570
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14575
14571
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
14576
- oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(StreamEventNames.Ended, this.handleStreamEnded);
14577
14572
  if (this.requested) {
14578
14573
  yield this.replaceSenderSource(newStream);
14579
14574
  }
@@ -14582,7 +14577,6 @@ class SendOnlyTransceiver extends Transceiver {
14582
14577
  newStream === null || newStream === void 0 ? void 0 : newStream.on(LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14583
14578
  newStream === null || newStream === void 0 ? void 0 : newStream.on(LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14584
14579
  newStream === null || newStream === void 0 ? void 0 : newStream.on(LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
14585
- newStream === null || newStream === void 0 ? void 0 : newStream.on(StreamEventNames.Ended, this.handleStreamEnded);
14586
14580
  if ((!oldStream && newStream && !newStream.muted) ||
14587
14581
  (oldStream && !newStream && !oldStream.muted)) {
14588
14582
  this.streamPublishStateChange.emit();
@@ -15064,10 +15058,6 @@ class MultistreamConnection extends EventEmitter$2 {
15064
15058
  this.sendSourceAdvertisement(mediaType);
15065
15059
  this.sendMediaRequestStatus(mediaType);
15066
15060
  });
15067
- transceiver.streamEnded.on(() => {
15068
- this.sendSourceAdvertisement(mediaType);
15069
- this.sendMediaRequestStatus(mediaType);
15070
- });
15071
15061
  transceiver.negotiationNeeded.on((offerAnswerType) => {
15072
15062
  if (offerAnswerType === OfferAnswerType.Remote) {
15073
15063
  this.emit(MultistreamConnectionEventNames.NegotiationNeeded);
@@ -15145,6 +15135,10 @@ SCTP Max Message Size: ${maxMessageSize}`);
15145
15135
  logger.warn(`Got MediaRequestStatus for unknown receive slot: ${JSON.stringify(s.id)}`);
15146
15136
  return;
15147
15137
  }
15138
+ if (!receiveSlot._isRequested) {
15139
+ logger.info(`MediaRequestStatus ignored due to transceiver's receive slot unrequested: ${JSON.stringify(s.id)} csi ${s.csi}`);
15140
+ return;
15141
+ }
15148
15142
  receiveSlot._updateSource(s.state, s.csi);
15149
15143
  });
15150
15144
  });
@@ -15297,12 +15291,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
15297
15291
  }
15298
15292
  }
15299
15293
  sendSourceAdvertisement(mediaType) {
15300
- var _a, _b, _c;
15294
+ var _a, _b;
15301
15295
  const transceiver = this.getSendTransceiverOrThrow(mediaType);
15302
- const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false &&
15303
- ((_b = transceiver.publishedStream) === null || _b === void 0 ? void 0 : _b.readyState) === 'live'
15304
- ? 1
15305
- : 0;
15296
+ const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false ? 1 : 0;
15306
15297
  let task;
15307
15298
  if (getMediaFamily(mediaType) === MediaFamily.Video) {
15308
15299
  const sources = this.getVideoStreamStates(mediaType);
@@ -15326,7 +15317,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
15326
15317
  .get(mediaType)) === null || _a === void 0 ? void 0 : _a.sendSourceAdvertisement(1, numLiveSources, mediaType === MediaType.AudioMain ? transceiver.namedMediaGroups : []);
15327
15318
  };
15328
15319
  }
15329
- if (((_c = this.dataChannel) === null || _c === void 0 ? void 0 : _c.readyState) === 'open') {
15320
+ if (((_b = this.dataChannel) === null || _b === void 0 ? void 0 : _b.readyState) === 'open') {
15330
15321
  task();
15331
15322
  }
15332
15323
  else {