@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/esm/index.js
CHANGED
|
@@ -10588,6 +10588,7 @@ var ReceiveSlotEvents;
|
|
|
10588
10588
|
class ReceiveSlot extends EventEmitter$2 {
|
|
10589
10589
|
constructor(idGetter, track) {
|
|
10590
10590
|
super();
|
|
10591
|
+
this._isRequested = false;
|
|
10591
10592
|
this._idGetter = idGetter;
|
|
10592
10593
|
this.handleStreamMediaStateChange = this.handleStreamMediaStateChange.bind(this);
|
|
10593
10594
|
this.handleStreamEnded = this.handleStreamEnded.bind(this);
|
|
@@ -10690,7 +10691,7 @@ class Transceiver {
|
|
|
10690
10691
|
class ReceiveOnlyTransceiver extends Transceiver {
|
|
10691
10692
|
constructor(config) {
|
|
10692
10693
|
super(config);
|
|
10693
|
-
this.metadata = {
|
|
10694
|
+
this.metadata = { isActiveSpeaker: false };
|
|
10694
10695
|
this.munger = config.munger;
|
|
10695
10696
|
this._receiveSlot = new ReceiveSlot(() => {
|
|
10696
10697
|
if (!this._rtcRtpTransceiver.mid) {
|
|
@@ -10723,7 +10724,7 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10723
10724
|
stats.requestedBitrate = this.metadata.requestedBitrate;
|
|
10724
10725
|
stats.requestedFrameSize = this.metadata.requestedFrameSize;
|
|
10725
10726
|
stats.requestedFrameRate = this.metadata.requestedFrameRate;
|
|
10726
|
-
stats.isRequested = this.
|
|
10727
|
+
stats.isRequested = this.receiveSlot._isRequested;
|
|
10727
10728
|
stats.lastRequestedUpdateTimestamp = this.metadata.lastRequestedUpdateTimestamp;
|
|
10728
10729
|
stats.isActiveSpeaker = this.metadata.isActiveSpeaker;
|
|
10729
10730
|
stats.lastActiveSpeakerUpdateTimestamp = this.metadata.lastActiveSpeakerUpdateTimestamp;
|
|
@@ -10750,8 +10751,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10750
10751
|
}
|
|
10751
10752
|
handleRequested(streamRequest) {
|
|
10752
10753
|
var _a, _b, _c, _d;
|
|
10753
|
-
if (!this.
|
|
10754
|
-
this.
|
|
10754
|
+
if (!this.receiveSlot._isRequested) {
|
|
10755
|
+
this.receiveSlot._isRequested = true;
|
|
10755
10756
|
this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
|
|
10756
10757
|
}
|
|
10757
10758
|
this.metadata.requestedBitrate = streamRequest.maxPayloadBitsPerSecond;
|
|
@@ -10759,8 +10760,8 @@ class ReceiveOnlyTransceiver extends Transceiver {
|
|
|
10759
10760
|
this.metadata.requestedFrameRate = (_d = (_c = streamRequest.codecInfos[0]) === null || _c === void 0 ? void 0 : _c.h264) === null || _d === void 0 ? void 0 : _d.maxFps;
|
|
10760
10761
|
}
|
|
10761
10762
|
handleUnrequested() {
|
|
10762
|
-
if (this.
|
|
10763
|
-
this.
|
|
10763
|
+
if (this.receiveSlot._isRequested) {
|
|
10764
|
+
this.receiveSlot._isRequested = false;
|
|
10764
10765
|
this.metadata.lastRequestedUpdateTimestamp = getCurrentTimestamp();
|
|
10765
10766
|
}
|
|
10766
10767
|
this.metadata.requestedBitrate = undefined;
|
|
@@ -14503,7 +14504,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14503
14504
|
this.rtxEnabled = false;
|
|
14504
14505
|
this.streamMuteStateChange = new TypedEvent();
|
|
14505
14506
|
this.streamPublishStateChange = new TypedEvent();
|
|
14506
|
-
this.streamEnded = new TypedEvent();
|
|
14507
14507
|
this.negotiationNeeded = new TypedEvent();
|
|
14508
14508
|
this.namedMediaGroupsChange = new TypedEvent();
|
|
14509
14509
|
this.requestedIdEncodingParamsMap = new Map();
|
|
@@ -14516,7 +14516,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14516
14516
|
this.handleTrackChange = this.handleTrackChange.bind(this);
|
|
14517
14517
|
this.handleStreamConstraintsChange = this.handleStreamConstraintsChange.bind(this);
|
|
14518
14518
|
this.handleStreamMuteStateChange = this.handleStreamMuteStateChange.bind(this);
|
|
14519
|
-
this.handleStreamEnded = this.handleStreamEnded.bind(this);
|
|
14520
14519
|
}
|
|
14521
14520
|
replaceSenderSource(stream) {
|
|
14522
14521
|
var _a, _b;
|
|
@@ -14548,9 +14547,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14548
14547
|
handleStreamMuteStateChange() {
|
|
14549
14548
|
this.streamMuteStateChange.emit();
|
|
14550
14549
|
}
|
|
14551
|
-
handleStreamEnded() {
|
|
14552
|
-
this.streamEnded.emit();
|
|
14553
|
-
}
|
|
14554
14550
|
get requested() {
|
|
14555
14551
|
return this.requestedIdEncodingParamsMap.size > 0;
|
|
14556
14552
|
}
|
|
@@ -14573,7 +14569,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14573
14569
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
|
|
14574
14570
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
|
|
14575
14571
|
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
|
|
14576
|
-
oldStream === null || oldStream === void 0 ? void 0 : oldStream.off(StreamEventNames.Ended, this.handleStreamEnded);
|
|
14577
14572
|
if (this.requested) {
|
|
14578
14573
|
yield this.replaceSenderSource(newStream);
|
|
14579
14574
|
}
|
|
@@ -14582,7 +14577,6 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14582
14577
|
newStream === null || newStream === void 0 ? void 0 : newStream.on(LocalStreamEventNames.ConstraintsChange, this.handleStreamConstraintsChange);
|
|
14583
14578
|
newStream === null || newStream === void 0 ? void 0 : newStream.on(LocalStreamEventNames.UserMuteStateChange, this.handleStreamMuteStateChange);
|
|
14584
14579
|
newStream === null || newStream === void 0 ? void 0 : newStream.on(LocalStreamEventNames.SystemMuteStateChange, this.handleStreamMuteStateChange);
|
|
14585
|
-
newStream === null || newStream === void 0 ? void 0 : newStream.on(StreamEventNames.Ended, this.handleStreamEnded);
|
|
14586
14580
|
if ((!oldStream && newStream && !newStream.muted) ||
|
|
14587
14581
|
(oldStream && !newStream && !oldStream.muted)) {
|
|
14588
14582
|
this.streamPublishStateChange.emit();
|
|
@@ -15064,10 +15058,6 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
15064
15058
|
this.sendSourceAdvertisement(mediaType);
|
|
15065
15059
|
this.sendMediaRequestStatus(mediaType);
|
|
15066
15060
|
});
|
|
15067
|
-
transceiver.streamEnded.on(() => {
|
|
15068
|
-
this.sendSourceAdvertisement(mediaType);
|
|
15069
|
-
this.sendMediaRequestStatus(mediaType);
|
|
15070
|
-
});
|
|
15071
15061
|
transceiver.negotiationNeeded.on((offerAnswerType) => {
|
|
15072
15062
|
if (offerAnswerType === OfferAnswerType.Remote) {
|
|
15073
15063
|
this.emit(MultistreamConnectionEventNames.NegotiationNeeded);
|
|
@@ -15145,6 +15135,10 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15145
15135
|
logger.warn(`Got MediaRequestStatus for unknown receive slot: ${JSON.stringify(s.id)}`);
|
|
15146
15136
|
return;
|
|
15147
15137
|
}
|
|
15138
|
+
if (!receiveSlot._isRequested) {
|
|
15139
|
+
logger.info(`MediaRequestStatus ignored due to transceiver's receive slot unrequested: ${JSON.stringify(s.id)} csi ${s.csi}`);
|
|
15140
|
+
return;
|
|
15141
|
+
}
|
|
15148
15142
|
receiveSlot._updateSource(s.state, s.csi);
|
|
15149
15143
|
});
|
|
15150
15144
|
});
|
|
@@ -15297,12 +15291,9 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15297
15291
|
}
|
|
15298
15292
|
}
|
|
15299
15293
|
sendSourceAdvertisement(mediaType) {
|
|
15300
|
-
var _a, _b
|
|
15294
|
+
var _a, _b;
|
|
15301
15295
|
const transceiver = this.getSendTransceiverOrThrow(mediaType);
|
|
15302
|
-
const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false
|
|
15303
|
-
((_b = transceiver.publishedStream) === null || _b === void 0 ? void 0 : _b.readyState) === 'live'
|
|
15304
|
-
? 1
|
|
15305
|
-
: 0;
|
|
15296
|
+
const numLiveSources = ((_a = transceiver.publishedStream) === null || _a === void 0 ? void 0 : _a.muted) === false ? 1 : 0;
|
|
15306
15297
|
let task;
|
|
15307
15298
|
if (getMediaFamily(mediaType) === MediaFamily.Video) {
|
|
15308
15299
|
const sources = this.getVideoStreamStates(mediaType);
|
|
@@ -15326,7 +15317,7 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15326
15317
|
.get(mediaType)) === null || _a === void 0 ? void 0 : _a.sendSourceAdvertisement(1, numLiveSources, mediaType === MediaType.AudioMain ? transceiver.namedMediaGroups : []);
|
|
15327
15318
|
};
|
|
15328
15319
|
}
|
|
15329
|
-
if (((
|
|
15320
|
+
if (((_b = this.dataChannel) === null || _b === void 0 ? void 0 : _b.readyState) === 'open') {
|
|
15330
15321
|
task();
|
|
15331
15322
|
}
|
|
15332
15323
|
else {
|