@whereby.com/media 11.1.2 → 11.1.3

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.cts CHANGED
@@ -72,6 +72,8 @@ interface SsrcStats {
72
72
  audioAcceleration?: number;
73
73
  sourceHeight?: number;
74
74
  jitter?: number;
75
+ remoteReportTimestamp?: number;
76
+ selectedCandidatePairId?: string;
75
77
  roundTripTime?: number;
76
78
  codec?: string;
77
79
  byteCount?: number;
@@ -252,7 +254,6 @@ interface StatsMonitorState {
252
254
  getClients: () => StatsClient[];
253
255
  lastPressureObserverRecord?: PressureRecord;
254
256
  lastUpdateTime: number;
255
- nextTimeout?: number;
256
257
  pressureObserver?: PressureObserver;
257
258
  renderedDimensionsByTrack: Record<string, RenderedDimensionsReport>;
258
259
  statsByView: Record<string, ViewStats>;
@@ -278,6 +279,7 @@ declare function subscribeStats(subscription: StatsSubscription, options?: Stats
278
279
 
279
280
  declare function captureCandidatePairInfoMetrics(cpMetrics: any, currentCptats: any, prevCptats: any, timeDiff: any, report: any): void;
280
281
  declare function captureSsrcInfo(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
282
+ declare function getSelectedCandidatePairId(report: any, transportId: string | undefined): string | undefined;
281
283
  declare function captureCommonSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
282
284
  declare function captureAudioSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
283
285
  declare function captureVideoSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
@@ -427,12 +429,19 @@ type DataConsumerAppData = {
427
429
  };
428
430
 
429
431
  type VegaAnalytics = {
432
+ avgPreferredLayerSwitchLatencyMs: number | undefined;
433
+ camOutboundCongestedFraction: number | undefined;
434
+ camOutboundRttInflationMs: number | undefined;
430
435
  camTrackEndedCount: number;
436
+ highestPreferredLayerChangeCounts: Record<string, number>;
431
437
  micTrackEndedCount: number;
438
+ numHighestPreferredLayerChanges: number;
432
439
  numIceConnected: number;
433
440
  numIceDisconnected: number;
434
441
  numIceFailed: number;
435
442
  numNewPc: number;
443
+ numPreferredSpatialLayerChanges: number;
444
+ preferredSpatialLayerChangeCounts: Record<string, number>;
436
445
  sfuMsFromOfflineToClose: number;
437
446
  sfuOfflineToCloseCount: number;
438
447
  sfuOfflineWhileConnectedCount: number;
@@ -453,7 +462,9 @@ type VegaAnalytics = {
453
462
  vegaWebcamProducerFailed: number;
454
463
  };
455
464
 
456
- type VegaAnalyticMetric = keyof VegaAnalytics;
465
+ type VegaAnalyticMetric = {
466
+ [K in keyof VegaAnalytics]: VegaAnalytics[K] extends number ? K : never;
467
+ }[keyof VegaAnalytics];
457
468
 
458
469
  type VegaIncrementAnalyticMetric = (metric: VegaAnalyticMetric) => void;
459
470
 
@@ -1374,6 +1385,16 @@ declare class BandwidthTester extends EventEmitter {
1374
1385
  }
1375
1386
 
1376
1387
  declare const MEDIA_JITTER_BUFFER_TARGET = 400;
1388
+ declare const INITIAL_CONSUMER_SPATIAL_LAYER = 1;
1389
+ declare const INITIAL_HIGHEST_PREFERRED_LAYER = 1;
1390
+ declare const LOWEST_SVC_LAYER_MAX_BITRATE = 100000;
1391
+ declare const MIDDLE_SVC_LAYER_MAX_BITRATE = 500000;
1392
+ declare const PREFERRED_LAYER_SWITCH_POLL_INTERVAL_MS = 100;
1393
+ declare const PREFERRED_LAYER_SWITCH_WATCH_TIMEOUT_MS = 10000;
1394
+ declare const MAX_CONCURRENT_PREFERRED_LAYER_SWITCH_WATCHES = 5;
1395
+ declare const CONGESTED_RTT_INFLATION_MS = 100;
1396
+ declare const CONGESTED_FRACTION_LOST = 0.02;
1397
+ declare const CAM_SAMPLES_SKIPPED_AFTER_CANDIDATE_PAIR_CHANGE = 2;
1377
1398
 
1378
1399
  declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
1379
1400
  declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
@@ -1932,6 +1953,12 @@ declare const standardDeviation: (arr: any[]) => {
1932
1953
  };
1933
1954
  declare const variance: (arr: any[], usePopulation?: boolean) => number;
1934
1955
 
1956
+ declare function createMetricStats(): {
1957
+ count: number;
1958
+ sum: number;
1959
+ };
1960
+ type MetricStats = ReturnType<typeof createMetricStats>;
1961
+
1935
1962
  type ConnectionInfo = {
1936
1963
  host: string;
1937
1964
  dc: string;
@@ -1970,6 +1997,9 @@ declare function createVegaConnectionManager(config: {
1970
1997
  networkIsPossiblyDown: () => void;
1971
1998
  };
1972
1999
 
2000
+ type RtpEncodingParametersWithScalabilityMode = RTCRtpEncodingParameters & {
2001
+ scalabilityMode?: string;
2002
+ };
1973
2003
  declare class VegaRtcManager implements RtcManager {
1974
2004
  _selfId: string;
1975
2005
  _room: any;
@@ -2005,7 +2035,35 @@ declare class VegaRtcManager implements RtcManager {
2005
2035
  _micScoreProducer: any;
2006
2036
  _micScoreProducerPromise: any;
2007
2037
  _webcamProducer: any;
2038
+ _webcamProducerOriginalSvcScalabilityMode: string | undefined;
2039
+ _webcamProducerOriginalSvcMaxBitrate: number | undefined;
2040
+ _webcamProducerHighestPreferredLayer: number | undefined;
2041
+ _highestPreferredLayerUpdate: Promise<void> | null;
2042
+ _highestPreferredLayerUpdatePending: boolean;
2008
2043
  _webcamProducerPromise: any;
2044
+ _preferredLayerSwitchLatencyStats: MetricStats;
2045
+ _preferredLayerSwitchWatches: Map<string, {
2046
+ stop: () => void;
2047
+ }>;
2048
+ _statsSubscription: {
2049
+ stop: () => void;
2050
+ } | null;
2051
+ _lastSeenRemoteReportTimestamps: Map<string, number>;
2052
+ _camOutboundCandidatePairId: string | undefined;
2053
+ _camOutboundSamplesToSkip: number;
2054
+ _camOutboundPathRtt: {
2055
+ sumMs: number;
2056
+ count: number;
2057
+ minMs: number | undefined;
2058
+ };
2059
+ _camOutboundRttInflation: {
2060
+ sumMs: number;
2061
+ count: number;
2062
+ };
2063
+ _camOutboundSamples: {
2064
+ total: number;
2065
+ congested: number;
2066
+ };
2009
2067
  _webcamPaused: any;
2010
2068
  _screenVideoProducer: any;
2011
2069
  _screenVideoProducerPromise: any;
@@ -2110,6 +2168,22 @@ declare class VegaRtcManager implements RtcManager {
2110
2168
  width: number;
2111
2169
  height: number;
2112
2170
  }): void;
2171
+ _applyStreamResolution(streamId: string): void;
2172
+ _watchForPreferredLayerSwitch(consumerId: string, consumer: any, { toHigherLayer }: {
2173
+ toHigherLayer: boolean;
2174
+ }): void;
2175
+ _getConsumerFrameSize(consumer: any): Promise<{
2176
+ width?: number;
2177
+ height?: number;
2178
+ } | undefined>;
2179
+ _recordPreferredLayerSwitchLatency(latencyMs: number): void;
2180
+ _onUpdatedStats(statsByView: Record<string, any>): void;
2181
+ _recordCamOutboundSample(newRemoteReports: SsrcStats[]): void;
2182
+ _followCamOutboundCandidatePair({ selectedCandidatePairId }: SsrcStats): void;
2183
+ _finishCamOutboundRttPath(): void;
2184
+ _updateCamOutboundAnalytics(): void;
2185
+ _startWebcamStatsSubscription(): void;
2186
+ _stopWebcamStatsSubscription(): void;
2113
2187
  close(): void;
2114
2188
  disconnectAll(): void;
2115
2189
  sendStatsCustomEvent(eventName: string, data?: any): void;
@@ -2120,6 +2194,7 @@ declare class VegaRtcManager implements RtcManager {
2120
2194
  _monitorVideoTrack(track: MediaStreamTrack): void;
2121
2195
  _onMessage(message: any): Promise<void>;
2122
2196
  _onConsumerReady(options: ConsumerOptions<ConsumerAppData>): Promise<void>;
2197
+ _reapplyStreamResolutions(): void;
2123
2198
  _onConsumerClosed({ consumerId, reason }: {
2124
2199
  consumerId: string;
2125
2200
  reason: string;
@@ -2140,6 +2215,19 @@ declare class VegaRtcManager implements RtcManager {
2140
2215
  kind: string;
2141
2216
  score: number;
2142
2217
  }): void;
2218
+ _getSvcEncodingUpdate(encoding: RtpEncodingParametersWithScalabilityMode, spatialLayer: number): {
2219
+ scalabilityMode: string;
2220
+ scaleResolutionDownBy: number;
2221
+ maxBitrate: number | undefined;
2222
+ } | undefined;
2223
+ _onChangedHighestPreferredLayer({ producerId, spatialLayer }: {
2224
+ producerId: string;
2225
+ spatialLayer: number;
2226
+ }): Promise<void>;
2227
+ _syncWebcamEncoderToHighestPreferredLayer(): Promise<void>;
2228
+ _applyPendingHighestPreferredLayerUpdates(): Promise<void>;
2229
+ _applyHighestPreferredLayerToWebcamEncoder(): Promise<void>;
2230
+ _incrementHistogramCount(histogram: Record<string, number>, key: string): void;
2143
2231
  _onDataConsumerReady(options: DataConsumerOptions<DataConsumerAppData>): Promise<void>;
2144
2232
  _onDataConsumerClosed({ dataConsumerId, reason }: {
2145
2233
  dataConsumerId: string;
@@ -2159,5 +2247,5 @@ declare class VegaRtcManager implements RtcManager {
2159
2247
  hasClient(clientId: string): boolean;
2160
2248
  }
2161
2249
 
2162
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, FILE_SHARE_ERROR_CODES, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getInitialStream, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isFileShareError, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, updateRenderedDimensions, variance };
2250
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, CAM_SAMPLES_SKIPPED_AFTER_CANDIDATE_PAIR_CHANGE, CONGESTED_FRACTION_LOST, CONGESTED_RTT_INFLATION_MS, EVENTS, FILE_SHARE_ERROR_CODES, INITIAL_CONSUMER_SPATIAL_LAYER, INITIAL_HIGHEST_PREFERRED_LAYER, KNOCK_MESSAGES, KalmanFilter, LOWEST_SVC_LAYER_MAX_BITRATE, Logger, MAX_CONCURRENT_PREFERRED_LAYER_SWITCH_WATCHES, MEDIA_JITTER_BUFFER_TARGET, MIDDLE_SVC_LAYER_MAX_BITRATE, NoDevicesError, P2pRtcManager, PREFERRED_LAYER_SWITCH_POLL_INTERVAL_MS, PREFERRED_LAYER_SWITCH_WATCH_TIMEOUT_MS, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getInitialStream, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getSelectedCandidatePairId, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isFileShareError, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, updateRenderedDimensions, variance };
2163
2251
  export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdateRequest, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatFileShare, ChatMessage, ChatMessageError, ChatMessageRemoved, ChatMessageRequest, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, FileShareErrorCode, FileUploadUrl, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetInitialStreamOptions, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockOnHoldEvent, KnockRejectedEvent, KnockResponse, KnockResponseSender, KnockRoomRequest, KnockerLeftEvent, LiveCaptionEvent, LiveCaptionsStartedEvent, LiveCaptionsStoppedEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareEnableRequest, ScreenshareEnableRequestedEvent, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
package/dist/index.d.mts CHANGED
@@ -72,6 +72,8 @@ interface SsrcStats {
72
72
  audioAcceleration?: number;
73
73
  sourceHeight?: number;
74
74
  jitter?: number;
75
+ remoteReportTimestamp?: number;
76
+ selectedCandidatePairId?: string;
75
77
  roundTripTime?: number;
76
78
  codec?: string;
77
79
  byteCount?: number;
@@ -252,7 +254,6 @@ interface StatsMonitorState {
252
254
  getClients: () => StatsClient[];
253
255
  lastPressureObserverRecord?: PressureRecord;
254
256
  lastUpdateTime: number;
255
- nextTimeout?: number;
256
257
  pressureObserver?: PressureObserver;
257
258
  renderedDimensionsByTrack: Record<string, RenderedDimensionsReport>;
258
259
  statsByView: Record<string, ViewStats>;
@@ -278,6 +279,7 @@ declare function subscribeStats(subscription: StatsSubscription, options?: Stats
278
279
 
279
280
  declare function captureCandidatePairInfoMetrics(cpMetrics: any, currentCptats: any, prevCptats: any, timeDiff: any, report: any): void;
280
281
  declare function captureSsrcInfo(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
282
+ declare function getSelectedCandidatePairId(report: any, transportId: string | undefined): string | undefined;
281
283
  declare function captureCommonSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
282
284
  declare function captureAudioSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
283
285
  declare function captureVideoSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
@@ -427,12 +429,19 @@ type DataConsumerAppData = {
427
429
  };
428
430
 
429
431
  type VegaAnalytics = {
432
+ avgPreferredLayerSwitchLatencyMs: number | undefined;
433
+ camOutboundCongestedFraction: number | undefined;
434
+ camOutboundRttInflationMs: number | undefined;
430
435
  camTrackEndedCount: number;
436
+ highestPreferredLayerChangeCounts: Record<string, number>;
431
437
  micTrackEndedCount: number;
438
+ numHighestPreferredLayerChanges: number;
432
439
  numIceConnected: number;
433
440
  numIceDisconnected: number;
434
441
  numIceFailed: number;
435
442
  numNewPc: number;
443
+ numPreferredSpatialLayerChanges: number;
444
+ preferredSpatialLayerChangeCounts: Record<string, number>;
436
445
  sfuMsFromOfflineToClose: number;
437
446
  sfuOfflineToCloseCount: number;
438
447
  sfuOfflineWhileConnectedCount: number;
@@ -453,7 +462,9 @@ type VegaAnalytics = {
453
462
  vegaWebcamProducerFailed: number;
454
463
  };
455
464
 
456
- type VegaAnalyticMetric = keyof VegaAnalytics;
465
+ type VegaAnalyticMetric = {
466
+ [K in keyof VegaAnalytics]: VegaAnalytics[K] extends number ? K : never;
467
+ }[keyof VegaAnalytics];
457
468
 
458
469
  type VegaIncrementAnalyticMetric = (metric: VegaAnalyticMetric) => void;
459
470
 
@@ -1374,6 +1385,16 @@ declare class BandwidthTester extends EventEmitter {
1374
1385
  }
1375
1386
 
1376
1387
  declare const MEDIA_JITTER_BUFFER_TARGET = 400;
1388
+ declare const INITIAL_CONSUMER_SPATIAL_LAYER = 1;
1389
+ declare const INITIAL_HIGHEST_PREFERRED_LAYER = 1;
1390
+ declare const LOWEST_SVC_LAYER_MAX_BITRATE = 100000;
1391
+ declare const MIDDLE_SVC_LAYER_MAX_BITRATE = 500000;
1392
+ declare const PREFERRED_LAYER_SWITCH_POLL_INTERVAL_MS = 100;
1393
+ declare const PREFERRED_LAYER_SWITCH_WATCH_TIMEOUT_MS = 10000;
1394
+ declare const MAX_CONCURRENT_PREFERRED_LAYER_SWITCH_WATCHES = 5;
1395
+ declare const CONGESTED_RTT_INFLATION_MS = 100;
1396
+ declare const CONGESTED_FRACTION_LOST = 0.02;
1397
+ declare const CAM_SAMPLES_SKIPPED_AFTER_CANDIDATE_PAIR_CHANGE = 2;
1377
1398
 
1378
1399
  declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
1379
1400
  declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
@@ -1932,6 +1953,12 @@ declare const standardDeviation: (arr: any[]) => {
1932
1953
  };
1933
1954
  declare const variance: (arr: any[], usePopulation?: boolean) => number;
1934
1955
 
1956
+ declare function createMetricStats(): {
1957
+ count: number;
1958
+ sum: number;
1959
+ };
1960
+ type MetricStats = ReturnType<typeof createMetricStats>;
1961
+
1935
1962
  type ConnectionInfo = {
1936
1963
  host: string;
1937
1964
  dc: string;
@@ -1970,6 +1997,9 @@ declare function createVegaConnectionManager(config: {
1970
1997
  networkIsPossiblyDown: () => void;
1971
1998
  };
1972
1999
 
2000
+ type RtpEncodingParametersWithScalabilityMode = RTCRtpEncodingParameters & {
2001
+ scalabilityMode?: string;
2002
+ };
1973
2003
  declare class VegaRtcManager implements RtcManager {
1974
2004
  _selfId: string;
1975
2005
  _room: any;
@@ -2005,7 +2035,35 @@ declare class VegaRtcManager implements RtcManager {
2005
2035
  _micScoreProducer: any;
2006
2036
  _micScoreProducerPromise: any;
2007
2037
  _webcamProducer: any;
2038
+ _webcamProducerOriginalSvcScalabilityMode: string | undefined;
2039
+ _webcamProducerOriginalSvcMaxBitrate: number | undefined;
2040
+ _webcamProducerHighestPreferredLayer: number | undefined;
2041
+ _highestPreferredLayerUpdate: Promise<void> | null;
2042
+ _highestPreferredLayerUpdatePending: boolean;
2008
2043
  _webcamProducerPromise: any;
2044
+ _preferredLayerSwitchLatencyStats: MetricStats;
2045
+ _preferredLayerSwitchWatches: Map<string, {
2046
+ stop: () => void;
2047
+ }>;
2048
+ _statsSubscription: {
2049
+ stop: () => void;
2050
+ } | null;
2051
+ _lastSeenRemoteReportTimestamps: Map<string, number>;
2052
+ _camOutboundCandidatePairId: string | undefined;
2053
+ _camOutboundSamplesToSkip: number;
2054
+ _camOutboundPathRtt: {
2055
+ sumMs: number;
2056
+ count: number;
2057
+ minMs: number | undefined;
2058
+ };
2059
+ _camOutboundRttInflation: {
2060
+ sumMs: number;
2061
+ count: number;
2062
+ };
2063
+ _camOutboundSamples: {
2064
+ total: number;
2065
+ congested: number;
2066
+ };
2009
2067
  _webcamPaused: any;
2010
2068
  _screenVideoProducer: any;
2011
2069
  _screenVideoProducerPromise: any;
@@ -2110,6 +2168,22 @@ declare class VegaRtcManager implements RtcManager {
2110
2168
  width: number;
2111
2169
  height: number;
2112
2170
  }): void;
2171
+ _applyStreamResolution(streamId: string): void;
2172
+ _watchForPreferredLayerSwitch(consumerId: string, consumer: any, { toHigherLayer }: {
2173
+ toHigherLayer: boolean;
2174
+ }): void;
2175
+ _getConsumerFrameSize(consumer: any): Promise<{
2176
+ width?: number;
2177
+ height?: number;
2178
+ } | undefined>;
2179
+ _recordPreferredLayerSwitchLatency(latencyMs: number): void;
2180
+ _onUpdatedStats(statsByView: Record<string, any>): void;
2181
+ _recordCamOutboundSample(newRemoteReports: SsrcStats[]): void;
2182
+ _followCamOutboundCandidatePair({ selectedCandidatePairId }: SsrcStats): void;
2183
+ _finishCamOutboundRttPath(): void;
2184
+ _updateCamOutboundAnalytics(): void;
2185
+ _startWebcamStatsSubscription(): void;
2186
+ _stopWebcamStatsSubscription(): void;
2113
2187
  close(): void;
2114
2188
  disconnectAll(): void;
2115
2189
  sendStatsCustomEvent(eventName: string, data?: any): void;
@@ -2120,6 +2194,7 @@ declare class VegaRtcManager implements RtcManager {
2120
2194
  _monitorVideoTrack(track: MediaStreamTrack): void;
2121
2195
  _onMessage(message: any): Promise<void>;
2122
2196
  _onConsumerReady(options: ConsumerOptions<ConsumerAppData>): Promise<void>;
2197
+ _reapplyStreamResolutions(): void;
2123
2198
  _onConsumerClosed({ consumerId, reason }: {
2124
2199
  consumerId: string;
2125
2200
  reason: string;
@@ -2140,6 +2215,19 @@ declare class VegaRtcManager implements RtcManager {
2140
2215
  kind: string;
2141
2216
  score: number;
2142
2217
  }): void;
2218
+ _getSvcEncodingUpdate(encoding: RtpEncodingParametersWithScalabilityMode, spatialLayer: number): {
2219
+ scalabilityMode: string;
2220
+ scaleResolutionDownBy: number;
2221
+ maxBitrate: number | undefined;
2222
+ } | undefined;
2223
+ _onChangedHighestPreferredLayer({ producerId, spatialLayer }: {
2224
+ producerId: string;
2225
+ spatialLayer: number;
2226
+ }): Promise<void>;
2227
+ _syncWebcamEncoderToHighestPreferredLayer(): Promise<void>;
2228
+ _applyPendingHighestPreferredLayerUpdates(): Promise<void>;
2229
+ _applyHighestPreferredLayerToWebcamEncoder(): Promise<void>;
2230
+ _incrementHistogramCount(histogram: Record<string, number>, key: string): void;
2143
2231
  _onDataConsumerReady(options: DataConsumerOptions<DataConsumerAppData>): Promise<void>;
2144
2232
  _onDataConsumerClosed({ dataConsumerId, reason }: {
2145
2233
  dataConsumerId: string;
@@ -2159,5 +2247,5 @@ declare class VegaRtcManager implements RtcManager {
2159
2247
  hasClient(clientId: string): boolean;
2160
2248
  }
2161
2249
 
2162
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, FILE_SHARE_ERROR_CODES, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getInitialStream, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isFileShareError, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, updateRenderedDimensions, variance };
2250
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, CAM_SAMPLES_SKIPPED_AFTER_CANDIDATE_PAIR_CHANGE, CONGESTED_FRACTION_LOST, CONGESTED_RTT_INFLATION_MS, EVENTS, FILE_SHARE_ERROR_CODES, INITIAL_CONSUMER_SPATIAL_LAYER, INITIAL_HIGHEST_PREFERRED_LAYER, KNOCK_MESSAGES, KalmanFilter, LOWEST_SVC_LAYER_MAX_BITRATE, Logger, MAX_CONCURRENT_PREFERRED_LAYER_SWITCH_WATCHES, MEDIA_JITTER_BUFFER_TARGET, MIDDLE_SVC_LAYER_MAX_BITRATE, NoDevicesError, P2pRtcManager, PREFERRED_LAYER_SWITCH_POLL_INTERVAL_MS, PREFERRED_LAYER_SWITCH_WATCH_TIMEOUT_MS, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getInitialStream, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getSelectedCandidatePairId, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isFileShareError, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, updateRenderedDimensions, variance };
2163
2251
  export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdateRequest, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatFileShare, ChatMessage, ChatMessageError, ChatMessageRemoved, ChatMessageRequest, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, FileShareErrorCode, FileUploadUrl, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetInitialStreamOptions, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockOnHoldEvent, KnockRejectedEvent, KnockResponse, KnockResponseSender, KnockRoomRequest, KnockerLeftEvent, LiveCaptionEvent, LiveCaptionsStartedEvent, LiveCaptionsStoppedEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareEnableRequest, ScreenshareEnableRequestedEvent, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
package/dist/index.d.ts CHANGED
@@ -72,6 +72,8 @@ interface SsrcStats {
72
72
  audioAcceleration?: number;
73
73
  sourceHeight?: number;
74
74
  jitter?: number;
75
+ remoteReportTimestamp?: number;
76
+ selectedCandidatePairId?: string;
75
77
  roundTripTime?: number;
76
78
  codec?: string;
77
79
  byteCount?: number;
@@ -252,7 +254,6 @@ interface StatsMonitorState {
252
254
  getClients: () => StatsClient[];
253
255
  lastPressureObserverRecord?: PressureRecord;
254
256
  lastUpdateTime: number;
255
- nextTimeout?: number;
256
257
  pressureObserver?: PressureObserver;
257
258
  renderedDimensionsByTrack: Record<string, RenderedDimensionsReport>;
258
259
  statsByView: Record<string, ViewStats>;
@@ -278,6 +279,7 @@ declare function subscribeStats(subscription: StatsSubscription, options?: Stats
278
279
 
279
280
  declare function captureCandidatePairInfoMetrics(cpMetrics: any, currentCptats: any, prevCptats: any, timeDiff: any, report: any): void;
280
281
  declare function captureSsrcInfo(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
282
+ declare function getSelectedCandidatePairId(report: any, transportId: string | undefined): string | undefined;
281
283
  declare function captureCommonSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
282
284
  declare function captureAudioSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
283
285
  declare function captureVideoSsrcMetrics(ssrcMetrics: any, currentSsrcStats: any, prevSsrcStats: any, timeDiff: any, report: any): void;
@@ -427,12 +429,19 @@ type DataConsumerAppData = {
427
429
  };
428
430
 
429
431
  type VegaAnalytics = {
432
+ avgPreferredLayerSwitchLatencyMs: number | undefined;
433
+ camOutboundCongestedFraction: number | undefined;
434
+ camOutboundRttInflationMs: number | undefined;
430
435
  camTrackEndedCount: number;
436
+ highestPreferredLayerChangeCounts: Record<string, number>;
431
437
  micTrackEndedCount: number;
438
+ numHighestPreferredLayerChanges: number;
432
439
  numIceConnected: number;
433
440
  numIceDisconnected: number;
434
441
  numIceFailed: number;
435
442
  numNewPc: number;
443
+ numPreferredSpatialLayerChanges: number;
444
+ preferredSpatialLayerChangeCounts: Record<string, number>;
436
445
  sfuMsFromOfflineToClose: number;
437
446
  sfuOfflineToCloseCount: number;
438
447
  sfuOfflineWhileConnectedCount: number;
@@ -453,7 +462,9 @@ type VegaAnalytics = {
453
462
  vegaWebcamProducerFailed: number;
454
463
  };
455
464
 
456
- type VegaAnalyticMetric = keyof VegaAnalytics;
465
+ type VegaAnalyticMetric = {
466
+ [K in keyof VegaAnalytics]: VegaAnalytics[K] extends number ? K : never;
467
+ }[keyof VegaAnalytics];
457
468
 
458
469
  type VegaIncrementAnalyticMetric = (metric: VegaAnalyticMetric) => void;
459
470
 
@@ -1374,6 +1385,16 @@ declare class BandwidthTester extends EventEmitter {
1374
1385
  }
1375
1386
 
1376
1387
  declare const MEDIA_JITTER_BUFFER_TARGET = 400;
1388
+ declare const INITIAL_CONSUMER_SPATIAL_LAYER = 1;
1389
+ declare const INITIAL_HIGHEST_PREFERRED_LAYER = 1;
1390
+ declare const LOWEST_SVC_LAYER_MAX_BITRATE = 100000;
1391
+ declare const MIDDLE_SVC_LAYER_MAX_BITRATE = 500000;
1392
+ declare const PREFERRED_LAYER_SWITCH_POLL_INTERVAL_MS = 100;
1393
+ declare const PREFERRED_LAYER_SWITCH_WATCH_TIMEOUT_MS = 10000;
1394
+ declare const MAX_CONCURRENT_PREFERRED_LAYER_SWITCH_WATCHES = 5;
1395
+ declare const CONGESTED_RTT_INFLATION_MS = 100;
1396
+ declare const CONGESTED_FRACTION_LOST = 0.02;
1397
+ declare const CAM_SAMPLES_SKIPPED_AFTER_CANDIDATE_PAIR_CHANGE = 2;
1377
1398
 
1378
1399
  declare function getMediaConstraints({ disableAEC, disableAGC, hd, lax, lowDataMode, preferredDeviceIds, resolution, simulcast, widescreen, }: GetMediaConstraintsOptions): any;
1379
1400
  declare function getConstraints({ devices, videoId, audioId, options, type }: GetConstraintsOptions): any;
@@ -1932,6 +1953,12 @@ declare const standardDeviation: (arr: any[]) => {
1932
1953
  };
1933
1954
  declare const variance: (arr: any[], usePopulation?: boolean) => number;
1934
1955
 
1956
+ declare function createMetricStats(): {
1957
+ count: number;
1958
+ sum: number;
1959
+ };
1960
+ type MetricStats = ReturnType<typeof createMetricStats>;
1961
+
1935
1962
  type ConnectionInfo = {
1936
1963
  host: string;
1937
1964
  dc: string;
@@ -1970,6 +1997,9 @@ declare function createVegaConnectionManager(config: {
1970
1997
  networkIsPossiblyDown: () => void;
1971
1998
  };
1972
1999
 
2000
+ type RtpEncodingParametersWithScalabilityMode = RTCRtpEncodingParameters & {
2001
+ scalabilityMode?: string;
2002
+ };
1973
2003
  declare class VegaRtcManager implements RtcManager {
1974
2004
  _selfId: string;
1975
2005
  _room: any;
@@ -2005,7 +2035,35 @@ declare class VegaRtcManager implements RtcManager {
2005
2035
  _micScoreProducer: any;
2006
2036
  _micScoreProducerPromise: any;
2007
2037
  _webcamProducer: any;
2038
+ _webcamProducerOriginalSvcScalabilityMode: string | undefined;
2039
+ _webcamProducerOriginalSvcMaxBitrate: number | undefined;
2040
+ _webcamProducerHighestPreferredLayer: number | undefined;
2041
+ _highestPreferredLayerUpdate: Promise<void> | null;
2042
+ _highestPreferredLayerUpdatePending: boolean;
2008
2043
  _webcamProducerPromise: any;
2044
+ _preferredLayerSwitchLatencyStats: MetricStats;
2045
+ _preferredLayerSwitchWatches: Map<string, {
2046
+ stop: () => void;
2047
+ }>;
2048
+ _statsSubscription: {
2049
+ stop: () => void;
2050
+ } | null;
2051
+ _lastSeenRemoteReportTimestamps: Map<string, number>;
2052
+ _camOutboundCandidatePairId: string | undefined;
2053
+ _camOutboundSamplesToSkip: number;
2054
+ _camOutboundPathRtt: {
2055
+ sumMs: number;
2056
+ count: number;
2057
+ minMs: number | undefined;
2058
+ };
2059
+ _camOutboundRttInflation: {
2060
+ sumMs: number;
2061
+ count: number;
2062
+ };
2063
+ _camOutboundSamples: {
2064
+ total: number;
2065
+ congested: number;
2066
+ };
2009
2067
  _webcamPaused: any;
2010
2068
  _screenVideoProducer: any;
2011
2069
  _screenVideoProducerPromise: any;
@@ -2110,6 +2168,22 @@ declare class VegaRtcManager implements RtcManager {
2110
2168
  width: number;
2111
2169
  height: number;
2112
2170
  }): void;
2171
+ _applyStreamResolution(streamId: string): void;
2172
+ _watchForPreferredLayerSwitch(consumerId: string, consumer: any, { toHigherLayer }: {
2173
+ toHigherLayer: boolean;
2174
+ }): void;
2175
+ _getConsumerFrameSize(consumer: any): Promise<{
2176
+ width?: number;
2177
+ height?: number;
2178
+ } | undefined>;
2179
+ _recordPreferredLayerSwitchLatency(latencyMs: number): void;
2180
+ _onUpdatedStats(statsByView: Record<string, any>): void;
2181
+ _recordCamOutboundSample(newRemoteReports: SsrcStats[]): void;
2182
+ _followCamOutboundCandidatePair({ selectedCandidatePairId }: SsrcStats): void;
2183
+ _finishCamOutboundRttPath(): void;
2184
+ _updateCamOutboundAnalytics(): void;
2185
+ _startWebcamStatsSubscription(): void;
2186
+ _stopWebcamStatsSubscription(): void;
2113
2187
  close(): void;
2114
2188
  disconnectAll(): void;
2115
2189
  sendStatsCustomEvent(eventName: string, data?: any): void;
@@ -2120,6 +2194,7 @@ declare class VegaRtcManager implements RtcManager {
2120
2194
  _monitorVideoTrack(track: MediaStreamTrack): void;
2121
2195
  _onMessage(message: any): Promise<void>;
2122
2196
  _onConsumerReady(options: ConsumerOptions<ConsumerAppData>): Promise<void>;
2197
+ _reapplyStreamResolutions(): void;
2123
2198
  _onConsumerClosed({ consumerId, reason }: {
2124
2199
  consumerId: string;
2125
2200
  reason: string;
@@ -2140,6 +2215,19 @@ declare class VegaRtcManager implements RtcManager {
2140
2215
  kind: string;
2141
2216
  score: number;
2142
2217
  }): void;
2218
+ _getSvcEncodingUpdate(encoding: RtpEncodingParametersWithScalabilityMode, spatialLayer: number): {
2219
+ scalabilityMode: string;
2220
+ scaleResolutionDownBy: number;
2221
+ maxBitrate: number | undefined;
2222
+ } | undefined;
2223
+ _onChangedHighestPreferredLayer({ producerId, spatialLayer }: {
2224
+ producerId: string;
2225
+ spatialLayer: number;
2226
+ }): Promise<void>;
2227
+ _syncWebcamEncoderToHighestPreferredLayer(): Promise<void>;
2228
+ _applyPendingHighestPreferredLayerUpdates(): Promise<void>;
2229
+ _applyHighestPreferredLayerToWebcamEncoder(): Promise<void>;
2230
+ _incrementHistogramCount(histogram: Record<string, number>, key: string): void;
2143
2231
  _onDataConsumerReady(options: DataConsumerOptions<DataConsumerAppData>): Promise<void>;
2144
2232
  _onDataConsumerClosed({ dataConsumerId, reason }: {
2145
2233
  dataConsumerId: string;
@@ -2159,5 +2247,5 @@ declare class VegaRtcManager implements RtcManager {
2159
2247
  hasClient(clientId: string): boolean;
2160
2248
  }
2161
2249
 
2162
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, FILE_SHARE_ERROR_CODES, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getInitialStream, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isFileShareError, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, updateRenderedDimensions, variance };
2250
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, CAM_SAMPLES_SKIPPED_AFTER_CANDIDATE_PAIR_CHANGE, CONGESTED_FRACTION_LOST, CONGESTED_RTT_INFLATION_MS, EVENTS, FILE_SHARE_ERROR_CODES, INITIAL_CONSUMER_SPATIAL_LAYER, INITIAL_HIGHEST_PREFERRED_LAYER, KNOCK_MESSAGES, KalmanFilter, LOWEST_SVC_LAYER_MAX_BITRATE, Logger, MAX_CONCURRENT_PREFERRED_LAYER_SWITCH_WATCHES, MEDIA_JITTER_BUFFER_TARGET, MIDDLE_SVC_LAYER_MAX_BITRATE, NoDevicesError, P2pRtcManager, PREFERRED_LAYER_SWITCH_POLL_INTERVAL_MS, PREFERRED_LAYER_SWITCH_WATCH_TIMEOUT_MS, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getInitialStream, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getSelectedCandidatePairId, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isFileShareError, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, updateRenderedDimensions, variance };
2163
2251
  export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdateRequest, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatFileShare, ChatMessage, ChatMessageError, ChatMessageRemoved, ChatMessageRequest, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, FileShareErrorCode, FileUploadUrl, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetInitialStreamOptions, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockOnHoldEvent, KnockRejectedEvent, KnockResponse, KnockResponseSender, KnockRoomRequest, KnockerLeftEvent, LiveCaptionEvent, LiveCaptionsStartedEvent, LiveCaptionsStoppedEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareEnableRequest, ScreenshareEnableRequestedEvent, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };