@webex/web-client-media-engine 3.17.0 → 3.17.1
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 +18 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +18 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -10460,7 +10460,7 @@ class Transceiver {
|
|
|
10460
10460
|
class ReceiveOnlyTransceiver extends Transceiver {
|
|
10461
10461
|
constructor(rtcRtpTransceiver, mid, munger) {
|
|
10462
10462
|
super(rtcRtpTransceiver, mid);
|
|
10463
|
-
this.metadata = {};
|
|
10463
|
+
this.metadata = { isActiveSpeaker: false };
|
|
10464
10464
|
this.munger = munger;
|
|
10465
10465
|
this._receiveSlot = new ReceiveSlot(() => {
|
|
10466
10466
|
if (!this._rtcRtpTransceiver.mid) {
|
|
@@ -10491,6 +10491,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10491
10491
|
stats.calliopeMediaType = this.metadata.mediaType;
|
|
10492
10492
|
stats.requestedBitrate = this.metadata.requestedBitrate;
|
|
10493
10493
|
stats.requestedFrameSize = this.metadata.requestedFrameSize;
|
|
10494
|
+
stats.isActiveSpeaker = this.metadata.isActiveSpeaker;
|
|
10495
|
+
stats.lastActiveSpeakerUpdateTimestamp = this.metadata.lastActiveSpeakerUpdateTimestamp;
|
|
10494
10496
|
Object.assign(stats, this.receiverId);
|
|
10495
10497
|
}
|
|
10496
10498
|
statsMap.set(key, stats);
|
|
@@ -10520,6 +10522,12 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10520
10522
|
this.metadata.requestedFrameSize = undefined;
|
|
10521
10523
|
this.receiveSlot._updateSource('no source', undefined);
|
|
10522
10524
|
}
|
|
10525
|
+
handleActiveSpeakerUpdate(value) {
|
|
10526
|
+
this.metadata.isActiveSpeaker = value;
|
|
10527
|
+
if (value) {
|
|
10528
|
+
this.metadata.lastActiveSpeakerUpdateTimestamp = performance.timeOrigin + performance.now();
|
|
10529
|
+
}
|
|
10530
|
+
}
|
|
10523
10531
|
}
|
|
10524
10532
|
ReceiveOnlyTransceiver.rid = '1';
|
|
10525
10533
|
|
|
@@ -14804,6 +14812,15 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
14804
14812
|
});
|
|
14805
14813
|
jmpSession.on(JmpSessionEvents.ActiveSpeaker, (data) => {
|
|
14806
14814
|
this.emit(MultistreamConnectionEventNames.ActiveSpeakerNotification, data.csis);
|
|
14815
|
+
this.recvTransceivers.forEach((transceivers) => {
|
|
14816
|
+
transceivers.forEach((t) => {
|
|
14817
|
+
const { currentRxCsi } = t.receiveSlot;
|
|
14818
|
+
if (currentRxCsi !== undefined) {
|
|
14819
|
+
const isActiveSpeaker = data.csis.some((activeCsi) => (activeCsi & 0xfffffffe) === (currentRxCsi & 0xfffffffe));
|
|
14820
|
+
t.handleActiveSpeakerUpdate(isActiveSpeaker);
|
|
14821
|
+
}
|
|
14822
|
+
});
|
|
14823
|
+
});
|
|
14807
14824
|
});
|
|
14808
14825
|
this.jmpSessions.set(mediaType, jmpSession);
|
|
14809
14826
|
}
|