@whereby.com/media 1.28.0 → 1.30.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/LICENCE.md +23 -0
- package/dist/index.cjs +60 -118
- package/dist/index.d.cts +3 -11
- package/dist/index.d.mts +3 -11
- package/dist/index.d.ts +3 -11
- package/dist/index.mjs +61 -117
- package/dist/legacy-esm.js +61 -117
- package/package.json +85 -75
package/dist/index.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ type IssuesAndMetricsByView = {
|
|
|
66
66
|
aggregated: IssuesAndMetricsAggregated;
|
|
67
67
|
};
|
|
68
68
|
declare const getIssuesAndMetrics: () => {
|
|
69
|
-
[
|
|
69
|
+
[clientId: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
|
|
70
70
|
aggregated: IssuesAndMetricsAggregated;
|
|
71
71
|
};
|
|
72
72
|
declare function subscribeIssues(subscription: {
|
|
@@ -663,12 +663,6 @@ declare const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY: {
|
|
|
663
663
|
declare const SCREEN_SHARE_SETTINGS: {
|
|
664
664
|
encodings: {}[];
|
|
665
665
|
};
|
|
666
|
-
declare const SCREEN_SHARE_SETTINGS_LOW_BANDWIDTH: {
|
|
667
|
-
encodings: {
|
|
668
|
-
maxBitrate: number;
|
|
669
|
-
maxFramerate: number;
|
|
670
|
-
}[];
|
|
671
|
-
};
|
|
672
666
|
declare const SCREEN_SHARE_SIMULCAST_SETTINGS: {
|
|
673
667
|
encodings: {
|
|
674
668
|
scaleResolutionDownBy: number;
|
|
@@ -698,7 +692,6 @@ declare const SCREEN_SHARE_SETTINGS_VP9: {
|
|
|
698
692
|
declare const getMediaSettings: (kind: string, isScreenShare: boolean, features: {
|
|
699
693
|
lowDataModeEnabled?: boolean;
|
|
700
694
|
simulcastScreenshareOn?: boolean;
|
|
701
|
-
lowBandwidth?: boolean;
|
|
702
695
|
vp9On?: boolean;
|
|
703
696
|
svcKeyScalabilityModeOn?: boolean;
|
|
704
697
|
}, isSomeoneAlreadyPresenting?: boolean) => {
|
|
@@ -719,8 +712,6 @@ declare function sortCodecs(codecs: Codec[], features: {
|
|
|
719
712
|
preferHardwareDecodingOn?: boolean;
|
|
720
713
|
}): Promise<Codec[]>;
|
|
721
714
|
|
|
722
|
-
declare function getOptimalBitrate(width: number, height: number, frameRate: number): number;
|
|
723
|
-
|
|
724
715
|
declare class ReconnectManager extends EventEmitter {
|
|
725
716
|
_socket: any;
|
|
726
717
|
_clients: any;
|
|
@@ -1817,4 +1808,5 @@ declare class RtcStream {
|
|
|
1817
1808
|
static getTypeFromId(id: string): string;
|
|
1818
1809
|
}
|
|
1819
1810
|
|
|
1820
|
-
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS,
|
|
1811
|
+
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|
|
1812
|
+
export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
|
package/dist/index.mjs
CHANGED
|
@@ -90,7 +90,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
90
90
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
91
91
|
PERFORMANCE OF THIS SOFTWARE.
|
|
92
92
|
***************************************************************************** */
|
|
93
|
-
/* global Reflect, Promise, SuppressedError, Symbol */
|
|
93
|
+
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
94
94
|
|
|
95
95
|
|
|
96
96
|
function __awaiter(thisArg, _arguments, P, generator) {
|
|
@@ -597,8 +597,8 @@ const removeNonUpdatedStats = (statsByView, time) => {
|
|
|
597
597
|
}
|
|
598
598
|
});
|
|
599
599
|
};
|
|
600
|
-
function collectStats(
|
|
601
|
-
return __awaiter(this,
|
|
600
|
+
function collectStats(state_1, _a, immediate_1) {
|
|
601
|
+
return __awaiter(this, arguments, void 0, function* (state, { logger, interval }, immediate) {
|
|
602
602
|
const collectStatsBound = collectStats.bind(null, state, { interval, logger });
|
|
603
603
|
try {
|
|
604
604
|
const clients = state.getClients();
|
|
@@ -1649,31 +1649,6 @@ class RtcStream {
|
|
|
1649
1649
|
}
|
|
1650
1650
|
}
|
|
1651
1651
|
|
|
1652
|
-
const lowPixelCount = 320 * 180;
|
|
1653
|
-
const lowBitratePerPixel = 150000 / lowPixelCount;
|
|
1654
|
-
const highPixelCount = 1280 * 720;
|
|
1655
|
-
const highBitratePerPixel = 1000000 / highPixelCount;
|
|
1656
|
-
const bitrateChangePerPixel = (highBitratePerPixel - lowBitratePerPixel) / (highPixelCount - lowPixelCount);
|
|
1657
|
-
function getOptimalBitrate(width, height, frameRate) {
|
|
1658
|
-
let targetPixelCount = width * height;
|
|
1659
|
-
if (targetPixelCount < lowPixelCount)
|
|
1660
|
-
targetPixelCount = lowPixelCount;
|
|
1661
|
-
if (targetPixelCount > highPixelCount)
|
|
1662
|
-
targetPixelCount = highPixelCount;
|
|
1663
|
-
let targetBitratePerPixel = lowBitratePerPixel;
|
|
1664
|
-
if (targetPixelCount > highPixelCount)
|
|
1665
|
-
targetBitratePerPixel = highBitratePerPixel;
|
|
1666
|
-
else if (targetPixelCount > lowPixelCount) {
|
|
1667
|
-
targetBitratePerPixel += (targetPixelCount - lowPixelCount) * bitrateChangePerPixel;
|
|
1668
|
-
}
|
|
1669
|
-
let targetBitrate = width * height * targetBitratePerPixel;
|
|
1670
|
-
if (frameRate <= 15)
|
|
1671
|
-
targetBitrate = targetBitrate * 0.7;
|
|
1672
|
-
else if (frameRate <= 24)
|
|
1673
|
-
targetBitrate = targetBitrate * 0.9;
|
|
1674
|
-
return targetBitrate;
|
|
1675
|
-
}
|
|
1676
|
-
|
|
1677
1652
|
const word = "[a-fA-F\\d:]";
|
|
1678
1653
|
const boundry = (options) => options && options.includeBoundaries ? `(?:(?<=\\s|^)(?=${word})|(?<=${word})(?=\\s|$))` : "";
|
|
1679
1654
|
const v4 = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}";
|
|
@@ -1983,9 +1958,9 @@ class Safari17 extends HandlerInterface {
|
|
|
1983
1958
|
return this._pc.getStats();
|
|
1984
1959
|
});
|
|
1985
1960
|
}
|
|
1986
|
-
send(
|
|
1987
|
-
|
|
1988
|
-
|
|
1961
|
+
send(_a) {
|
|
1962
|
+
return __awaiter(this, arguments, void 0, function* ({ track, encodings, codecOptions, codec, onRtpSender }) {
|
|
1963
|
+
var _b;
|
|
1989
1964
|
this.assertNotClosed();
|
|
1990
1965
|
this.assertSendDirection();
|
|
1991
1966
|
logger$9.debug("send() [kind:%s, track.id:%s]", track.kind, track.id);
|
|
@@ -2033,7 +2008,7 @@ class Safari17 extends HandlerInterface {
|
|
|
2033
2008
|
let offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
|
|
2034
2009
|
if (!this._transportReady) {
|
|
2035
2010
|
yield this.setupTransport({
|
|
2036
|
-
localDtlsRole: (
|
|
2011
|
+
localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
|
|
2037
2012
|
localSdpObject,
|
|
2038
2013
|
});
|
|
2039
2014
|
}
|
|
@@ -2209,9 +2184,9 @@ class Safari17 extends HandlerInterface {
|
|
|
2209
2184
|
return transceiver.sender.getStats();
|
|
2210
2185
|
});
|
|
2211
2186
|
}
|
|
2212
|
-
sendDataChannel(
|
|
2213
|
-
|
|
2214
|
-
|
|
2187
|
+
sendDataChannel(_a) {
|
|
2188
|
+
return __awaiter(this, arguments, void 0, function* ({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
|
|
2189
|
+
var _b;
|
|
2215
2190
|
this.assertNotClosed();
|
|
2216
2191
|
this.assertSendDirection();
|
|
2217
2192
|
const options = {
|
|
@@ -2231,7 +2206,7 @@ class Safari17 extends HandlerInterface {
|
|
|
2231
2206
|
const offerMediaObject = localSdpObject.media.find((m) => m.type === "application");
|
|
2232
2207
|
if (!this._transportReady) {
|
|
2233
2208
|
yield this.setupTransport({
|
|
2234
|
-
localDtlsRole: (
|
|
2209
|
+
localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
|
|
2235
2210
|
localSdpObject,
|
|
2236
2211
|
});
|
|
2237
2212
|
}
|
|
@@ -2253,8 +2228,8 @@ class Safari17 extends HandlerInterface {
|
|
|
2253
2228
|
});
|
|
2254
2229
|
}
|
|
2255
2230
|
receive(optionsList) {
|
|
2256
|
-
var _a, _b;
|
|
2257
2231
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2232
|
+
var _a, _b;
|
|
2258
2233
|
this.assertNotClosed();
|
|
2259
2234
|
this.assertRecvDirection();
|
|
2260
2235
|
const results = [];
|
|
@@ -2401,9 +2376,9 @@ class Safari17 extends HandlerInterface {
|
|
|
2401
2376
|
return transceiver.receiver.getStats();
|
|
2402
2377
|
});
|
|
2403
2378
|
}
|
|
2404
|
-
receiveDataChannel(
|
|
2405
|
-
|
|
2406
|
-
|
|
2379
|
+
receiveDataChannel(_a) {
|
|
2380
|
+
return __awaiter(this, arguments, void 0, function* ({ sctpStreamParameters, label, protocol, }) {
|
|
2381
|
+
var _b;
|
|
2407
2382
|
this.assertNotClosed();
|
|
2408
2383
|
this.assertRecvDirection();
|
|
2409
2384
|
const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
|
|
@@ -2426,7 +2401,7 @@ class Safari17 extends HandlerInterface {
|
|
|
2426
2401
|
if (!this._transportReady) {
|
|
2427
2402
|
const localSdpObject = sdpTransform.parse(answer.sdp);
|
|
2428
2403
|
yield this.setupTransport({
|
|
2429
|
-
localDtlsRole: (
|
|
2404
|
+
localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
|
|
2430
2405
|
localSdpObject,
|
|
2431
2406
|
});
|
|
2432
2407
|
}
|
|
@@ -2437,8 +2412,8 @@ class Safari17 extends HandlerInterface {
|
|
|
2437
2412
|
return { dataChannel };
|
|
2438
2413
|
});
|
|
2439
2414
|
}
|
|
2440
|
-
setupTransport(
|
|
2441
|
-
return __awaiter(this,
|
|
2415
|
+
setupTransport(_a) {
|
|
2416
|
+
return __awaiter(this, arguments, void 0, function* ({ localDtlsRole, localSdpObject, }) {
|
|
2442
2417
|
if (!localSdpObject) {
|
|
2443
2418
|
localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
|
|
2444
2419
|
}
|
|
@@ -2551,14 +2526,6 @@ const VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY = {
|
|
|
2551
2526
|
const SCREEN_SHARE_SETTINGS = {
|
|
2552
2527
|
encodings: [{}],
|
|
2553
2528
|
};
|
|
2554
|
-
const SCREEN_SHARE_SETTINGS_LOW_BANDWIDTH = {
|
|
2555
|
-
encodings: [
|
|
2556
|
-
{
|
|
2557
|
-
maxBitrate: 600000,
|
|
2558
|
-
maxFramerate: 2,
|
|
2559
|
-
},
|
|
2560
|
-
],
|
|
2561
|
-
};
|
|
2562
2529
|
const SCREEN_SHARE_SIMULCAST_SETTINGS = {
|
|
2563
2530
|
encodings: [
|
|
2564
2531
|
{ scaleResolutionDownBy: 2, dtx: true, maxBitrate: 500000 },
|
|
@@ -2579,7 +2546,7 @@ const SCREEN_SHARE_SETTINGS_VP9 = {
|
|
|
2579
2546
|
encodings: [{ dtx: true }],
|
|
2580
2547
|
};
|
|
2581
2548
|
const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresenting = false) => {
|
|
2582
|
-
const { lowDataModeEnabled, simulcastScreenshareOn,
|
|
2549
|
+
const { lowDataModeEnabled, simulcastScreenshareOn, vp9On, svcKeyScalabilityModeOn } = features;
|
|
2583
2550
|
if (kind === "audio") {
|
|
2584
2551
|
return AUDIO_SETTINGS;
|
|
2585
2552
|
}
|
|
@@ -2587,7 +2554,6 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
|
|
|
2587
2554
|
const isVp9Available = isChrome && vp9On;
|
|
2588
2555
|
if (isScreenShare) {
|
|
2589
2556
|
return getScreenShareMediaSettings({
|
|
2590
|
-
lowBandwidth: lowBandwidth,
|
|
2591
2557
|
isVp9Available,
|
|
2592
2558
|
isSomeoneAlreadyPresenting,
|
|
2593
2559
|
simulcastScreenshareOn,
|
|
@@ -2595,7 +2561,7 @@ const getMediaSettings = (kind, isScreenShare, features, isSomeoneAlreadyPresent
|
|
|
2595
2561
|
}
|
|
2596
2562
|
else {
|
|
2597
2563
|
return getCameraMediaSettings({
|
|
2598
|
-
lowBandwidth:
|
|
2564
|
+
lowBandwidth: lowDataModeEnabled,
|
|
2599
2565
|
isVp9Available,
|
|
2600
2566
|
svcKeyScalabilityModeOn,
|
|
2601
2567
|
});
|
|
@@ -2617,14 +2583,12 @@ const getCameraMediaSettings = ({ lowBandwidth, isVp9Available, svcKeyScalabilit
|
|
|
2617
2583
|
}
|
|
2618
2584
|
return VIDEO_SETTINGS_HD;
|
|
2619
2585
|
};
|
|
2620
|
-
const getScreenShareMediaSettings = ({
|
|
2586
|
+
const getScreenShareMediaSettings = ({ isVp9Available, isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
|
|
2621
2587
|
if (isSomeoneAlreadyPresenting) {
|
|
2622
2588
|
if (isVp9Available)
|
|
2623
2589
|
return ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9;
|
|
2624
2590
|
return ADDITIONAL_SCREEN_SHARE_SETTINGS;
|
|
2625
2591
|
}
|
|
2626
|
-
if (lowBandwidth && !isVp9Available)
|
|
2627
|
-
return SCREEN_SHARE_SETTINGS_LOW_BANDWIDTH;
|
|
2628
2592
|
if (isVp9Available)
|
|
2629
2593
|
return SCREEN_SHARE_SETTINGS_VP9;
|
|
2630
2594
|
if (simulcastScreenshareOn)
|
|
@@ -2758,8 +2722,8 @@ class ReconnectManager extends EventEmitter {
|
|
|
2758
2722
|
socket.on(PROTOCOL_RESPONSES.SCREENSHARE_STOPPED, (payload) => this._onScreenshareChanged(payload, false));
|
|
2759
2723
|
}
|
|
2760
2724
|
_onRoomJoined(payload) {
|
|
2761
|
-
var _a;
|
|
2762
2725
|
return __awaiter(this, void 0, void 0, function* () {
|
|
2726
|
+
var _a;
|
|
2763
2727
|
this.reconnectThresholdInMs = (payload.disconnectTimeout || 0) * 0.8;
|
|
2764
2728
|
if (payload === null || payload === void 0 ? void 0 : payload.error) {
|
|
2765
2729
|
this.emit(PROTOCOL_RESPONSES.ROOM_JOINED, payload);
|
|
@@ -3984,12 +3948,12 @@ class P2pRtcManager {
|
|
|
3984
3948
|
if (numPeers > 7) {
|
|
3985
3949
|
numPeers = 7;
|
|
3986
3950
|
}
|
|
3987
|
-
|
|
3951
|
+
const bandwidth = this._features.bandwidth
|
|
3988
3952
|
? parseInt(this._features.bandwidth, 10)
|
|
3989
3953
|
: {
|
|
3990
|
-
1:
|
|
3991
|
-
2:
|
|
3992
|
-
3:
|
|
3954
|
+
1: 0,
|
|
3955
|
+
2: 384,
|
|
3956
|
+
3: 256,
|
|
3993
3957
|
4: 192,
|
|
3994
3958
|
5: 128,
|
|
3995
3959
|
6: 128,
|
|
@@ -3998,22 +3962,6 @@ class P2pRtcManager {
|
|
|
3998
3962
|
if (bandwidth === undefined) {
|
|
3999
3963
|
return 0;
|
|
4000
3964
|
}
|
|
4001
|
-
if (this._features.adjustBitratesFromResolution) {
|
|
4002
|
-
const cameraStream = this._getLocalCameraStream();
|
|
4003
|
-
if (cameraStream) {
|
|
4004
|
-
const cameraTrack = cameraStream && cameraStream.getVideoTracks()[0];
|
|
4005
|
-
if (cameraTrack) {
|
|
4006
|
-
const { width, height, frameRate } = cameraTrack.getSettings();
|
|
4007
|
-
if (width && height && frameRate) {
|
|
4008
|
-
const optimalBandwidth = Math.round(getOptimalBitrate(width, height, frameRate) / 1000);
|
|
4009
|
-
bandwidth = Math.min(optimalBandwidth, bandwidth || optimalBandwidth);
|
|
4010
|
-
}
|
|
4011
|
-
}
|
|
4012
|
-
}
|
|
4013
|
-
}
|
|
4014
|
-
if (this._features.higherP2PBitrates && !this._features.lowBandwidth) {
|
|
4015
|
-
bandwidth = bandwidth * 1.5;
|
|
4016
|
-
}
|
|
4017
3965
|
this._forEachPeerConnection((session) => {
|
|
4018
3966
|
session.changeBandwidth(bandwidth);
|
|
4019
3967
|
});
|
|
@@ -5269,8 +5217,8 @@ class VegaRtcManager {
|
|
|
5269
5217
|
this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_CLOSED);
|
|
5270
5218
|
}
|
|
5271
5219
|
_join() {
|
|
5272
|
-
var _a, _b;
|
|
5273
5220
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5221
|
+
var _a, _b;
|
|
5274
5222
|
logger$3.info("join()");
|
|
5275
5223
|
this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_OPEN);
|
|
5276
5224
|
try {
|
|
@@ -5303,8 +5251,8 @@ class VegaRtcManager {
|
|
|
5303
5251
|
});
|
|
5304
5252
|
}
|
|
5305
5253
|
_createTransport(send) {
|
|
5306
|
-
var _a;
|
|
5307
5254
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5255
|
+
var _a;
|
|
5308
5256
|
const creator = send ? "createSendTransport" : "createRecvTransport";
|
|
5309
5257
|
const transportOptions = yield this._vegaConnection.request("createTransport", {
|
|
5310
5258
|
producing: send,
|
|
@@ -5359,7 +5307,7 @@ class VegaRtcManager {
|
|
|
5359
5307
|
transport.removeListener("connectionstatechange", onConnectionStateListener);
|
|
5360
5308
|
});
|
|
5361
5309
|
if (send) {
|
|
5362
|
-
transport === null || transport === void 0 ? void 0 : transport.on("produce", (
|
|
5310
|
+
transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData, }, callback, errback) {
|
|
5363
5311
|
var _b;
|
|
5364
5312
|
try {
|
|
5365
5313
|
const { paused } = appData;
|
|
@@ -5376,10 +5324,10 @@ class VegaRtcManager {
|
|
|
5376
5324
|
errback(error);
|
|
5377
5325
|
}
|
|
5378
5326
|
}));
|
|
5379
|
-
transport === null || transport === void 0 ? void 0 : transport.on("producedata", (
|
|
5380
|
-
var
|
|
5327
|
+
transport === null || transport === void 0 ? void 0 : transport.on("producedata", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ appData, sctpStreamParameters, }, callback, errback) {
|
|
5328
|
+
var _b;
|
|
5381
5329
|
try {
|
|
5382
|
-
const { id } = yield ((
|
|
5330
|
+
const { id } = yield ((_b = this._vegaConnection) === null || _b === void 0 ? void 0 : _b.request("produceData", {
|
|
5383
5331
|
transportId: transport.id,
|
|
5384
5332
|
sctpStreamParameters,
|
|
5385
5333
|
appData,
|
|
@@ -5397,8 +5345,8 @@ class VegaRtcManager {
|
|
|
5397
5345
|
}
|
|
5398
5346
|
});
|
|
5399
5347
|
}
|
|
5400
|
-
_restartIce(
|
|
5401
|
-
return __awaiter(this,
|
|
5348
|
+
_restartIce(transport_1) {
|
|
5349
|
+
return __awaiter(this, arguments, void 0, function* (transport, retried = 0) {
|
|
5402
5350
|
if (!transport || !("closed" in transport) || !("connectionState" in transport)) {
|
|
5403
5351
|
logger$3.info("_restartIce: No transport or property closed or connectionState!");
|
|
5404
5352
|
return;
|
|
@@ -5552,8 +5500,8 @@ class VegaRtcManager {
|
|
|
5552
5500
|
this._micScoreProducer = null;
|
|
5553
5501
|
}
|
|
5554
5502
|
_replaceMicTrack() {
|
|
5555
|
-
var _a;
|
|
5556
5503
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5504
|
+
var _a;
|
|
5557
5505
|
logger$3.info("_replaceMicTrack()");
|
|
5558
5506
|
if (!this._micTrack || !this._micProducer || this._micProducer.closed)
|
|
5559
5507
|
return;
|
|
@@ -5622,8 +5570,8 @@ class VegaRtcManager {
|
|
|
5622
5570
|
}
|
|
5623
5571
|
}
|
|
5624
5572
|
_internalSendWebcam() {
|
|
5625
|
-
var _a;
|
|
5626
5573
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5574
|
+
var _a;
|
|
5627
5575
|
logger$3.info("_internalSendWebcam()");
|
|
5628
5576
|
if (!this._sendTransport ||
|
|
5629
5577
|
this._webcamProducer ||
|
|
@@ -5632,7 +5580,7 @@ class VegaRtcManager {
|
|
|
5632
5580
|
return;
|
|
5633
5581
|
}
|
|
5634
5582
|
this._webcamProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
|
|
5635
|
-
var
|
|
5583
|
+
var _a;
|
|
5636
5584
|
try {
|
|
5637
5585
|
const currentPaused = this._webcamPaused;
|
|
5638
5586
|
const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._webcamTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", false, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }))), { appData: {
|
|
@@ -5654,7 +5602,7 @@ class VegaRtcManager {
|
|
|
5654
5602
|
this._webcamProducerPromise = null;
|
|
5655
5603
|
this._qualityMonitor.removeProducer(this._selfId, producer.id);
|
|
5656
5604
|
});
|
|
5657
|
-
if (this._webcamTrack && this._webcamTrack !== ((
|
|
5605
|
+
if (this._webcamTrack && this._webcamTrack !== ((_a = this._webcamProducer) === null || _a === void 0 ? void 0 : _a.track)) {
|
|
5658
5606
|
this._webcamProducerPromise = null;
|
|
5659
5607
|
this._replaceWebcamTrack();
|
|
5660
5608
|
}
|
|
@@ -5670,9 +5618,6 @@ class VegaRtcManager {
|
|
|
5670
5618
|
this._stopProducer(this._webcamProducer);
|
|
5671
5619
|
this._webcamProducer = null;
|
|
5672
5620
|
}
|
|
5673
|
-
if (this._features.lowBandwidth && this._screenVideoTrack) {
|
|
5674
|
-
(_c = this._webcamProducer) === null || _c === void 0 ? void 0 : _c.setMaxSpatialLayer(0);
|
|
5675
|
-
}
|
|
5676
5621
|
}
|
|
5677
5622
|
}))();
|
|
5678
5623
|
});
|
|
@@ -5731,7 +5676,6 @@ class VegaRtcManager {
|
|
|
5731
5676
|
return __awaiter(this, void 0, void 0, function* () {
|
|
5732
5677
|
logger$3.info("_internalSendScreenVideo()");
|
|
5733
5678
|
this._screenVideoProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
|
|
5734
|
-
var _a, _b;
|
|
5735
5679
|
try {
|
|
5736
5680
|
if (!this._screenVideoTrack || !this._sendTransport || this._screenVideoProducer) {
|
|
5737
5681
|
this._screenVideoProducerPromise = null;
|
|
@@ -5757,9 +5701,6 @@ class VegaRtcManager {
|
|
|
5757
5701
|
});
|
|
5758
5702
|
if (this._screenVideoTrack !== this._screenVideoProducer.track)
|
|
5759
5703
|
yield this._replaceScreenVideoTrack();
|
|
5760
|
-
if (this._features.lowBandwidth) {
|
|
5761
|
-
(_a = this._webcamProducer) === null || _a === void 0 ? void 0 : _a.setMaxSpatialLayer(0);
|
|
5762
|
-
}
|
|
5763
5704
|
}
|
|
5764
5705
|
catch (error) {
|
|
5765
5706
|
logger$3.error("screenVideoProducer failed:%o", error);
|
|
@@ -5769,9 +5710,6 @@ class VegaRtcManager {
|
|
|
5769
5710
|
if (!this._screenVideoTrack) {
|
|
5770
5711
|
yield this._stopProducer(this._screenVideoProducer);
|
|
5771
5712
|
this._screenVideoProducer = null;
|
|
5772
|
-
if (this._features.lowBandwidth) {
|
|
5773
|
-
(_b = this._webcamProducer) === null || _b === void 0 ? void 0 : _b.setMaxSpatialLayer(Number.MAX_VALUE);
|
|
5774
|
-
}
|
|
5775
5713
|
}
|
|
5776
5714
|
}
|
|
5777
5715
|
}))();
|
|
@@ -5937,7 +5875,6 @@ class VegaRtcManager {
|
|
|
5937
5875
|
}
|
|
5938
5876
|
}
|
|
5939
5877
|
removeStream(streamId, _stream, requestedByClientId) {
|
|
5940
|
-
var _a;
|
|
5941
5878
|
logger$3.info("removeStream() [streamId:%s, requestedByClientId:%s]", streamId, requestedByClientId);
|
|
5942
5879
|
this._emitToSignal(PROTOCOL_REQUESTS.STOP_SCREENSHARE, {
|
|
5943
5880
|
streamId: OUTBOUND_SCREEN_OUTBOUND_STREAM_ID,
|
|
@@ -5949,9 +5886,6 @@ class VegaRtcManager {
|
|
|
5949
5886
|
this._stopProducer(this._screenAudioProducer);
|
|
5950
5887
|
this._screenAudioProducer = null;
|
|
5951
5888
|
this._screenAudioTrack = null;
|
|
5952
|
-
if (this._features.lowBandwidth) {
|
|
5953
|
-
(_a = this._webcamProducer) === null || _a === void 0 ? void 0 : _a.setMaxSpatialLayer(Number.MAX_VALUE);
|
|
5954
|
-
}
|
|
5955
5889
|
}
|
|
5956
5890
|
_onMicAnalyserScoreUpdated(data) {
|
|
5957
5891
|
var _a, _b;
|
|
@@ -6270,11 +6204,11 @@ class VegaRtcManager {
|
|
|
6270
6204
|
}
|
|
6271
6205
|
});
|
|
6272
6206
|
}
|
|
6273
|
-
_onConsumerClosed(
|
|
6274
|
-
|
|
6275
|
-
|
|
6207
|
+
_onConsumerClosed(_a) {
|
|
6208
|
+
return __awaiter(this, arguments, void 0, function* ({ consumerId, reason }) {
|
|
6209
|
+
var _b;
|
|
6276
6210
|
logger$3.info("_onConsumerClosed()", { consumerId, reason });
|
|
6277
|
-
(
|
|
6211
|
+
(_b = this._consumers.get(consumerId)) === null || _b === void 0 ? void 0 : _b.close();
|
|
6278
6212
|
});
|
|
6279
6213
|
}
|
|
6280
6214
|
_onConsumerPaused({ consumerId }) {
|
|
@@ -6333,8 +6267,8 @@ class VegaRtcManager {
|
|
|
6333
6267
|
this._syncIncomingStreamsWithPWA(clientId);
|
|
6334
6268
|
});
|
|
6335
6269
|
}
|
|
6336
|
-
_onDataConsumerClosed(
|
|
6337
|
-
return __awaiter(this,
|
|
6270
|
+
_onDataConsumerClosed(_a) {
|
|
6271
|
+
return __awaiter(this, arguments, void 0, function* ({ dataConsumerId, reason }) {
|
|
6338
6272
|
logger$3.info("_onDataConsumerClosed()", { dataConsumerId, reason });
|
|
6339
6273
|
const consumer = this._dataConsumers.get(dataConsumerId);
|
|
6340
6274
|
consumer === null || consumer === void 0 ? void 0 : consumer.close();
|
|
@@ -6736,6 +6670,16 @@ const issueDetectors = [
|
|
|
6736
6670
|
},
|
|
6737
6671
|
noTrackStatsIssueDetector,
|
|
6738
6672
|
dryTrackIssueDetector,
|
|
6673
|
+
{
|
|
6674
|
+
id: "denoiser-context-suspended",
|
|
6675
|
+
enabled: ({ client, kind }) => { var _a, _b; return client.isLocalClient && kind === "audio" && !!((_b = (_a = client.audio) === null || _a === void 0 ? void 0 : _a.track) === null || _b === void 0 ? void 0 : _b._denoiserCtx); },
|
|
6676
|
+
check: ({ track }) => {
|
|
6677
|
+
var _a;
|
|
6678
|
+
if (!track || !("_denoiserCtx" in track))
|
|
6679
|
+
return false;
|
|
6680
|
+
return ((_a = track._denoiserCtx) === null || _a === void 0 ? void 0 : _a.state) === "suspended";
|
|
6681
|
+
},
|
|
6682
|
+
},
|
|
6739
6683
|
{
|
|
6740
6684
|
id: "low-layer0-bitrate",
|
|
6741
6685
|
enabled: ({ hasLiveTrack, ssrc0, kind, client }) => hasLiveTrack && kind === "video" && !!ssrc0 && !!(ssrc0 === null || ssrc0 === void 0 ? void 0 : ssrc0.height) && !client.isPresentation,
|
|
@@ -7374,8 +7318,8 @@ class BandwidthTester extends EventEmitter {
|
|
|
7374
7318
|
this.emit("close");
|
|
7375
7319
|
}
|
|
7376
7320
|
_start() {
|
|
7377
|
-
var _a, _b;
|
|
7378
7321
|
return __awaiter(this, void 0, void 0, function* () {
|
|
7322
|
+
var _a, _b;
|
|
7379
7323
|
logger$1.info("_start()");
|
|
7380
7324
|
this._connectTime = Date.now() - this._startTime;
|
|
7381
7325
|
if (this._connectTime > 5000) {
|
|
@@ -7427,8 +7371,8 @@ class BandwidthTester extends EventEmitter {
|
|
|
7427
7371
|
});
|
|
7428
7372
|
}
|
|
7429
7373
|
_createTransport(send) {
|
|
7430
|
-
var _a;
|
|
7431
7374
|
return __awaiter(this, void 0, void 0, function* () {
|
|
7375
|
+
var _a;
|
|
7432
7376
|
const creator = send ? "createSendTransport" : "createRecvTransport";
|
|
7433
7377
|
const transportOptions = yield this._vegaConnection.request("createTransport", {
|
|
7434
7378
|
producing: send,
|
|
@@ -7447,7 +7391,7 @@ class BandwidthTester extends EventEmitter {
|
|
|
7447
7391
|
callback();
|
|
7448
7392
|
});
|
|
7449
7393
|
if (send) {
|
|
7450
|
-
transport === null || transport === void 0 ? void 0 : transport.on("produce", (
|
|
7394
|
+
transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData }, callback, errback) {
|
|
7451
7395
|
try {
|
|
7452
7396
|
const { paused } = appData;
|
|
7453
7397
|
const { id } = yield this._vegaConnection.request("produce", {
|
|
@@ -7836,9 +7780,9 @@ function replaceTracksInStream(stream, newStream, only) {
|
|
|
7836
7780
|
});
|
|
7837
7781
|
return replacedTracks;
|
|
7838
7782
|
}
|
|
7839
|
-
function getStream(
|
|
7840
|
-
|
|
7841
|
-
|
|
7783
|
+
function getStream(constraintOpt_1) {
|
|
7784
|
+
return __awaiter(this, arguments, void 0, function* (constraintOpt, { replaceStream, fallback = true } = {}) {
|
|
7785
|
+
var _a;
|
|
7842
7786
|
let error;
|
|
7843
7787
|
let newConstraints;
|
|
7844
7788
|
let retryConstraintOpt;
|
|
@@ -8054,4 +7998,4 @@ var RtcEventNames;
|
|
|
8054
7998
|
RtcEventNames["stream_added"] = "stream_added";
|
|
8055
7999
|
})(RtcEventNames || (RtcEventNames = {}));
|
|
8056
8000
|
|
|
8057
|
-
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS,
|
|
8001
|
+
export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
|