@webex/web-client-media-engine 3.31.5 → 3.31.6

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
@@ -14526,6 +14526,7 @@ class SendOnlyTransceiver extends Transceiver {
14526
14526
  this.rtxEnabled = false;
14527
14527
  this.dtxDisabled = true;
14528
14528
  this.streamMuteStateChange = new TypedEvent();
14529
+ this.streamReadyStateChanged = new TypedEvent();
14529
14530
  this.streamPublishStateChange = new TypedEvent();
14530
14531
  this.negotiationNeeded = new TypedEvent();
14531
14532
  this.namedMediaGroupsChange = new TypedEvent();
@@ -14539,6 +14540,7 @@ class SendOnlyTransceiver extends Transceiver {
14539
14540
  this.handleTrackChange = this.handleTrackChange.bind(this);
14540
14541
  this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
14541
14542
  this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
14543
+ this.handleStreamEnded = this.handleStreamEnded.bind(this);
14542
14544
  }
14543
14545
  replaceSenderSource(stream) {
14544
14546
  var _a, _b;
@@ -14570,6 +14572,9 @@ class SendOnlyTransceiver extends Transceiver {
14570
14572
  handleStreamMuteStateChange() {
14571
14573
  this.streamMuteStateChange.emit();
14572
14574
  }
14575
+ handleStreamEnded() {
14576
+ this.streamReadyStateChanged.emit();
14577
+ }
14573
14578
  get requested() {
14574
14579
  return this.requestedIdEncodingParamsMap.size > 0;
14575
14580
  }
@@ -14592,6 +14597,7 @@ class SendOnlyTransceiver extends Transceiver {
14592
14597
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14593
14598
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14594
14599
  oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
14600
+ oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.StreamEventNames.Ended, this.handleStreamEnded);
14595
14601
  if (this.requested) {
14596
14602
  yield this.replaceSenderSource(newStream);
14597
14603
  }
@@ -14600,12 +14606,17 @@ class SendOnlyTransceiver extends Transceiver {
14600
14606
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
14601
14607
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
14602
14608
  newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
14603
- if ((!oldStream && newStream && !newStream.muted) ||
14604
- (oldStream && !newStream && !oldStream.muted)) {
14609
+ newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.StreamEventNames.Ended, this.handleStreamEnded);
14610
+ if ((!oldStream && newStream) || (oldStream && !newStream)) {
14605
14611
  this.streamPublishStateChange.emit();
14606
14612
  }
14607
- else if ((oldStream === null || oldStream === void 0 ? void 0 : oldStream.muted) !== (newStream === null || newStream === void 0 ? void 0 : newStream.muted)) {
14608
- this.streamMuteStateChange.emit();
14613
+ if (oldStream && newStream) {
14614
+ if (oldStream.muted !== newStream.muted) {
14615
+ this.streamMuteStateChange.emit();
14616
+ }
14617
+ if (oldStream.readyState !== newStream.readyState) {
14618
+ this.streamReadyStateChanged.emit();
14619
+ }
14609
14620
  }
14610
14621
  });
14611
14622
  }
@@ -15091,6 +15102,10 @@ class MultistreamConnection extends EventEmitter$2 {
15091
15102
  this.sendSourceAdvertisement(mediaType);
15092
15103
  this.sendMediaRequestStatus(mediaType);
15093
15104
  });
15105
+ transceiver.streamReadyStateChanged.on(() => {
15106
+ this.sendSourceAdvertisement(mediaType);
15107
+ this.sendMediaRequestStatus(mediaType);
15108
+ });
15094
15109
  transceiver.negotiationNeeded.on((offerAnswerType) => {
15095
15110
  if (offerAnswerType === OfferAnswerType.Remote) {
15096
15111
  this.emit(exports.MultistreamConnectionEventNames.NegotiationNeeded);
@@ -15324,9 +15339,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
15324
15339
  }
15325
15340
  }
15326
15341
  sendSourceAdvertisement(mediaType) {
15327
- var _a, _b;
15342
+ var _a, _b, _c;
15328
15343
  const transceiver = this.getSendTransceiverOrThrow(mediaType);
15329
- const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false ? 1 : 0;
15344
+ const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false &&
15345
+ ((_b = transceiver.publishedStream) === null || _b === void 0 ? void 0 : _b.readyState) === 'live'
15346
+ ? 1
15347
+ : 0;
15330
15348
  let task;
15331
15349
  if (getMediaFamily(mediaType) === exports.MediaFamily.Video) {
15332
15350
  const sources = this.getVideoStreamStates(mediaType);
@@ -15350,7 +15368,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
15350
15368
  .get(mediaType)) === null || _a === void 0 ? void 0 : _a.sendSourceAdvertisement(1, numLiveSources, mediaType === exports.MediaType.AudioMain ? transceiver.namedMediaGroups : []);
15351
15369
  };
15352
15370
  }
15353
- if (((_b = this.dataChannel) === null || _b === void 0 ? void 0 : _b.readyState) === 'open') {
15371
+ if (((_c = this.dataChannel) === null || _c === void 0 ? void 0 : _c.readyState) === 'open') {
15354
15372
  task();
15355
15373
  }
15356
15374
  else {