@whereby.com/media 1.6.0 → 1.6.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/index.cjs +113 -60
- package/dist/index.d.cts +14 -4
- package/dist/index.d.mts +14 -4
- package/dist/index.d.ts +14 -4
- package/dist/index.mjs +113 -60
- package/dist/legacy-esm.js +113 -60
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -3072,22 +3072,15 @@ class Session {
|
|
|
3072
3072
|
return this.pc && this.pc.connectionState === "connected";
|
|
3073
3073
|
}
|
|
3074
3074
|
replaceTrack(oldTrack, newTrack) {
|
|
3075
|
+
if (!newTrack) {
|
|
3076
|
+
rtcStats.sendEvent("replaceTrackP2P", { nullTrack: "newTrack", oldTrackKind: oldTrack === null || oldTrack === void 0 ? void 0 : oldTrack.kind });
|
|
3077
|
+
}
|
|
3075
3078
|
const pc = this.pc;
|
|
3076
3079
|
if (!pc)
|
|
3077
3080
|
return false;
|
|
3078
3081
|
const senders = pc.getSenders();
|
|
3079
|
-
function dbg(msg) {
|
|
3080
|
-
const tr = (t) => t && `id:${t.id},kind:${t.kind},state:${t.readyState}`;
|
|
3081
|
-
logger$5.warn(`${msg}. newTrack:${tr(newTrack)}, oldTrack:${tr(oldTrack)}, sender tracks: ${JSON.stringify(senders.map((s) => `s ${tr(s.track)}`))}, sender first codecs: ${JSON.stringify(senders.map((s) => (s.getParameters().codecs || [])[0]))}`);
|
|
3082
|
-
}
|
|
3083
|
-
if (!senders.length) {
|
|
3084
|
-
dbg("No senders!");
|
|
3085
|
-
}
|
|
3086
3082
|
if (!oldTrack) {
|
|
3087
3083
|
oldTrack = (senders.find((s) => s.track && s.track.kind === newTrack.kind) || {}).track;
|
|
3088
|
-
if (!oldTrack) {
|
|
3089
|
-
dbg("No sender with same kind! Add new track then.");
|
|
3090
|
-
}
|
|
3091
3084
|
}
|
|
3092
3085
|
if (window.RTCRtpSender && window.RTCRtpSender.prototype.replaceTrack) {
|
|
3093
3086
|
if (oldTrack) {
|
|
@@ -3095,8 +3088,8 @@ class Session {
|
|
|
3095
3088
|
for (let i = 0; i < senders.length; i++) {
|
|
3096
3089
|
const sender = senders[i];
|
|
3097
3090
|
const track = sender.track;
|
|
3098
|
-
if (!
|
|
3099
|
-
|
|
3091
|
+
if (!track) {
|
|
3092
|
+
rtcStats.sendEvent("replaceTrackP2P", { nullTrack: "trackFromSender", oldTrackKind: oldTrack === null || oldTrack === void 0 ? void 0 : oldTrack.kind, newTrackKind: newTrack === null || newTrack === void 0 ? void 0 : newTrack.kind });
|
|
3100
3093
|
}
|
|
3101
3094
|
if (track.id === newTrack.id) {
|
|
3102
3095
|
return Promise.resolve(newTrack);
|
|
@@ -3124,7 +3117,6 @@ class Session {
|
|
|
3124
3117
|
if (3 < ++retried) {
|
|
3125
3118
|
clearInterval(timer);
|
|
3126
3119
|
timer = null;
|
|
3127
|
-
dbg("No sender track to replace");
|
|
3128
3120
|
reject("No sender track to replace");
|
|
3129
3121
|
}
|
|
3130
3122
|
return;
|
|
@@ -3138,7 +3130,6 @@ class Session {
|
|
|
3138
3130
|
}
|
|
3139
3131
|
const stream = this.streams.find((s) => s.getTracks().find((t) => t.id === newTrack.id)) || this.streams[0];
|
|
3140
3132
|
if (!stream) {
|
|
3141
|
-
dbg("No stream?");
|
|
3142
3133
|
return Promise.reject(new Error("replaceTrack: No stream?"));
|
|
3143
3134
|
}
|
|
3144
3135
|
return pc.addTrack(newTrack, stream);
|
|
@@ -3487,6 +3478,7 @@ var rtcManagerEvents = {
|
|
|
3487
3478
|
ICE_RESTART: "ice_restart",
|
|
3488
3479
|
MICROPHONE_NOT_WORKING: "microphone_not_working",
|
|
3489
3480
|
MICROPHONE_STOPPED_WORKING: "microphone_stopped_working",
|
|
3481
|
+
CAMERA_STOPPED_WORKING: "camera_stopped_working",
|
|
3490
3482
|
NEW_PC: "new_pc",
|
|
3491
3483
|
SFU_CONNECTION_OPEN: "sfu_connection_open",
|
|
3492
3484
|
SFU_CONNECTION_CLOSED: "sfu_connection_closed",
|
|
@@ -3533,6 +3525,10 @@ class P2pRtcManager {
|
|
|
3533
3525
|
rtcStats.sendEvent("audio_ended", { unloading: unloading$1 });
|
|
3534
3526
|
this._emit(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
|
|
3535
3527
|
};
|
|
3528
|
+
this._videoTrackOnEnded = () => {
|
|
3529
|
+
rtcStats.sendEvent("video_ended", { unloading: unloading$1 });
|
|
3530
|
+
this._emit(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
|
|
3531
|
+
};
|
|
3536
3532
|
this._updateAndScheduleMediaServersRefresh({
|
|
3537
3533
|
sfuServer,
|
|
3538
3534
|
iceServers: iceServers.iceServers || [],
|
|
@@ -3560,9 +3556,13 @@ class P2pRtcManager {
|
|
|
3560
3556
|
if (streamId === CAMERA_STREAM_ID) {
|
|
3561
3557
|
this._addStreamToPeerConnections(stream);
|
|
3562
3558
|
const [audioTrack] = stream.getAudioTracks();
|
|
3559
|
+
const videoTrack = stream.getVideoTracks()[0];
|
|
3563
3560
|
if (audioTrack) {
|
|
3564
3561
|
this._startMonitoringAudioTrack(audioTrack);
|
|
3565
3562
|
}
|
|
3563
|
+
if (videoTrack && !videoTrack.replacement) {
|
|
3564
|
+
this._startMonitoringVideoTrack(videoTrack);
|
|
3565
|
+
}
|
|
3566
3566
|
if (this._localStreamDeregisterFunction) {
|
|
3567
3567
|
this._localStreamDeregisterFunction();
|
|
3568
3568
|
this._localStreamDeregisterFunction = null;
|
|
@@ -3585,9 +3585,15 @@ class P2pRtcManager {
|
|
|
3585
3585
|
if (oldTrack && oldTrack.kind === "audio") {
|
|
3586
3586
|
this._stopMonitoringAudioTrack(oldTrack);
|
|
3587
3587
|
}
|
|
3588
|
+
if (oldTrack && oldTrack.kind === "video" && !newTrack.replacement) {
|
|
3589
|
+
this._stopMonitoringVideoTrack(oldTrack);
|
|
3590
|
+
}
|
|
3588
3591
|
if (newTrack && newTrack.kind === "audio") {
|
|
3589
3592
|
this._startMonitoringAudioTrack(newTrack);
|
|
3590
3593
|
}
|
|
3594
|
+
if (newTrack.kind === "video" && !newTrack.replacement) {
|
|
3595
|
+
this._startMonitoringVideoTrack(newTrack);
|
|
3596
|
+
}
|
|
3591
3597
|
return this._replaceTrackToPeerConnections(oldTrack, newTrack);
|
|
3592
3598
|
}
|
|
3593
3599
|
accept({ clientId, shouldAddLocalVideo }) {
|
|
@@ -4106,6 +4112,12 @@ class P2pRtcManager {
|
|
|
4106
4112
|
_stopMonitoringAudioTrack(track) {
|
|
4107
4113
|
track.removeEventListener("ended", this._audioTrackOnEnded);
|
|
4108
4114
|
}
|
|
4115
|
+
_startMonitoringVideoTrack(track) {
|
|
4116
|
+
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
4117
|
+
}
|
|
4118
|
+
_stopMonitoringVideoTrack(track) {
|
|
4119
|
+
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
4120
|
+
}
|
|
4109
4121
|
_connect(clientId) {
|
|
4110
4122
|
this.rtcStatsReconnect();
|
|
4111
4123
|
const shouldAddLocalVideo = true;
|
|
@@ -4459,10 +4471,12 @@ class P2pRtcManager {
|
|
|
4459
4471
|
}
|
|
4460
4472
|
}
|
|
4461
4473
|
stopOrResumeVideo(localStream, enable) {
|
|
4474
|
+
var _a;
|
|
4462
4475
|
if (!["chrome", "safari"].includes(browserName$1)) {
|
|
4463
4476
|
return;
|
|
4464
4477
|
}
|
|
4465
4478
|
if (enable === false) {
|
|
4479
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended" ? 0 : 5000;
|
|
4466
4480
|
setTimeout(() => {
|
|
4467
4481
|
localStream.getVideoTracks().forEach((track) => {
|
|
4468
4482
|
if (track.enabled === false) {
|
|
@@ -4475,7 +4489,7 @@ class P2pRtcManager {
|
|
|
4475
4489
|
this._handleStopOrResumeVideo({ enable, track });
|
|
4476
4490
|
}
|
|
4477
4491
|
});
|
|
4478
|
-
},
|
|
4492
|
+
}, stopCameraDelay);
|
|
4479
4493
|
}
|
|
4480
4494
|
else {
|
|
4481
4495
|
if (localStream.getVideoTracks().length === 0) {
|
|
@@ -4486,6 +4500,7 @@ class P2pRtcManager {
|
|
|
4486
4500
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
4487
4501
|
const track = stream.getVideoTracks()[0];
|
|
4488
4502
|
localStream.addTrack(track);
|
|
4503
|
+
this._startMonitoringVideoTrack(track);
|
|
4489
4504
|
this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
4490
4505
|
streamId: localStream.id,
|
|
4491
4506
|
tracks: [track],
|
|
@@ -4732,21 +4747,6 @@ function createMicAnalyser({ micTrack, params, onScoreUpdated, }) {
|
|
|
4732
4747
|
};
|
|
4733
4748
|
}
|
|
4734
4749
|
|
|
4735
|
-
const maybeTurnOnly = (transportConfig, features) => {
|
|
4736
|
-
if (!features.useOnlyTURN) {
|
|
4737
|
-
return;
|
|
4738
|
-
}
|
|
4739
|
-
transportConfig.iceTransportPolicy = "relay";
|
|
4740
|
-
const filter = {
|
|
4741
|
-
onlyudp: /^turn:.*transport=udp$/,
|
|
4742
|
-
onlytcp: /^turn:.*transport=tcp$/,
|
|
4743
|
-
onlytls: /^turns:.*transport=tcp$/,
|
|
4744
|
-
}[features.useOnlyTURN];
|
|
4745
|
-
if (filter) {
|
|
4746
|
-
transportConfig.iceServers = transportConfig.iceServers.filter((entry) => entry.url && entry.url.match(filter));
|
|
4747
|
-
}
|
|
4748
|
-
};
|
|
4749
|
-
|
|
4750
4750
|
const logger$2 = new Logger();
|
|
4751
4751
|
const MEDIA_QUALITY = Object.freeze({
|
|
4752
4752
|
ok: "ok",
|
|
@@ -4901,6 +4901,56 @@ class VegaMediaQualityMonitor extends EventEmitter {
|
|
|
4901
4901
|
}
|
|
4902
4902
|
}
|
|
4903
4903
|
|
|
4904
|
+
const maybeTurnOnly = (transportConfig, features) => {
|
|
4905
|
+
if (!features.useOnlyTURN) {
|
|
4906
|
+
return;
|
|
4907
|
+
}
|
|
4908
|
+
transportConfig.iceTransportPolicy = "relay";
|
|
4909
|
+
const filter = {
|
|
4910
|
+
onlyudp: /^turn:.*transport=udp$/,
|
|
4911
|
+
onlytcp: /^turn:.*transport=tcp$/,
|
|
4912
|
+
onlytls: /^turns:.*transport=tcp$/,
|
|
4913
|
+
}[features.useOnlyTURN];
|
|
4914
|
+
if (filter) {
|
|
4915
|
+
transportConfig.iceServers = transportConfig.iceServers.filter((entry) => entry.url && entry.url.match(filter));
|
|
4916
|
+
}
|
|
4917
|
+
};
|
|
4918
|
+
|
|
4919
|
+
function getLayers({ width, height, }, { numberOfActiveVideos, numberOfTemporalLayers, uncappedSingleRemoteVideoOn, }) {
|
|
4920
|
+
const maxSide = Math.max(width, height);
|
|
4921
|
+
let spatialLayer = maxSide >= 480 ? (maxSide >= 960 ? 2 : 1) : 0;
|
|
4922
|
+
let temporalLayer = numberOfTemporalLayers - 1;
|
|
4923
|
+
if (maxSide < 100) {
|
|
4924
|
+
temporalLayer = Math.max(numberOfTemporalLayers - 2, 0);
|
|
4925
|
+
}
|
|
4926
|
+
if (numberOfActiveVideos > 8 && spatialLayer === 0) {
|
|
4927
|
+
temporalLayer = Math.max(numberOfTemporalLayers - 2, 0);
|
|
4928
|
+
}
|
|
4929
|
+
if (numberOfActiveVideos < 4 && maxSide > 300 && spatialLayer === 0) {
|
|
4930
|
+
spatialLayer = 1;
|
|
4931
|
+
}
|
|
4932
|
+
if (uncappedSingleRemoteVideoOn && numberOfActiveVideos === 1) {
|
|
4933
|
+
spatialLayer = 2;
|
|
4934
|
+
temporalLayer = numberOfTemporalLayers - 1;
|
|
4935
|
+
}
|
|
4936
|
+
return { spatialLayer, temporalLayer };
|
|
4937
|
+
}
|
|
4938
|
+
function getNumberOfActiveVideos(consumers) {
|
|
4939
|
+
let numberOfActiveVideos = 0;
|
|
4940
|
+
consumers.forEach((c) => {
|
|
4941
|
+
var _a, _b;
|
|
4942
|
+
if (c._closed || c._paused)
|
|
4943
|
+
return;
|
|
4944
|
+
if (((_a = c._appData) === null || _a === void 0 ? void 0 : _a.source) === "webcam" || ((_b = c._appData) === null || _b === void 0 ? void 0 : _b.source) === "screenvideo")
|
|
4945
|
+
numberOfActiveVideos++;
|
|
4946
|
+
});
|
|
4947
|
+
return numberOfActiveVideos;
|
|
4948
|
+
}
|
|
4949
|
+
function getNumberOfTemporalLayers(consumer) {
|
|
4950
|
+
var _a, _b, _c;
|
|
4951
|
+
return /T3/.test(((_c = (_b = (_a = consumer._rtpParameters) === null || _a === void 0 ? void 0 : _a.encodings) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.scalabilityMode) || "") ? 3 : 2;
|
|
4952
|
+
}
|
|
4953
|
+
|
|
4904
4954
|
var _a$1;
|
|
4905
4955
|
const adapter$1 = (_a$1 = adapterRaw.default) !== null && _a$1 !== void 0 ? _a$1 : adapterRaw;
|
|
4906
4956
|
const logger$1 = new Logger();
|
|
@@ -4964,6 +5014,10 @@ class VegaRtcManager {
|
|
|
4964
5014
|
rtcStats.sendEvent("audio_ended", { unloading });
|
|
4965
5015
|
this._emitToPWA(rtcManagerEvents.MICROPHONE_STOPPED_WORKING, {});
|
|
4966
5016
|
};
|
|
5017
|
+
this._videoTrackOnEnded = () => {
|
|
5018
|
+
rtcStats.sendEvent("video_ended", { unloading });
|
|
5019
|
+
this._emitToPWA(rtcManagerEvents.CAMERA_STOPPED_WORKING, {});
|
|
5020
|
+
};
|
|
4967
5021
|
this._updateAndScheduleMediaServersRefresh({
|
|
4968
5022
|
sfuServer,
|
|
4969
5023
|
iceServers: iceServers.iceServers || [],
|
|
@@ -5674,12 +5728,18 @@ class VegaRtcManager {
|
|
|
5674
5728
|
if (oldTrack && oldTrack.kind === "audio") {
|
|
5675
5729
|
this._stopMonitoringAudioTrack(oldTrack);
|
|
5676
5730
|
}
|
|
5731
|
+
if (oldTrack && oldTrack.kind === "video" && !track.replacement) {
|
|
5732
|
+
this._stopMonitoringVideoTrack(oldTrack);
|
|
5733
|
+
}
|
|
5677
5734
|
if (track.kind === "audio") {
|
|
5678
5735
|
this._startMonitoringAudioTrack(track);
|
|
5679
5736
|
this._micTrack = track;
|
|
5680
5737
|
this._replaceMicTrack();
|
|
5681
5738
|
}
|
|
5682
5739
|
if (track.kind === "video") {
|
|
5740
|
+
if (!track.replacement) {
|
|
5741
|
+
this._startMonitoringVideoTrack(track);
|
|
5742
|
+
}
|
|
5683
5743
|
this._webcamTrack = track;
|
|
5684
5744
|
this._replaceWebcamTrack();
|
|
5685
5745
|
}
|
|
@@ -5708,8 +5768,12 @@ class VegaRtcManager {
|
|
|
5708
5768
|
this._webcamPaused = videoPaused;
|
|
5709
5769
|
const videoTrack = stream.getVideoTracks()[0];
|
|
5710
5770
|
const audioTrack = stream.getAudioTracks()[0];
|
|
5711
|
-
if (videoTrack)
|
|
5771
|
+
if (videoTrack) {
|
|
5712
5772
|
this._sendWebcam(videoTrack);
|
|
5773
|
+
if (!videoTrack.replacement) {
|
|
5774
|
+
this._startMonitoringVideoTrack(videoTrack);
|
|
5775
|
+
}
|
|
5776
|
+
}
|
|
5713
5777
|
if (audioTrack) {
|
|
5714
5778
|
this._sendMic(audioTrack);
|
|
5715
5779
|
this._syncMicAnalyser();
|
|
@@ -5772,6 +5836,7 @@ class VegaRtcManager {
|
|
|
5772
5836
|
}
|
|
5773
5837
|
}
|
|
5774
5838
|
stopOrResumeVideo(localStream, enable) {
|
|
5839
|
+
var _a;
|
|
5775
5840
|
logger$1.info("stopOrResumeVideo() [enable:%s]", enable);
|
|
5776
5841
|
this._webcamPaused = !enable;
|
|
5777
5842
|
this._pauseResumeWebcam();
|
|
@@ -5780,6 +5845,7 @@ class VegaRtcManager {
|
|
|
5780
5845
|
}
|
|
5781
5846
|
if (!enable) {
|
|
5782
5847
|
clearTimeout(this._stopCameraTimeout);
|
|
5848
|
+
const stopCameraDelay = ((_a = localStream.getVideoTracks().find((t) => !t.enabled)) === null || _a === void 0 ? void 0 : _a.readyState) === "ended" ? 0 : 5000;
|
|
5783
5849
|
this._stopCameraTimeout = setTimeout(() => {
|
|
5784
5850
|
localStream.getVideoTracks().forEach((track) => {
|
|
5785
5851
|
if (track.enabled === false) {
|
|
@@ -5792,13 +5858,14 @@ class VegaRtcManager {
|
|
|
5792
5858
|
this._handleStopOrResumeVideo({ enable, track });
|
|
5793
5859
|
}
|
|
5794
5860
|
});
|
|
5795
|
-
},
|
|
5861
|
+
}, stopCameraDelay);
|
|
5796
5862
|
}
|
|
5797
5863
|
else if (localStream.getVideoTracks().length === 0) {
|
|
5798
5864
|
const constraints = this._webrtcProvider.getMediaConstraints().video;
|
|
5799
5865
|
navigator.mediaDevices.getUserMedia({ video: constraints }).then((stream) => {
|
|
5800
5866
|
const track = stream.getVideoTracks()[0];
|
|
5801
5867
|
localStream.addTrack(track);
|
|
5868
|
+
this._startMonitoringVideoTrack(track);
|
|
5802
5869
|
this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
|
|
5803
5870
|
streamId: localStream.id,
|
|
5804
5871
|
tracks: [track],
|
|
@@ -5827,43 +5894,23 @@ class VegaRtcManager {
|
|
|
5827
5894
|
this._syncIncomingStreamsWithPWA(clientId);
|
|
5828
5895
|
}
|
|
5829
5896
|
updateStreamResolution(streamId, _ignored, { width, height, }) {
|
|
5830
|
-
var _a, _b
|
|
5897
|
+
var _a, _b;
|
|
5831
5898
|
logger$1.info("updateStreamResolution()", { streamId, width, height });
|
|
5832
5899
|
const consumerId = this._streamIdToVideoConsumerId.get(streamId);
|
|
5833
5900
|
const consumer = this._consumers.get(consumerId);
|
|
5834
5901
|
if (!consumer)
|
|
5835
5902
|
return;
|
|
5836
|
-
|
|
5837
|
-
|
|
5838
|
-
|
|
5839
|
-
|
|
5840
|
-
|
|
5841
|
-
|
|
5842
|
-
numberOfActiveVideos++;
|
|
5903
|
+
const numberOfActiveVideos = getNumberOfActiveVideos(this._consumers);
|
|
5904
|
+
const numberOfTemporalLayers = getNumberOfTemporalLayers(consumer);
|
|
5905
|
+
const { spatialLayer, temporalLayer } = getLayers({ width, height }, {
|
|
5906
|
+
numberOfActiveVideos,
|
|
5907
|
+
numberOfTemporalLayers,
|
|
5908
|
+
uncappedSingleRemoteVideoOn: (_a = this._features) === null || _a === void 0 ? void 0 : _a.uncappedSingleRemoteVideoOn,
|
|
5843
5909
|
});
|
|
5844
|
-
let numberOfTemporalLayers = 2;
|
|
5845
|
-
if (/T3/.test(((_c = (_b = (_a = consumer._rtpParameters) === null || _a === void 0 ? void 0 : _a.encodings) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.scalabilityMode) || ""))
|
|
5846
|
-
numberOfTemporalLayers = 3;
|
|
5847
|
-
const maxSide = Math.max(width, height);
|
|
5848
|
-
let spatialLayer = maxSide >= 480 ? (maxSide >= 960 ? 2 : 1) : 0;
|
|
5849
|
-
let temporalLayer = numberOfTemporalLayers - 1;
|
|
5850
|
-
if (maxSide < 100) {
|
|
5851
|
-
temporalLayer = Math.max(numberOfTemporalLayers - 2, 0);
|
|
5852
|
-
}
|
|
5853
|
-
if (numberOfActiveVideos > 8 && spatialLayer === 0) {
|
|
5854
|
-
temporalLayer = Math.max(numberOfTemporalLayers - 2, 0);
|
|
5855
|
-
}
|
|
5856
|
-
if (numberOfActiveVideos < 4 && maxSide > 300 && spatialLayer === 0) {
|
|
5857
|
-
spatialLayer = 1;
|
|
5858
|
-
}
|
|
5859
|
-
if (((_d = this._features) === null || _d === void 0 ? void 0 : _d.uncappedSingleRemoteVideoOn) && numberOfActiveVideos === 1) {
|
|
5860
|
-
spatialLayer = 2;
|
|
5861
|
-
temporalLayer = numberOfTemporalLayers - 1;
|
|
5862
|
-
}
|
|
5863
5910
|
if (consumer.appData.spatialLayer !== spatialLayer || consumer.appData.temporalLayer !== temporalLayer) {
|
|
5864
5911
|
consumer.appData.spatialLayer = spatialLayer;
|
|
5865
5912
|
consumer.appData.temporalLayer = temporalLayer;
|
|
5866
|
-
(
|
|
5913
|
+
(_b = this._vegaConnection) === null || _b === void 0 ? void 0 : _b.message("setConsumersPreferredLayers", {
|
|
5867
5914
|
consumerIds: [consumerId],
|
|
5868
5915
|
spatialLayer,
|
|
5869
5916
|
temporalLayer,
|
|
@@ -5919,6 +5966,12 @@ class VegaRtcManager {
|
|
|
5919
5966
|
_stopMonitoringAudioTrack(track) {
|
|
5920
5967
|
track.removeEventListener("ended", this._audioTrackOnEnded);
|
|
5921
5968
|
}
|
|
5969
|
+
_startMonitoringVideoTrack(track) {
|
|
5970
|
+
track.addEventListener("ended", this._videoTrackOnEnded);
|
|
5971
|
+
}
|
|
5972
|
+
_stopMonitoringVideoTrack(track) {
|
|
5973
|
+
track.removeEventListener("ended", this._videoTrackOnEnded);
|
|
5974
|
+
}
|
|
5922
5975
|
_onMessage(message) {
|
|
5923
5976
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5924
5977
|
const { method, data } = message;
|
package/dist/index.d.cts
CHANGED
|
@@ -128,7 +128,7 @@ interface RtcManager {
|
|
|
128
128
|
addNewStream(streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean): void;
|
|
129
129
|
disconnect(streamId: string, activeBreakout: boolean | null, eventClaim?: string): void;
|
|
130
130
|
disconnectAll(): void;
|
|
131
|
-
replaceTrack(oldTrack:
|
|
131
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): void;
|
|
132
132
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string | null): void;
|
|
133
133
|
shouldAcceptStreamsFromBothSides?: () => boolean;
|
|
134
134
|
updateStreamResolution(streamId: string, ignored: null, resolution: {
|
|
@@ -263,6 +263,9 @@ type GetDeviceDataResult = {
|
|
|
263
263
|
kind: string;
|
|
264
264
|
};
|
|
265
265
|
};
|
|
266
|
+
interface CustomMediaStreamTrack extends MediaStreamTrack {
|
|
267
|
+
replacement?: boolean;
|
|
268
|
+
}
|
|
266
269
|
|
|
267
270
|
declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
|
|
268
271
|
declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
|
|
@@ -327,6 +330,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
327
330
|
};
|
|
328
331
|
_pendingActionsForConnectedPeerConnections: any[];
|
|
329
332
|
_audioTrackOnEnded: () => void;
|
|
333
|
+
_videoTrackOnEnded: () => void;
|
|
330
334
|
totalSessionsCreated: number;
|
|
331
335
|
_iceServers: any;
|
|
332
336
|
_sfuServer: any;
|
|
@@ -356,7 +360,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
356
360
|
supportsScreenShareAudio(): boolean;
|
|
357
361
|
maybeRestrictRelayBandwidth(session: any): void;
|
|
358
362
|
addNewStream(streamId: string, stream: MediaStream): void;
|
|
359
|
-
replaceTrack(oldTrack:
|
|
363
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
360
364
|
accept({ clientId, shouldAddLocalVideo }: {
|
|
361
365
|
clientId: string;
|
|
362
366
|
shouldAddLocalVideo?: boolean;
|
|
@@ -412,6 +416,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
412
416
|
_clearMediaServersRefresh(): void;
|
|
413
417
|
_startMonitoringAudioTrack(track: any): void;
|
|
414
418
|
_stopMonitoringAudioTrack(track: any): void;
|
|
419
|
+
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
420
|
+
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
415
421
|
_connect(clientId: string): Promise<any>;
|
|
416
422
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
417
423
|
_setCodecPreferences(pc: any, vp9On: any, av1On: any, redOn: any): void;
|
|
@@ -841,6 +847,7 @@ declare const _default: {
|
|
|
841
847
|
ICE_RESTART: string;
|
|
842
848
|
MICROPHONE_NOT_WORKING: string;
|
|
843
849
|
MICROPHONE_STOPPED_WORKING: string;
|
|
850
|
+
CAMERA_STOPPED_WORKING: string;
|
|
844
851
|
NEW_PC: string;
|
|
845
852
|
SFU_CONNECTION_OPEN: string;
|
|
846
853
|
SFU_CONNECTION_CLOSED: string;
|
|
@@ -1090,6 +1097,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1090
1097
|
_colocation: any;
|
|
1091
1098
|
_stopCameraTimeout: any;
|
|
1092
1099
|
_audioTrackOnEnded: any;
|
|
1100
|
+
_videoTrackOnEnded: any;
|
|
1093
1101
|
_socketListenerDeregisterFunctions: any;
|
|
1094
1102
|
_reconnect: any;
|
|
1095
1103
|
_reconnectTimeOut: any;
|
|
@@ -1150,7 +1158,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1150
1158
|
setRemoteScreenshareVideoTrackIds(): void;
|
|
1151
1159
|
setRoomSessionId(roomSessionId: string): void;
|
|
1152
1160
|
disconnect(clientIdOrStreamId: string, _activeBreakout: any, eventClaim?: string): void;
|
|
1153
|
-
replaceTrack(oldTrack:
|
|
1161
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1154
1162
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1155
1163
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1156
1164
|
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
@@ -1178,6 +1186,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1178
1186
|
rtcStatsReconnect(): void;
|
|
1179
1187
|
_startMonitoringAudioTrack(track: MediaStreamTrack): void;
|
|
1180
1188
|
_stopMonitoringAudioTrack(track: MediaStreamTrack): void;
|
|
1189
|
+
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1190
|
+
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1181
1191
|
_onMessage(message: any): Promise<void>;
|
|
1182
1192
|
_onConsumerReady(options: any): Promise<void>;
|
|
1183
1193
|
_onConsumerClosed({ consumerId, reason }: {
|
|
@@ -1380,4 +1390,4 @@ declare class RtcStream {
|
|
|
1380
1390
|
static getTypeFromId(id: string): string;
|
|
1381
1391
|
}
|
|
1382
1392
|
|
|
1383
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1393
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
package/dist/index.d.mts
CHANGED
|
@@ -128,7 +128,7 @@ interface RtcManager {
|
|
|
128
128
|
addNewStream(streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean): void;
|
|
129
129
|
disconnect(streamId: string, activeBreakout: boolean | null, eventClaim?: string): void;
|
|
130
130
|
disconnectAll(): void;
|
|
131
|
-
replaceTrack(oldTrack:
|
|
131
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): void;
|
|
132
132
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string | null): void;
|
|
133
133
|
shouldAcceptStreamsFromBothSides?: () => boolean;
|
|
134
134
|
updateStreamResolution(streamId: string, ignored: null, resolution: {
|
|
@@ -263,6 +263,9 @@ type GetDeviceDataResult = {
|
|
|
263
263
|
kind: string;
|
|
264
264
|
};
|
|
265
265
|
};
|
|
266
|
+
interface CustomMediaStreamTrack extends MediaStreamTrack {
|
|
267
|
+
replacement?: boolean;
|
|
268
|
+
}
|
|
266
269
|
|
|
267
270
|
declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
|
|
268
271
|
declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
|
|
@@ -327,6 +330,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
327
330
|
};
|
|
328
331
|
_pendingActionsForConnectedPeerConnections: any[];
|
|
329
332
|
_audioTrackOnEnded: () => void;
|
|
333
|
+
_videoTrackOnEnded: () => void;
|
|
330
334
|
totalSessionsCreated: number;
|
|
331
335
|
_iceServers: any;
|
|
332
336
|
_sfuServer: any;
|
|
@@ -356,7 +360,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
356
360
|
supportsScreenShareAudio(): boolean;
|
|
357
361
|
maybeRestrictRelayBandwidth(session: any): void;
|
|
358
362
|
addNewStream(streamId: string, stream: MediaStream): void;
|
|
359
|
-
replaceTrack(oldTrack:
|
|
363
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
360
364
|
accept({ clientId, shouldAddLocalVideo }: {
|
|
361
365
|
clientId: string;
|
|
362
366
|
shouldAddLocalVideo?: boolean;
|
|
@@ -412,6 +416,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
412
416
|
_clearMediaServersRefresh(): void;
|
|
413
417
|
_startMonitoringAudioTrack(track: any): void;
|
|
414
418
|
_stopMonitoringAudioTrack(track: any): void;
|
|
419
|
+
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
420
|
+
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
415
421
|
_connect(clientId: string): Promise<any>;
|
|
416
422
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
417
423
|
_setCodecPreferences(pc: any, vp9On: any, av1On: any, redOn: any): void;
|
|
@@ -841,6 +847,7 @@ declare const _default: {
|
|
|
841
847
|
ICE_RESTART: string;
|
|
842
848
|
MICROPHONE_NOT_WORKING: string;
|
|
843
849
|
MICROPHONE_STOPPED_WORKING: string;
|
|
850
|
+
CAMERA_STOPPED_WORKING: string;
|
|
844
851
|
NEW_PC: string;
|
|
845
852
|
SFU_CONNECTION_OPEN: string;
|
|
846
853
|
SFU_CONNECTION_CLOSED: string;
|
|
@@ -1090,6 +1097,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1090
1097
|
_colocation: any;
|
|
1091
1098
|
_stopCameraTimeout: any;
|
|
1092
1099
|
_audioTrackOnEnded: any;
|
|
1100
|
+
_videoTrackOnEnded: any;
|
|
1093
1101
|
_socketListenerDeregisterFunctions: any;
|
|
1094
1102
|
_reconnect: any;
|
|
1095
1103
|
_reconnectTimeOut: any;
|
|
@@ -1150,7 +1158,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1150
1158
|
setRemoteScreenshareVideoTrackIds(): void;
|
|
1151
1159
|
setRoomSessionId(roomSessionId: string): void;
|
|
1152
1160
|
disconnect(clientIdOrStreamId: string, _activeBreakout: any, eventClaim?: string): void;
|
|
1153
|
-
replaceTrack(oldTrack:
|
|
1161
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1154
1162
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1155
1163
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1156
1164
|
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
@@ -1178,6 +1186,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1178
1186
|
rtcStatsReconnect(): void;
|
|
1179
1187
|
_startMonitoringAudioTrack(track: MediaStreamTrack): void;
|
|
1180
1188
|
_stopMonitoringAudioTrack(track: MediaStreamTrack): void;
|
|
1189
|
+
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1190
|
+
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1181
1191
|
_onMessage(message: any): Promise<void>;
|
|
1182
1192
|
_onConsumerReady(options: any): Promise<void>;
|
|
1183
1193
|
_onConsumerClosed({ consumerId, reason }: {
|
|
@@ -1380,4 +1390,4 @@ declare class RtcStream {
|
|
|
1380
1390
|
static getTypeFromId(id: string): string;
|
|
1381
1391
|
}
|
|
1382
1392
|
|
|
1383
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1393
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
package/dist/index.d.ts
CHANGED
|
@@ -128,7 +128,7 @@ interface RtcManager {
|
|
|
128
128
|
addNewStream(streamId: string, stream: MediaStream, isAudioEnabled: boolean, isVideoEnabled: boolean): void;
|
|
129
129
|
disconnect(streamId: string, activeBreakout: boolean | null, eventClaim?: string): void;
|
|
130
130
|
disconnectAll(): void;
|
|
131
|
-
replaceTrack(oldTrack:
|
|
131
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): void;
|
|
132
132
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string | null): void;
|
|
133
133
|
shouldAcceptStreamsFromBothSides?: () => boolean;
|
|
134
134
|
updateStreamResolution(streamId: string, ignored: null, resolution: {
|
|
@@ -263,6 +263,9 @@ type GetDeviceDataResult = {
|
|
|
263
263
|
kind: string;
|
|
264
264
|
};
|
|
265
265
|
};
|
|
266
|
+
interface CustomMediaStreamTrack extends MediaStreamTrack {
|
|
267
|
+
replacement?: boolean;
|
|
268
|
+
}
|
|
266
269
|
|
|
267
270
|
declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
|
|
268
271
|
declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
|
|
@@ -327,6 +330,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
327
330
|
};
|
|
328
331
|
_pendingActionsForConnectedPeerConnections: any[];
|
|
329
332
|
_audioTrackOnEnded: () => void;
|
|
333
|
+
_videoTrackOnEnded: () => void;
|
|
330
334
|
totalSessionsCreated: number;
|
|
331
335
|
_iceServers: any;
|
|
332
336
|
_sfuServer: any;
|
|
@@ -356,7 +360,7 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
356
360
|
supportsScreenShareAudio(): boolean;
|
|
357
361
|
maybeRestrictRelayBandwidth(session: any): void;
|
|
358
362
|
addNewStream(streamId: string, stream: MediaStream): void;
|
|
359
|
-
replaceTrack(oldTrack:
|
|
363
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack, newTrack: CustomMediaStreamTrack): Promise<any[]>;
|
|
360
364
|
accept({ clientId, shouldAddLocalVideo }: {
|
|
361
365
|
clientId: string;
|
|
362
366
|
shouldAddLocalVideo?: boolean;
|
|
@@ -412,6 +416,8 @@ declare class P2pRtcManager implements RtcManager {
|
|
|
412
416
|
_clearMediaServersRefresh(): void;
|
|
413
417
|
_startMonitoringAudioTrack(track: any): void;
|
|
414
418
|
_stopMonitoringAudioTrack(track: any): void;
|
|
419
|
+
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
420
|
+
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
415
421
|
_connect(clientId: string): Promise<any>;
|
|
416
422
|
_maybeRestartIce(clientId: string, session: any): void;
|
|
417
423
|
_setCodecPreferences(pc: any, vp9On: any, av1On: any, redOn: any): void;
|
|
@@ -841,6 +847,7 @@ declare const _default: {
|
|
|
841
847
|
ICE_RESTART: string;
|
|
842
848
|
MICROPHONE_NOT_WORKING: string;
|
|
843
849
|
MICROPHONE_STOPPED_WORKING: string;
|
|
850
|
+
CAMERA_STOPPED_WORKING: string;
|
|
844
851
|
NEW_PC: string;
|
|
845
852
|
SFU_CONNECTION_OPEN: string;
|
|
846
853
|
SFU_CONNECTION_CLOSED: string;
|
|
@@ -1090,6 +1097,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1090
1097
|
_colocation: any;
|
|
1091
1098
|
_stopCameraTimeout: any;
|
|
1092
1099
|
_audioTrackOnEnded: any;
|
|
1100
|
+
_videoTrackOnEnded: any;
|
|
1093
1101
|
_socketListenerDeregisterFunctions: any;
|
|
1094
1102
|
_reconnect: any;
|
|
1095
1103
|
_reconnectTimeOut: any;
|
|
@@ -1150,7 +1158,7 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1150
1158
|
setRemoteScreenshareVideoTrackIds(): void;
|
|
1151
1159
|
setRoomSessionId(roomSessionId: string): void;
|
|
1152
1160
|
disconnect(clientIdOrStreamId: string, _activeBreakout: any, eventClaim?: string): void;
|
|
1153
|
-
replaceTrack(oldTrack:
|
|
1161
|
+
replaceTrack(oldTrack: CustomMediaStreamTrack | null, track: CustomMediaStreamTrack): void;
|
|
1154
1162
|
removeStream(streamId: string, _stream: MediaStream, requestedByClientId: string): void;
|
|
1155
1163
|
_onMicAnalyserScoreUpdated(data: any): void;
|
|
1156
1164
|
addNewStream(streamId: string, stream: MediaStream, audioPaused: boolean, videoPaused: boolean): void;
|
|
@@ -1178,6 +1186,8 @@ declare class VegaRtcManager implements RtcManager {
|
|
|
1178
1186
|
rtcStatsReconnect(): void;
|
|
1179
1187
|
_startMonitoringAudioTrack(track: MediaStreamTrack): void;
|
|
1180
1188
|
_stopMonitoringAudioTrack(track: MediaStreamTrack): void;
|
|
1189
|
+
_startMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1190
|
+
_stopMonitoringVideoTrack(track: CustomMediaStreamTrack): void;
|
|
1181
1191
|
_onMessage(message: any): Promise<void>;
|
|
1182
1192
|
_onConsumerReady(options: any): Promise<void>;
|
|
1183
1193
|
_onConsumerClosed({ consumerId, reason }: {
|
|
@@ -1380,4 +1390,4 @@ declare class RtcStream {
|
|
|
1380
1390
|
static getTypeFromId(id: string): string;
|
|
1381
1391
|
}
|
|
1382
1392
|
|
|
1383
|
-
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|
|
1393
|
+
export { type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type CloudRecordingStartedEvent, type Credentials, type CustomMediaStreamTrack, EVENTS, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type IdentifyDeviceRequest, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type NewClientEvent, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomJoinedEvent, type RoomKnockedEvent, type RoomLockedEvent, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, STREAM_TYPES, type ScreenshareStartedEvent, type ScreenshareStoppedEvent, type SendClientMetadataRequest, ServerSocket, Session, SfuV2Parser, type SignalClient, type SignalEvents, type SignalKnocker, type SignalRequests, type SocketConf, type SocketManager, type Spotlight, type SpotlightAddedEvent, type SpotlightRemovedEvent, type StatsMonitorOptions, type StatsMonitorState, TYPES, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, type VideoEnabledEvent, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getHandler, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getOptimalBitrate, getPeerConnectionIndex, getStats, getStream, getStream2, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, variance };
|