@webex/web-client-media-engine 3.24.3 → 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 +6 -0
- package/package.json +2 -2
package/dist/esm/index.js
CHANGED
|
@@ -6692,7 +6692,7 @@ function isValidStreamInfo(obj) {
|
|
|
6692
6692
|
const maybeStreamInfo = obj;
|
|
6693
6693
|
return Boolean(maybeStreamInfo.id &&
|
|
6694
6694
|
isValidStreamId(maybeStreamInfo.id) &&
|
|
6695
|
-
['no source', 'invalid source', 'live', 'avatar', 'bandwidth disabled'].includes(maybeStreamInfo.state));
|
|
6695
|
+
['no source', 'invalid source', 'live', 'avatar', 'bandwidth disabled', 'away'].includes(maybeStreamInfo.state));
|
|
6696
6696
|
}
|
|
6697
6697
|
function areStreamInfosEqual(left, right) {
|
|
6698
6698
|
return (areStreamIdsEqual(left.id, right.id) && left.state === right.state && left.csi === right.csi);
|
|
@@ -14393,6 +14393,7 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14393
14393
|
this.namedMediaGroupsChange = new TypedEvent();
|
|
14394
14394
|
this.requestedIdEncodingParamsMap = new Map();
|
|
14395
14395
|
this.updateSendParametersQueue = new AsyncQueue();
|
|
14396
|
+
this.sourceStateOverrideChange = new TypedEvent();
|
|
14396
14397
|
this.metadata = { lastRequestedUpdateTimestampsMap: new Map() };
|
|
14397
14398
|
this.munger = config.munger;
|
|
14398
14399
|
this.csi = config.csi;
|
|
@@ -14631,6 +14632,22 @@ class SendOnlyTransceiver extends Transceiver {
|
|
|
14631
14632
|
this.munger.deleteCodecParameters(parameters);
|
|
14632
14633
|
this.negotiationNeeded.emit(OfferAnswerType.LocalOnly);
|
|
14633
14634
|
}
|
|
14635
|
+
setSourceStateOverride(state) {
|
|
14636
|
+
this.sourceStateOverride = state;
|
|
14637
|
+
this.sourceStateOverrideChange.emit();
|
|
14638
|
+
}
|
|
14639
|
+
get currentSourceState() {
|
|
14640
|
+
if (this.sourceStateOverride) {
|
|
14641
|
+
return this.sourceStateOverride;
|
|
14642
|
+
}
|
|
14643
|
+
if (!this.publishedStream) {
|
|
14644
|
+
return 'no source';
|
|
14645
|
+
}
|
|
14646
|
+
if (this.publishedStream.muted) {
|
|
14647
|
+
return 'avatar';
|
|
14648
|
+
}
|
|
14649
|
+
return 'live';
|
|
14650
|
+
}
|
|
14634
14651
|
}
|
|
14635
14652
|
|
|
14636
14653
|
class SendSlot {
|
|
@@ -14675,6 +14692,12 @@ class SendSlot {
|
|
|
14675
14692
|
this.sendTransceiver.deleteCodecParameters(parameters);
|
|
14676
14693
|
});
|
|
14677
14694
|
}
|
|
14695
|
+
setSourceStateOverride(state) {
|
|
14696
|
+
this.sendTransceiver.setSourceStateOverride(state);
|
|
14697
|
+
}
|
|
14698
|
+
clearSourceStateOverride() {
|
|
14699
|
+
this.sendTransceiver.setSourceStateOverride(undefined);
|
|
14700
|
+
}
|
|
14678
14701
|
}
|
|
14679
14702
|
|
|
14680
14703
|
const organizeTransceiverStats = (sendTransceivers, recvTransceivers) => __awaiter$1(void 0, void 0, void 0, function* () {
|
|
@@ -14894,7 +14917,13 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
14894
14917
|
const munger = new EgressSdpMunger({
|
|
14895
14918
|
doFullIce: this.options.doFullIce,
|
|
14896
14919
|
});
|
|
14897
|
-
const transceiver = new SendOnlyTransceiver({
|
|
14920
|
+
const transceiver = new SendOnlyTransceiver({
|
|
14921
|
+
rtcRtpTransceiver,
|
|
14922
|
+
mid,
|
|
14923
|
+
mediaType,
|
|
14924
|
+
munger,
|
|
14925
|
+
csi,
|
|
14926
|
+
});
|
|
14898
14927
|
if (getMediaFamily(mediaType) === MediaFamily.Video) {
|
|
14899
14928
|
transceiver.rtxEnabled = true;
|
|
14900
14929
|
transceiver.setCodecParameters({
|
|
@@ -14924,6 +14953,9 @@ class MultistreamConnection extends EventEmitter$2 {
|
|
|
14924
14953
|
transceiver.namedMediaGroupsChange.on(() => {
|
|
14925
14954
|
this.sendSourceAdvertisement(mediaType);
|
|
14926
14955
|
});
|
|
14956
|
+
transceiver.sourceStateOverrideChange.on(() => {
|
|
14957
|
+
this.sendMediaRequestStatus(mediaType);
|
|
14958
|
+
});
|
|
14927
14959
|
this.sendTransceivers.set(mediaType, transceiver);
|
|
14928
14960
|
this.createJmpSession(mediaType);
|
|
14929
14961
|
}
|
|
@@ -15171,23 +15203,12 @@ SCTP Max Message Size: ${maxMessageSize}`);
|
|
|
15171
15203
|
}
|
|
15172
15204
|
}
|
|
15173
15205
|
getVideoStreamStates(mediaType) {
|
|
15174
|
-
var _a;
|
|
15175
15206
|
const sendTransceiver = this.getSendTransceiverOrThrow(mediaType);
|
|
15176
|
-
|
|
15177
|
-
|
|
15178
|
-
|
|
15179
|
-
|
|
15180
|
-
|
|
15181
|
-
state = 'no source';
|
|
15182
|
-
}
|
|
15183
|
-
else if (muted) {
|
|
15184
|
-
state = 'avatar';
|
|
15185
|
-
}
|
|
15186
|
-
else {
|
|
15187
|
-
state = 'live';
|
|
15188
|
-
}
|
|
15189
|
-
return { id, state, csi: sendTransceiver.csi };
|
|
15190
|
-
});
|
|
15207
|
+
return sendTransceiver.senderIds.map((id) => ({
|
|
15208
|
+
id,
|
|
15209
|
+
state: sendTransceiver.currentSourceState,
|
|
15210
|
+
csi: sendTransceiver.csi,
|
|
15211
|
+
}));
|
|
15191
15212
|
}
|
|
15192
15213
|
createReceiveTransceiver(mediaType) {
|
|
15193
15214
|
const rtcRtpTransceiver = this.pc.addTransceiver(toMediaStreamTrackKind(mediaType), {
|