@webex/web-client-media-engine 3.30.0 → 3.30.2
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 +14 -23
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +14 -23
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +1 -2
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -10592,6 +10592,7 @@ exports.ReceiveSlotEvents = void 0;
|
|
|
10592
10592
|
class ReceiveSlot extends EventEmitter$2 {
|
|
10593
10593
|
constructor(idGetter, track) {
|
|
10594
10594
|
super();
|
|
10595
|
+
this._isRequested = false;
|
|
10595
10596
|
this._idGetter = idGetter;
|
|
10596
10597
|
this.handleStreamMediaStateChange = this.handleStreamMediaStateChange.bind(this);
|
|
10597
10598
|
this.handleStreamEnded = this.handleStreamEnded.bind(this);
|
|
@@ -10694,7 +10695,7 @@ class Transceiver {
|
|
|
10694
10695
|
class ReceiveOnlyTransceiver extends Transceiver {
|
|
10695
10696
|
constructor(config) {
|
|
10696
10697
|
super(config);
|
|
10697
|
-
this.metadata = {
|
|
10698
|
+
this.metadata = { isActiveSpeaker: false };
|
|
10698
10699
|
this.munger = config.munger;
|
|
10699
10700
|
this._receiveSlot = new ReceiveSlot(() => {
|
|
10700
10701
|
if (!this._rtcRtpTransceiver.mid) {
|
|
@@ -10727,7 +10728,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10727
10728
|
stats.requestedBitrate = this.metadata.requestedBitrate;
|
|
10728
10729
|
stats.requestedFrameSize = this.metadata.requestedFrameSize;
|
|
10729
10730
|
stats.requestedFrameRate = this.metadata.requestedFrameRate;
|
|
10730
|
-
stats.isRequested = this.
|
|
10731
|
+
stats.isRequested = this.receiveSlot._isRequested;
|
|
10731
10732
|
stats.lastRequestedUpdateTimestamp = this.metadata.lastRequestedUpdateTimestamp;
|
|
10732
10733
|
stats.isActiveSpeaker = this.metadata.isActiveSpeaker;
|
|
10733
10734
|
stats.lastActiveSpeakerUpdateTimestamp = this.metadata.lastActiveSpeakerUpdateTimestamp;
|
|
@@ -10754,8 +10755,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10754
10755
|
}
|
|
10755
10756
|
handleRequested(streamRequest) {
|
|
10756
10757
|
var _a, _b, _c, _d;
|
|
10757
|
-
if (!this.
|
|
10758
|
-
this.
|
|
10758
|
+
if (!this.receiveSlot._isRequested) {
|
|
10759
|
+
this.receiveSlot._isRequested = true;
|
|
10759
10760
|
this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
|
|
10760
10761
|
}
|
|
10761
10762
|
this.metadata.requestedBitrate = streamRequest.maxPayloadBitsPerSecond;
|
|
@@ -10763,8 +10764,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10763
10764
|
this.metadata.requestedFrameRate = (_d = (_c = streamRequest.codecInfos[0]) === null || _c === void 0 ? void 0 : _c.h264) === null || _d === void 0 ? void 0 : _d.maxFps;
|
|
10764
10765
|
}
|
|
10765
10766
|
handleUnrequested() {
|
|
10766
|
-
if (this.
|
|
10767
|
-
this.
|
|
10767
|
+
if (this.receiveSlot._isRequested) {
|
|
10768
|
+
this.receiveSlot._isRequested = false;
|
|
10768
10769
|
this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
|
|
10769
10770
|
}
|
|
10770
10771
|
this.metadata.requestedBitrate = undefined;
|
|
@@ -14507,7 +14508,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14507
14508
|
this.rtxEnabled = false;
|
|
14508
14509
|
this.streamMuteStateChange = new TypedEvent();
|
|
14509
14510
|
this.streamPublishStateChange = new TypedEvent();
|
|
14510
|
-
this.streamEnded = new TypedEvent();
|
|
14511
14511
|
this.negotiationNeeded = new TypedEvent();
|
|
14512
14512
|
this.namedMediaGroupsChange = new TypedEvent();
|
|
14513
14513
|
this.requestedIdEncodingParamsMap = new Map();
|
|
@@ -14520,7 +14520,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14520
14520
|
this.handleTrackChange = this.handleTrackChange.bind(this);
|
|
14521
14521
|
this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
|
|
14522
14522
|
this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
|
|
14523
|
-
this.handleStreamEnded = this.handleStreamEnded.bind(this);
|
|
14524
14523
|
}
|
|
14525
14524
|
replaceSenderSource(stream) {
|
|
14526
14525
|
var _a, _b;
|
|
@@ -14552,9 +14551,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14552
14551
|
handleStreamMuteStateChange() {
|
|
14553
14552
|
this.streamMuteStateChange.emit();
|
|
14554
14553
|
}
|
|
14555
|
-
handleStreamEnded() {
|
|
14556
|
-
this.streamEnded.emit();
|
|
14557
|
-
}
|
|
14558
14554
|
get requested() {
|
|
14559
14555
|
return this.requestedIdEncodingParamsMap.size > 0;
|
|
14560
14556
|
}
|
|
@@ -14577,7 +14573,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14577
14573
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
|
|
14578
14574
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
|
|
14579
14575
|
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);
|
|
14581
14576
|
if (this.requested) {
|
|
14582
14577
|
yield this.replaceSenderSource(newStream);
|
|
14583
14578
|
}
|
|
@@ -14586,7 +14581,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14586
14581
|
newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
|
|
14587
14582
|
newStream === null || newStream === void 0 ? void 0 : newStream.on(exports.LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
|
|
14588
14583
|
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);
|
|
14590
14584
|
if ((!oldStream && newStream && !newStream.muted) ||
|
|
14591
14585
|
(oldStream && !newStream && !oldStream.muted)) {
|
|
14592
14586
|
this.streamPublishStateChange.emit();
|
|
@@ -15068,10 +15062,6 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15068
15062
|
this.sendSourceAdvertisement(mediaType);
|
|
15069
15063
|
this.sendMediaRequestStatus(mediaType);
|
|
15070
15064
|
});
|
|
15071
|
-
transceiver.streamEnded.on(() => {
|
|
15072
|
-
this.sendSourceAdvertisement(mediaType);
|
|
15073
|
-
this.sendMediaRequestStatus(mediaType);
|
|
15074
|
-
});
|
|
15075
15065
|
transceiver.negotiationNeeded.on((offerAnswerType) => {
|
|
15076
15066
|
if (offerAnswerType === OfferAnswerType.Remote) {
|
|
15077
15067
|
this.emit(exports.MultistreamConnectionEventNames.NegotiationNeeded);
|
|
@@ -15149,6 +15139,10 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15149
15139
|
logger.warn(`Got MediaRequestStatus for unknown receive slot: ${JSON.stringify(s.id)}`);
|
|
15150
15140
|
return;
|
|
15151
15141
|
}
|
|
15142
|
+
if (!receiveSlot._isRequested) {
|
|
15143
|
+
logger.info(`MediaRequestStatus ignored due to transceiver's receive slot unrequested: ${JSON.stringify(s.id)} csi ${s.csi}`);
|
|
15144
|
+
return;
|
|
15145
|
+
}
|
|
15152
15146
|
receiveSlot._updateSource(s.state, s.csi);
|
|
15153
15147
|
});
|
|
15154
15148
|
});
|
|
@@ -15301,12 +15295,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15301
15295
|
}
|
|
15302
15296
|
}
|
|
15303
15297
|
sendSourceAdvertisement(mediaType) {
|
|
15304
|
-
var _a, _b
|
|
15298
|
+
var _a, _b;
|
|
15305
15299
|
const transceiver = this.getSendTransceiverOrThrow(mediaType);
|
|
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;
|
|
15300
|
+
const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false ? 1 : 0;
|
|
15310
15301
|
let task;
|
|
15311
15302
|
if (getMediaFamily(mediaType) === exports.MediaFamily.Video) {
|
|
15312
15303
|
const sources = this.getVideoStreamStates(mediaType);
|
|
@@ -15330,7 +15321,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15330
15321
|
.get(mediaType)) === null || _a === void 0 ? void 0 : _a.sendSourceAdvertisement(1, numLiveSources, mediaType === exports.MediaType.AudioMain ? transceiver.namedMediaGroups : []);
|
|
15331
15322
|
};
|
|
15332
15323
|
}
|
|
15333
|
-
if (((
|
|
15324
|
+
if (((_b = this.dataChannel) === null || _b === void 0 ? void 0 : _b.readyState) === 'open') {
|
|
15334
15325
|
task();
|
|
15335
15326
|
}
|
|
15336
15327
|
else {
|