@webex/web-client-media-engine 3.29.4 → 3.30.0

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
@@ -14507,6 +14507,7 @@ class SendOnlyTransceiver extends Transceiver {
14507
14507
  this.rtxEnabled = false;
14508
14508
  this.streamMuteStateChange = new TypedEvent();
14509
14509
  this.streamPublishStateChange = new TypedEvent();
14510
+ this.streamEnded = new TypedEvent();
14510
14511
  this.negotiationNeeded = new TypedEvent();
14511
14512
  this.namedMediaGroupsChange = new TypedEvent();
14512
14513
  this.requestedIdEncodingParamsMap = new Map();
@@ -14519,6 +14520,7 @@ class SendOnlyTransceiver extends Transceiver {
14519
14520
  this.handleTrackChange = this.handleTrackChange.bind(this);
14520
14521
  this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
14521
14522
  this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
14523
+ this.handleStreamEnded = this.handleStreamEnded.bind(this);
14522
14524
  }
14523
14525
  replaceSenderSource(stream) {
14524
14526
  var _a, _b;
@@ -14550,6 +14552,9 @@ class SendOnlyTransceiver extends Transceiver {
14550
14552
  handleStreamMuteStateChange() {
14551
14553
  this.streamMuteStateChange.emit();
14552
14554
  }
14555
+ handleStreamEnded() {
14556
+ this.streamEnded.emit();
14557
+ }
14553
14558
  get requested() {
14554
14559
  return this.requestedIdEncodingParamsMap.size > 0;
14555
14560
  }
@@ -14572,6 +14577,7 @@ class SendOnlyTransceiver extends Transceiver {
14572
14577
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14573
14578
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14574
14579
  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);
14575
14581
  if (this.requested) {
14576
14582
  yield this.replaceSenderSource(newStream);
14577
14583
  }
@@ -14580,6 +14586,7 @@ class SendOnlyTransceiver extends Transceiver {
14580
14586
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14581
14587
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14582
14588
  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);
14583
14590
  if ((!oldStream && newStream && !newStream.muted) ||
14584
14591
  (oldStream && !newStream && !oldStream.muted)) {
14585
14592
  this.streamPublishStateChange.emit();
@@ -15061,6 +15068,10 @@ class MultistreamConnection extends EventEmitter$2 {
15061
15068
  this.sendSourceAdvertisement(mediaType);
15062
15069
  this.sendMediaRequestStatus(mediaType);
15063
15070
  });
15071
+ transceiver.streamEnded.on(() => {
15072
+ this.sendSourceAdvertisement(mediaType);
15073
+ this.sendMediaRequestStatus(mediaType);
15074
+ });
15064
15075
  transceiver.negotiationNeeded.on((offerAnswerType) => {
15065
15076
  if (offerAnswerType === OfferAnswerType.Remote) {
15066
15077
  this.emit(exports.MultistreamConnectionEventNames.NegotiationNeeded);
@@ -15290,9 +15301,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
15290
15301
  }
15291
15302
  }
15292
15303
  sendSourceAdvertisement(mediaType) {
15293
- var _a, _b;
15304
+ var _a, _b, _c;
15294
15305
  const transceiver = this.getSendTransceiverOrThrow(mediaType);
15295
- const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false ? 1 : 0;
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;
15296
15310
  let task;
15297
15311
  if (getMediaFamily(mediaType) === exports.MediaFamily.Video) {
15298
15312
  const sources = this.getVideoStreamStates(mediaType);
@@ -15316,7 +15330,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
15316
15330
  .get(mediaType)) === null || _a === void 0 ? void 0 : _a.sendSourceAdvertisement(1, numLiveSources, mediaType === exports.MediaType.AudioMain ? transceiver.namedMediaGroups : []);
15317
15331
  };
15318
15332
  }
15319
- if (((_b = this.dataChannel) === null || _b === void 0 ? void 0 : _b.readyState) === 'open') {
15333
+ if (((_c = this.dataChannel) === null || _c === void 0 ? void 0 : _c.readyState) === 'open') {
15320
15334
  task();
15321
15335
  }
15322
15336
  else {