@webex/web-client-media-engine 1.37.4 → 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/cjs/index.js +36 -8
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +36 -8
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +6 -4
- package/package.json +1 -1
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.
|
|
8600
|
-
|
|
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
|
|
|
@@ -9645,10 +9652,17 @@ class MultistreamConnection extends EventEmitter {
|
|
|
9645
9652
|
: [{ active: false }];
|
|
9646
9653
|
}
|
|
9647
9654
|
createSendTransceiver(mediaType, sceneId, sendEncodingsOptions) {
|
|
9648
|
-
|
|
9649
|
-
|
|
9650
|
-
|
|
9651
|
-
|
|
9655
|
+
let rtcTransceiver;
|
|
9656
|
+
try {
|
|
9657
|
+
rtcTransceiver = this.pc.addTransceiver(toMediaStreamTrackKind(mediaType), {
|
|
9658
|
+
direction: 'sendrecv',
|
|
9659
|
+
sendEncodings: sendEncodingsOptions,
|
|
9660
|
+
});
|
|
9661
|
+
}
|
|
9662
|
+
catch (e) {
|
|
9663
|
+
logger.error(`addTransceiver failed due to : ${e}`);
|
|
9664
|
+
throw e;
|
|
9665
|
+
}
|
|
9652
9666
|
this.addMid(mediaType);
|
|
9653
9667
|
const csi = generateCsi(getMediaFamily(mediaType), sceneId);
|
|
9654
9668
|
this.sendTransceivers.set(mediaType, new SendOnlyTransceiver(rtcTransceiver, csi));
|
|
@@ -9666,8 +9680,9 @@ class MultistreamConnection extends EventEmitter {
|
|
|
9666
9680
|
this.dataChannel.send(msg);
|
|
9667
9681
|
});
|
|
9668
9682
|
if (getMediaFamily(mediaType) === MediaFamily.Video) {
|
|
9683
|
+
let prevNumTotalSources = 0;
|
|
9684
|
+
let prevNumLiveSources = 0;
|
|
9669
9685
|
jmpSession.on(JmpSessionEvents.SourceIndication, (data) => {
|
|
9670
|
-
this.emit(MultistreamConnectionEventNames.VideoSourceCountUpdate, data.numTotalSources, data.numLiveSources);
|
|
9671
9686
|
data.sources.forEach((s) => {
|
|
9672
9687
|
const receiveSlot = this.getReceiveSlotById(s.id);
|
|
9673
9688
|
if (!receiveSlot) {
|
|
@@ -9676,6 +9691,12 @@ class MultistreamConnection extends EventEmitter {
|
|
|
9676
9691
|
}
|
|
9677
9692
|
receiveSlot._updateSource(s.state, s.csi);
|
|
9678
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
|
+
}
|
|
9679
9700
|
});
|
|
9680
9701
|
jmpSession.on(JmpSessionEvents.ScrRequestReceived, (data) => {
|
|
9681
9702
|
this.sendSourceWarnings(mediaType, data.requests);
|
|
@@ -9683,8 +9704,9 @@ class MultistreamConnection extends EventEmitter {
|
|
|
9683
9704
|
});
|
|
9684
9705
|
}
|
|
9685
9706
|
if (getMediaFamily(mediaType) === MediaFamily.Audio) {
|
|
9707
|
+
let prevNumTotalSources = 0;
|
|
9708
|
+
let prevNumLiveSources = 0;
|
|
9686
9709
|
jmpSession.on(JmpSessionEvents.SourceIndication, (data) => {
|
|
9687
|
-
this.emit(MultistreamConnectionEventNames.AudioSourceCountUpdate, data.numTotalSources, data.numLiveSources);
|
|
9688
9710
|
data.sources.forEach((s) => {
|
|
9689
9711
|
const receiveSlot = this.getReceiveSlotById(s.id);
|
|
9690
9712
|
if (!receiveSlot) {
|
|
@@ -9693,6 +9715,12 @@ class MultistreamConnection extends EventEmitter {
|
|
|
9693
9715
|
}
|
|
9694
9716
|
receiveSlot._updateSource(s.state, s.csi);
|
|
9695
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
|
+
}
|
|
9696
9724
|
});
|
|
9697
9725
|
jmpSession.on(JmpSessionEvents.ActiveSpeaker, (data) => this.emit(MultistreamConnectionEventNames.ActiveSpeakerNotification, data));
|
|
9698
9726
|
jmpSession.on(JmpSessionEvents.ScrRequestReceived, (data) => {
|