@webex/web-client-media-engine 1.37.5 → 1.37.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/esm/index.js CHANGED
@@ -8569,6 +8569,7 @@ class ReceiveSlot extends EventEmitter {
8569
8569
  this.handleTrackMuted = this.handleTrackMuted.bind(this);
8570
8570
  this.handleTrackUnmuted = this.handleTrackUnmuted.bind(this);
8571
8571
  this._stream = new MediaStream([track]);
8572
+ this._sourceState = 'no source';
8572
8573
  this.addTrackHandlers(track);
8573
8574
  }
8574
8575
  addTrackHandlers(track) {
@@ -8596,8 +8597,11 @@ class ReceiveSlot extends EventEmitter {
8596
8597
  this._stream.addTrack(newTrack);
8597
8598
  }
8598
8599
  _updateSource(state, csi) {
8599
- this.currentRxCsi = csi;
8600
- this.emit(ReceiveSlotEvents.SourceUpdate, state, csi);
8600
+ if (state !== this._sourceState || csi !== this._currentRxCsi) {
8601
+ this._sourceState = state;
8602
+ this._currentRxCsi = csi;
8603
+ this.emit(ReceiveSlotEvents.SourceUpdate, state, csi);
8604
+ }
8601
8605
  }
8602
8606
  close() {
8603
8607
  this._stream.getTracks().forEach((t) => {
@@ -8610,6 +8614,9 @@ class ReceiveSlot extends EventEmitter {
8610
8614
  get stream() {
8611
8615
  return this._stream;
8612
8616
  }
8617
+ get currentRxCsi() {
8618
+ return this._currentRxCsi;
8619
+ }
8613
8620
  }
8614
8621
  ReceiveSlot.Events = ReceiveSlotEvents;
8615
8622
 
@@ -9673,8 +9680,9 @@ class MultistreamConnection extends EventEmitter {
9673
9680
  this.dataChannel.send(msg);
9674
9681
  });
9675
9682
  if (getMediaFamily(mediaType) === MediaFamily.Video) {
9683
+ let prevNumTotalSources = 0;
9684
+ let prevNumLiveSources = 0;
9676
9685
  jmpSession.on(JmpSessionEvents.SourceIndication, (data) => {
9677
- this.emit(MultistreamConnectionEventNames.VideoSourceCountUpdate, data.numTotalSources, data.numLiveSources);
9678
9686
  data.sources.forEach((s) => {
9679
9687
  const receiveSlot = this.getReceiveSlotById(s.id);
9680
9688
  if (!receiveSlot) {
@@ -9683,6 +9691,12 @@ class MultistreamConnection extends EventEmitter {
9683
9691
  }
9684
9692
  receiveSlot._updateSource(s.state, s.csi);
9685
9693
  });
9694
+ if (data.numTotalSources !== prevNumTotalSources ||
9695
+ data.numLiveSources !== prevNumLiveSources) {
9696
+ prevNumTotalSources = data.numTotalSources;
9697
+ prevNumLiveSources = data.numLiveSources;
9698
+ this.emit(MultistreamConnectionEventNames.VideoSourceCountUpdate, data.numTotalSources, data.numLiveSources, getMediaContent(mediaType));
9699
+ }
9686
9700
  });
9687
9701
  jmpSession.on(JmpSessionEvents.ScrRequestReceived, (data) => {
9688
9702
  this.sendSourceWarnings(mediaType, data.requests);
@@ -9690,8 +9704,9 @@ class MultistreamConnection extends EventEmitter {
9690
9704
  });
9691
9705
  }
9692
9706
  if (getMediaFamily(mediaType) === MediaFamily.Audio) {
9707
+ let prevNumTotalSources = 0;
9708
+ let prevNumLiveSources = 0;
9693
9709
  jmpSession.on(JmpSessionEvents.SourceIndication, (data) => {
9694
- this.emit(MultistreamConnectionEventNames.AudioSourceCountUpdate, data.numTotalSources, data.numLiveSources);
9695
9710
  data.sources.forEach((s) => {
9696
9711
  const receiveSlot = this.getReceiveSlotById(s.id);
9697
9712
  if (!receiveSlot) {
@@ -9700,6 +9715,12 @@ class MultistreamConnection extends EventEmitter {
9700
9715
  }
9701
9716
  receiveSlot._updateSource(s.state, s.csi);
9702
9717
  });
9718
+ if (data.numTotalSources !== prevNumTotalSources ||
9719
+ data.numLiveSources !== prevNumLiveSources) {
9720
+ prevNumTotalSources = data.numTotalSources;
9721
+ prevNumLiveSources = data.numLiveSources;
9722
+ this.emit(MultistreamConnectionEventNames.AudioSourceCountUpdate, data.numTotalSources, data.numLiveSources, getMediaContent(mediaType));
9723
+ }
9703
9724
  });
9704
9725
  jmpSession.on(JmpSessionEvents.ActiveSpeaker, (data) => this.emit(MultistreamConnectionEventNames.ActiveSpeakerNotification, data));
9705
9726
  jmpSession.on(JmpSessionEvents.ScrRequestReceived, (data) => {