@webex/web-client-media-engine 3.24.2 → 3.25.0
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 +39 -18
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +39 -18
- package/dist/esm/index.js.map +1 -1
- package/dist/types/index.d.ts +9 -3
- package/package.json +6 -6
package/dist/cjs/index.js
CHANGED
|
@@ -6696,7 +6696,7 @@ function isValidStreamInfo(obj) {
|
|
|
6696
6696
|
const maybeStreamInfo = obj;
|
|
6697
6697
|
return Boolean(maybeStreamInfo.id &&
|
|
6698
6698
|
isValidStreamId(maybeStreamInfo.id) &&
|
|
6699
|
-
['no source', 'invalid source', 'live', 'avatar', 'bandwidth disabled'].includes(maybeStreamInfo.state));
|
|
6699
|
+
['no source', 'invalid source', 'live', 'avatar', 'bandwidth disabled', 'away'].includes(maybeStreamInfo.state));
|
|
6700
6700
|
}
|
|
6701
6701
|
function areStreamInfosEqual(left, right) {
|
|
6702
6702
|
return (areStreamIdsEqual(left.id, right.id) && left.state === right.state && left.csi === right.csi);
|
|
@@ -14397,6 +14397,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14397
14397
|
this.namedMediaGroupsChange = new TypedEvent();
|
|
14398
14398
|
this.requestedIdEncodingParamsMap = new Map();
|
|
14399
14399
|
this.updateSendParametersQueue = new AsyncQueue();
|
|
14400
|
+
this.sourceStateOverrideChange = new TypedEvent();
|
|
14400
14401
|
this.metadata = { lastRequestedUpdateTimestampsMap: new Map() };
|
|
14401
14402
|
this.munger = config.munger;
|
|
14402
14403
|
this.csi = config.csi;
|
|
@@ -14635,6 +14636,22 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14635
14636
|
this.munger.deleteCodecParameters(parameters);
|
|
14636
14637
|
this.negotiationNeeded.emit(OfferAnswerType.LocalOnly);
|
|
14637
14638
|
}
|
|
14639
|
+
setSourceStateOverride(state) {
|
|
14640
|
+
this.sourceStateOverride = state;
|
|
14641
|
+
this.sourceStateOverrideChange.emit();
|
|
14642
|
+
}
|
|
14643
|
+
get currentSourceState() {
|
|
14644
|
+
if (this.sourceStateOverride) {
|
|
14645
|
+
return this.sourceStateOverride;
|
|
14646
|
+
}
|
|
14647
|
+
if (!this.publishedStream) {
|
|
14648
|
+
return 'no source';
|
|
14649
|
+
}
|
|
14650
|
+
if (this.publishedStream.muted) {
|
|
14651
|
+
return 'avatar';
|
|
14652
|
+
}
|
|
14653
|
+
return 'live';
|
|
14654
|
+
}
|
|
14638
14655
|
}
|
|
14639
14656
|
|
|
14640
14657
|
class SendSlot {
|
|
@@ -14679,6 +14696,12 @@ class SendSlot {
|
|
|
14679
14696
|
this.sendTransceiver.deleteCodecParameters(parameters);
|
|
14680
14697
|
});
|
|
14681
14698
|
}
|
|
14699
|
+
setSourceStateOverride(state) {
|
|
14700
|
+
this.sendTransceiver.setSourceStateOverride(state);
|
|
14701
|
+
}
|
|
14702
|
+
clearSourceStateOverride() {
|
|
14703
|
+
this.sendTransceiver.setSourceStateOverride(undefined);
|
|
14704
|
+
}
|
|
14682
14705
|
}
|
|
14683
14706
|
|
|
14684
14707
|
const organizeTransceiverStats = (sendTransceivers, recvTransceivers) => __awaiter$1(void 0, void 0, void 0, function* () {
|
|
@@ -14898,7 +14921,13 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
14898
14921
|
const munger = new EgressSdpMunger({
|
|
14899
14922
|
doFullIce: this.options.doFullIce,
|
|
14900
14923
|
});
|
|
14901
|
-
const transceiver = new SendOnlyTransceiver({
|
|
14924
|
+
const transceiver = new SendOnlyTransceiver({
|
|
14925
|
+
rtcRtpTransceiver,
|
|
14926
|
+
mid,
|
|
14927
|
+
mediaType,
|
|
14928
|
+
munger,
|
|
14929
|
+
csi,
|
|
14930
|
+
});
|
|
14902
14931
|
if (getMediaFamily(mediaType) === exports.MediaFamily.Video) {
|
|
14903
14932
|
transceiver.rtxEnabled = true;
|
|
14904
14933
|
transceiver.setCodecParameters({
|
|
@@ -14928,6 +14957,9 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
14928
14957
|
transceiver.namedMediaGroupsChange.on(() => {
|
|
14929
14958
|
this.sendSourceAdvertisement(mediaType);
|
|
14930
14959
|
});
|
|
14960
|
+
transceiver.sourceStateOverrideChange.on(() => {
|
|
14961
|
+
this.sendMediaRequestStatus(mediaType);
|
|
14962
|
+
});
|
|
14931
14963
|
this.sendTransceivers.set(mediaType, transceiver);
|
|
14932
14964
|
this.createJmpSession(mediaType);
|
|
14933
14965
|
}
|
|
@@ -15175,23 +15207,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15175
15207
|
}
|
|
15176
15208
|
}
|
|
15177
15209
|
getVideoStreamStates(mediaType) {
|
|
15178
|
-
var _a;
|
|
15179
15210
|
const sendTransceiver = this.getSendTransceiverOrThrow(mediaType);
|
|
15180
|
-
|
|
15181
|
-
|
|
15182
|
-
|
|
15183
|
-
|
|
15184
|
-
|
|
15185
|
-
state = 'no source';
|
|
15186
|
-
}
|
|
15187
|
-
else if (muted) {
|
|
15188
|
-
state = 'avatar';
|
|
15189
|
-
}
|
|
15190
|
-
else {
|
|
15191
|
-
state = 'live';
|
|
15192
|
-
}
|
|
15193
|
-
return { id, state, csi: sendTransceiver.csi };
|
|
15194
|
-
});
|
|
15211
|
+
return sendTransceiver.senderIds.map((id) => ({
|
|
15212
|
+
id,
|
|
15213
|
+
state: sendTransceiver.currentSourceState,
|
|
15214
|
+
csi: sendTransceiver.csi,
|
|
15215
|
+
}));
|
|
15195
15216
|
}
|
|
15196
15217
|
createReceiveTransceiver(mediaType) {
|
|
15197
15218
|
const rtcRtpTransceiver = this.pc.addTransceiver(toMediaStreamTrackKind(mediaType), {
|