@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/dist/index.d.ts CHANGED
@@ -66,7 +66,7 @@ type IssuesAndMetricsByView = {
66
66
  aggregated: IssuesAndMetricsAggregated;
67
67
  };
68
68
  declare const getIssuesAndMetrics: () => {
69
- [x: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
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, type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type CannotJoinUnclaimedRoomError, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type ForbiddenError, type ForbiddenErrorNames, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type HostPresenceControlsError, type IdentifyDeviceRequest, type InternalServerError, type IssuesAndMetricsByView, type JoinRoomRequest, KNOCK_MESSAGES, KalmanFilter, type KnockAcceptedEvent, type KnockRejectedEvent, type KnockRoomRequest, type KnockerLeftEvent, type LiveTranscriptionStartedEvent, type LiveTranscriptionStoppedEvent, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, type MaxViewerLimitReachedError, type NewClientEvent, NoDevicesError, type OrganizationPlanExhaustedError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomConcurrencyControlsError, type RoomFullError, type RoomJoinedErrors, type RoomJoinedEvent, type RoomJoinedSuccess, type RoomKnockedEvent, type RoomLockedError, type RoomLockedEvent, type RoomMeetingTimeExhaustedError, type RoomMode, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_LOW_BANDWIDTH, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, 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, type StatsSubscription, TYPES, type TrackStats, type TurnTransportProtocol, type UpdatedDeviceInfo, type UpdatedDevicesInfo, 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, type VideoEnableRequest, type VideoEnableRequestedEvent, type VideoEnabledEvent, type ViewStats, 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, getOptimalBitrate, 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, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
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(state, { logger, interval }, immediate) {
601
- return __awaiter(this, void 0, void 0, function* () {
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({ track, encodings, codecOptions, codec, onRtpSender }) {
1987
- var _a;
1988
- return __awaiter(this, void 0, void 0, function* () {
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: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
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({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2213
- var _a;
2214
- return __awaiter(this, void 0, void 0, function* () {
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: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
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({ sctpStreamParameters, label, protocol, }) {
2405
- var _a;
2406
- return __awaiter(this, void 0, void 0, function* () {
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: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
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({ localDtlsRole, localSdpObject, }) {
2441
- return __awaiter(this, void 0, void 0, function* () {
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, lowBandwidth, vp9On, svcKeyScalabilityModeOn } = features;
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: lowBandwidth || lowDataModeEnabled,
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 = ({ lowBandwidth, isVp9Available, isSomeoneAlreadyPresenting, simulcastScreenshareOn, }) => {
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
- let bandwidth = this._features.bandwidth
3951
+ const bandwidth = this._features.bandwidth
3988
3952
  ? parseInt(this._features.bandwidth, 10)
3989
3953
  : {
3990
- 1: this._features.lowBandwidth ? 768 : 0,
3991
- 2: this._features.highP2PBandwidth && !this._features.lowBandwidth ? 768 : 384,
3992
- 3: this._features.highP2PBandwidth && !this._features.lowBandwidth ? 512 : 256,
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", ({ kind, rtpParameters, appData, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
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", ({ appData, sctpStreamParameters, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5380
- var _c;
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 ((_c = this._vegaConnection) === null || _c === void 0 ? void 0 : _c.request("produceData", {
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(transport, retried = 0) {
5401
- return __awaiter(this, void 0, void 0, function* () {
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 _b, _c;
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 !== ((_b = this._webcamProducer) === null || _b === void 0 ? void 0 : _b.track)) {
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({ consumerId, reason }) {
6274
- var _a;
6275
- return __awaiter(this, void 0, void 0, function* () {
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
- (_a = this._consumers.get(consumerId)) === null || _a === void 0 ? void 0 : _a.close();
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({ dataConsumerId, reason }) {
6337
- return __awaiter(this, void 0, void 0, function* () {
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", ({ kind, rtpParameters, appData }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
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(constraintOpt, { replaceStream, fallback = true } = {}) {
7840
- var _a;
7841
- return __awaiter(this, void 0, void 0, function* () {
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, SCREEN_SHARE_SETTINGS_LOW_BANDWIDTH, 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, getOptimalBitrate, 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 };
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 };