livekit-client 2.22.2 → 2.22.4
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/README.md +35 -0
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +488 -438
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +954 -301
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.fm.worker.js +1 -1
- package/dist/livekit-client.fm.worker.js.map +1 -1
- package/dist/livekit-client.fm.worker.mjs +10 -2
- package/dist/livekit-client.fm.worker.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/api/SignalClient.d.ts +4 -2
- package/dist/src/api/SignalClient.d.ts.map +1 -1
- package/dist/src/api/WebSocketStream.d.ts.map +1 -1
- package/dist/src/api/utils.d.ts +1 -0
- package/dist/src/api/utils.d.ts.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts +26 -0
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/types.d.ts +15 -1
- package/dist/src/e2ee/types.d.ts.map +1 -1
- package/dist/src/e2ee/worker/DataCryptor.d.ts.map +1 -1
- package/dist/src/e2ee/worker/ErrorRateLimiter.d.ts +21 -0
- package/dist/src/e2ee/worker/ErrorRateLimiter.d.ts.map +1 -0
- package/dist/src/e2ee/worker/FrameCryptor.d.ts +1 -18
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/logger.d.ts +4 -0
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/options.d.ts +14 -0
- package/dist/src/options.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +78 -7
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/PCTransportManager.d.ts.map +1 -1
- package/dist/src/room/RTCEngine.d.ts +9 -0
- package/dist/src/room/RTCEngine.d.ts.map +1 -1
- package/dist/src/room/Room.d.ts +1 -1
- package/dist/src/room/Room.d.ts.map +1 -1
- package/dist/src/room/defaults.d.ts.map +1 -1
- package/dist/src/room/errors.d.ts +18 -0
- package/dist/src/room/errors.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +3 -2
- package/dist/src/room/events.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/publishUtils.d.ts +16 -0
- package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
- package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
- package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
- package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
- package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +1 -1
- package/dist/src/room/track/utils.d.ts +13 -0
- package/dist/src/room/track/utils.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +66 -0
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/src/test/compressionStreamStubs.d.ts +12 -0
- package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
- package/dist/ts4.2/api/SignalClient.d.ts +187 -185
- package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
- package/dist/ts4.2/api/WebSocketStream.d.ts +33 -33
- package/dist/ts4.2/api/utils.d.ts +9 -8
- package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
- package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
- package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
- package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
- package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
- package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
- package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
- package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -85
- package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
- package/dist/ts4.2/e2ee/constants.d.ts +21 -21
- package/dist/ts4.2/e2ee/errors.d.ts +12 -12
- package/dist/ts4.2/e2ee/events.d.ts +39 -39
- package/dist/ts4.2/e2ee/index.d.ts +6 -6
- package/dist/ts4.2/e2ee/types.d.ts +231 -217
- package/dist/ts4.2/e2ee/utils.d.ts +32 -32
- package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
- package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -0
- package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -226
- package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
- package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
- package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +28 -28
- package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
- package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
- package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
- package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
- package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
- package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
- package/dist/ts4.2/index.d.ts +76 -76
- package/dist/ts4.2/logger.d.ts +66 -62
- package/dist/ts4.2/options.d.ts +163 -149
- package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
- package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
- package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
- package/dist/ts4.2/room/PCTransport.d.ts +246 -175
- package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
- package/dist/ts4.2/room/RTCEngine.d.ts +269 -261
- package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
- package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
- package/dist/ts4.2/room/Room.d.ts +354 -365
- package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
- package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +62 -62
- package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +94 -95
- package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
- package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
- package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
- package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
- package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
- package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
- package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
- package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
- package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
- package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
- package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
- package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
- package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
- package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
- package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
- package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
- package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
- package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
- package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
- package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
- package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
- package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
- package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
- package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
- package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
- package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
- package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
- package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
- package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
- package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
- package/dist/ts4.2/room/data-track/types.d.ts +22 -22
- package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
- package/dist/ts4.2/room/debounce.d.ts +11 -11
- package/dist/ts4.2/room/defaults.d.ts +9 -9
- package/dist/ts4.2/room/errors.d.ts +180 -162
- package/dist/ts4.2/room/events.d.ts +638 -637
- package/dist/ts4.2/room/participant/LocalParticipant.d.ts +287 -287
- package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
- package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
- package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
- package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -37
- package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
- package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
- package/dist/ts4.2/room/rpc/index.d.ts +7 -7
- package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
- package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
- package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
- package/dist/ts4.2/room/stats.d.ts +71 -71
- package/dist/ts4.2/room/statsSummary.d.ts +13 -13
- package/dist/ts4.2/room/timers.d.ts +12 -12
- package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
- package/dist/ts4.2/room/token-source/types.d.ts +70 -70
- package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
- package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
- package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +39 -42
- package/dist/ts4.2/room/track/LocalTrack.d.ts +125 -125
- package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
- package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +102 -93
- package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +55 -55
- package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
- package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
- package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
- package/dist/ts4.2/room/track/Track.d.ts +156 -166
- package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
- package/dist/ts4.2/room/track/create.d.ts +25 -25
- package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
- package/dist/ts4.2/room/track/options.d.ts +403 -403
- package/dist/ts4.2/room/track/processor/types.d.ts +31 -31
- package/dist/ts4.2/room/track/record.d.ts +13 -13
- package/dist/ts4.2/room/track/types.d.ts +28 -28
- package/dist/ts4.2/room/track/utils.d.ts +60 -47
- package/dist/ts4.2/room/types.d.ts +127 -127
- package/dist/ts4.2/room/utils.d.ts +246 -180
- package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
- package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
- package/dist/ts4.2/test/mocks.d.ts +12 -12
- package/dist/ts4.2/test/promiseState.d.ts +12 -12
- package/dist/ts4.2/test/signalToken.d.ts +26 -26
- package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
- package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
- package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
- package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
- package/dist/ts4.2/utils/browserParser.d.ts +13 -13
- package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
- package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
- package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
- package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
- package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
- package/dist/ts4.2/utils/serializer.d.ts +48 -48
- package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
- package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
- package/dist/ts4.2/version.d.ts +15 -15
- package/package.json +5 -4
- package/src/api/SignalClient.e2e.test.ts +1 -3
- package/src/api/SignalClient.test.ts +160 -10
- package/src/api/SignalClient.ts +75 -54
- package/src/api/WebSocketStream.ts +3 -8
- package/src/api/utils.ts +10 -0
- package/src/e2ee/E2eeManager.test.ts +196 -0
- package/src/e2ee/E2eeManager.ts +114 -19
- package/src/e2ee/types.ts +19 -1
- package/src/e2ee/worker/DataCryptor.ts +2 -1
- package/src/e2ee/worker/ErrorRateLimiter.test.ts +53 -0
- package/src/e2ee/worker/ErrorRateLimiter.ts +52 -0
- package/src/e2ee/worker/FrameCryptor.ts +20 -70
- package/src/e2ee/worker/e2ee.worker.ts +34 -11
- package/src/logger.ts +22 -0
- package/src/options.ts +16 -0
- package/src/room/PCTransport.test.ts +183 -7
- package/src/room/PCTransport.ts +197 -36
- package/src/room/PCTransportManager.ts +3 -1
- package/src/room/RTCEngine.test.ts +84 -0
- package/src/room/RTCEngine.ts +52 -12
- package/src/room/Room.test.ts +32 -6
- package/src/room/Room.ts +27 -7
- package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +16 -20
- package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +5 -5
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
- package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
- package/src/room/defaults.ts +1 -0
- package/src/room/errors.test.ts +36 -0
- package/src/room/errors.ts +27 -0
- package/src/room/events.ts +2 -1
- package/src/room/participant/LocalParticipant.ts +30 -14
- package/src/room/participant/publishUtils.test.ts +133 -0
- package/src/room/participant/publishUtils.ts +54 -38
- package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
- package/src/room/rpc/client/RpcClientManager.ts +32 -15
- package/src/room/track/LocalTrack.ts +18 -7
- package/src/room/track/LocalVideoTrack.ts +25 -8
- package/src/room/track/RemoteAudioTrack.ts +3 -3
- package/src/room/track/RemoteVideoTrack.test.ts +210 -0
- package/src/room/track/RemoteVideoTrack.ts +29 -3
- package/src/room/track/options.ts +1 -1
- package/src/room/track/utils.test.ts +201 -2
- package/src/room/track/utils.ts +88 -0
- package/src/room/utils.test.ts +211 -0
- package/src/room/utils.ts +129 -0
- package/src/test/compressionStreamStubs.ts +53 -0
|
@@ -1,125 +1,125 @@
|
|
|
1
|
-
import { Mutex } from '@livekit/mutex';
|
|
2
|
-
import type { LoggerOptions } from '../types';
|
|
3
|
-
import { Track } from './Track';
|
|
4
|
-
import type { VideoCodec } from './options';
|
|
5
|
-
import type { TrackProcessor } from './processor/types';
|
|
6
|
-
import { LocalTrackRecorder } from './record';
|
|
7
|
-
import type { ReplaceTrackOptions } from './types';
|
|
8
|
-
export default abstract class LocalTrack<TrackKind extends Track.Kind = Track.Kind> extends Track<TrackKind> {
|
|
9
|
-
protected _sender?: RTCRtpSender;
|
|
10
|
-
private autoStopPreConnectBuffer;
|
|
11
|
-
/** @internal */
|
|
12
|
-
get sender(): RTCRtpSender | undefined;
|
|
13
|
-
/** @internal */
|
|
14
|
-
set sender(sender: RTCRtpSender | undefined);
|
|
15
|
-
/** @internal */
|
|
16
|
-
codec?: VideoCodec;
|
|
17
|
-
get constraints(): MediaTrackConstraints;
|
|
18
|
-
get hasPreConnectBuffer(): boolean;
|
|
19
|
-
protected _constraints: MediaTrackConstraints;
|
|
20
|
-
protected reacquireTrack: boolean;
|
|
21
|
-
protected providedByUser: boolean;
|
|
22
|
-
protected muteLock: Mutex;
|
|
23
|
-
protected pauseUpstreamLock: Mutex;
|
|
24
|
-
protected processorElement?: HTMLMediaElement;
|
|
25
|
-
protected processor?: TrackProcessor<TrackKind, any>;
|
|
26
|
-
protected audioContext?: AudioContext;
|
|
27
|
-
protected manuallyStopped: boolean;
|
|
28
|
-
protected localTrackRecorder: LocalTrackRecorder<typeof this> | undefined;
|
|
29
|
-
protected trackChangeLock: Mutex;
|
|
30
|
-
protected pendingDeviceChange: boolean;
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
* @param mediaTrack
|
|
34
|
-
* @param kind
|
|
35
|
-
* @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks
|
|
36
|
-
* @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK
|
|
37
|
-
*/
|
|
38
|
-
protected constructor(mediaTrack: MediaStreamTrack, kind: TrackKind, constraints?: MediaTrackConstraints, userProvidedTrack?: boolean, loggerOptions?: LoggerOptions);
|
|
39
|
-
get id(): string;
|
|
40
|
-
get dimensions(): Track.Dimensions | undefined;
|
|
41
|
-
private _isUpstreamPaused;
|
|
42
|
-
get isUpstreamPaused(): boolean;
|
|
43
|
-
get isUserProvided(): boolean;
|
|
44
|
-
get mediaStreamTrack(): MediaStreamTrack;
|
|
45
|
-
get isLocal(): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* @internal
|
|
48
|
-
* returns mediaStreamTrack settings of the capturing mediastreamtrack source - ignoring processors
|
|
49
|
-
*/
|
|
50
|
-
getSourceTrackSettings(): MediaTrackSettings;
|
|
51
|
-
private setMediaStreamTrack;
|
|
52
|
-
waitForDimensions(timeout?: number): Promise<Track.Dimensions>;
|
|
53
|
-
setDeviceId(deviceId: ConstrainDOMString): Promise<boolean>;
|
|
54
|
-
abstract restartTrack(constraints?: unknown): Promise<void>;
|
|
55
|
-
/**
|
|
56
|
-
* @returns DeviceID of the device that is currently being used for this track
|
|
57
|
-
*/
|
|
58
|
-
getDeviceId(normalize?: boolean): Promise<string | undefined>;
|
|
59
|
-
mute(): Promise<this>;
|
|
60
|
-
unmute(): Promise<this>;
|
|
61
|
-
replaceTrack(track: MediaStreamTrack, options?: ReplaceTrackOptions): Promise<typeof this>;
|
|
62
|
-
replaceTrack(track: MediaStreamTrack, userProvidedTrack?: boolean): Promise<typeof this>;
|
|
63
|
-
/**
|
|
64
|
-
* Hook invoked after the MediaStreamTrack on the sender has been swapped
|
|
65
|
-
* (via replaceTrack, setProcessor, or stopProcessor). Fires outside the
|
|
66
|
-
* trackChangeLock so subclasses can do asynchronous work such as polling
|
|
67
|
-
* for new dimensions without blocking other track operations.
|
|
68
|
-
*/
|
|
69
|
-
protected onSenderTrackSwapped(): Promise<void>;
|
|
70
|
-
protected restart(constraints?: MediaTrackConstraints, isUnmuting?: boolean): Promise<this>;
|
|
71
|
-
protected setTrackMuted(muted: boolean): void;
|
|
72
|
-
protected get needsReAcquisition(): boolean;
|
|
73
|
-
protected handleAppVisibilityChanged(): Promise<void>;
|
|
74
|
-
private handleTrackMuteEvent;
|
|
75
|
-
private debouncedTrackMuteHandler;
|
|
76
|
-
private handleTrackUnmuteEvent;
|
|
77
|
-
private handleEnded;
|
|
78
|
-
stop(): void;
|
|
79
|
-
/**
|
|
80
|
-
* pauses publishing to the server without disabling the local MediaStreamTrack
|
|
81
|
-
* this is used to display a user's own video locally while pausing publishing to
|
|
82
|
-
* the server.
|
|
83
|
-
* this API is unsupported on Safari < 12 due to a bug
|
|
84
|
-
**/
|
|
85
|
-
pauseUpstream(): Promise<void>;
|
|
86
|
-
resumeUpstream(): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
* Gets the RTCStatsReport for the LocalTrack's underlying RTCRtpSender
|
|
89
|
-
* See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
|
|
90
|
-
*
|
|
91
|
-
* @returns Promise<RTCStatsReport> | undefined
|
|
92
|
-
*/
|
|
93
|
-
getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
|
|
94
|
-
/**
|
|
95
|
-
* Sets a processor on this track.
|
|
96
|
-
* See https://github.com/livekit/track-processors-js for example usage
|
|
97
|
-
*
|
|
98
|
-
* @param processor
|
|
99
|
-
* @param showProcessedStreamLocally
|
|
100
|
-
* @returns
|
|
101
|
-
*/
|
|
102
|
-
setProcessor(processor: TrackProcessor<TrackKind>, showProcessedStreamLocally?: boolean): Promise<void>;
|
|
103
|
-
getProcessor(): TrackProcessor<TrackKind, any> | undefined;
|
|
104
|
-
/**
|
|
105
|
-
* Stops the track processor
|
|
106
|
-
* See https://github.com/livekit/track-processors-js for example usage
|
|
107
|
-
*
|
|
108
|
-
*/
|
|
109
|
-
stopProcessor(keepElement?: boolean): Promise<void>;
|
|
110
|
-
/**
|
|
111
|
-
* @internal
|
|
112
|
-
* This method assumes the caller has acquired a trackChangeLock already.
|
|
113
|
-
* The public facing method for stopping the processor is `stopProcessor` and it wraps this method in the trackChangeLock.
|
|
114
|
-
*/
|
|
115
|
-
protected internalStopProcessor(keepElement?: boolean): Promise<void>;
|
|
116
|
-
/** @internal */
|
|
117
|
-
startPreConnectBuffer(timeslice?: number): void;
|
|
118
|
-
/** @internal */
|
|
119
|
-
stopPreConnectBuffer(): void;
|
|
120
|
-
/** @internal */
|
|
121
|
-
getPreConnectBuffer(): ReadableStream<Uint8Array> | undefined;
|
|
122
|
-
getPreConnectBufferMimeType(): string | undefined;
|
|
123
|
-
protected abstract monitorSender(): void;
|
|
124
|
-
}
|
|
125
|
-
//# sourceMappingURL=LocalTrack.d.ts.map
|
|
1
|
+
import { Mutex } from '@livekit/mutex';
|
|
2
|
+
import type { LoggerOptions } from '../types';
|
|
3
|
+
import { Track } from './Track';
|
|
4
|
+
import type { VideoCodec } from './options';
|
|
5
|
+
import type { TrackProcessor } from './processor/types';
|
|
6
|
+
import { LocalTrackRecorder } from './record';
|
|
7
|
+
import type { ReplaceTrackOptions } from './types';
|
|
8
|
+
export default abstract class LocalTrack<TrackKind extends Track.Kind = Track.Kind> extends Track<TrackKind> {
|
|
9
|
+
protected _sender?: RTCRtpSender;
|
|
10
|
+
private autoStopPreConnectBuffer;
|
|
11
|
+
/** @internal */
|
|
12
|
+
get sender(): RTCRtpSender | undefined;
|
|
13
|
+
/** @internal */
|
|
14
|
+
set sender(sender: RTCRtpSender | undefined);
|
|
15
|
+
/** @internal */
|
|
16
|
+
codec?: VideoCodec;
|
|
17
|
+
get constraints(): MediaTrackConstraints;
|
|
18
|
+
get hasPreConnectBuffer(): boolean;
|
|
19
|
+
protected _constraints: MediaTrackConstraints;
|
|
20
|
+
protected reacquireTrack: boolean;
|
|
21
|
+
protected providedByUser: boolean;
|
|
22
|
+
protected muteLock: Mutex;
|
|
23
|
+
protected pauseUpstreamLock: Mutex;
|
|
24
|
+
protected processorElement?: HTMLMediaElement;
|
|
25
|
+
protected processor?: TrackProcessor<TrackKind, any>;
|
|
26
|
+
protected audioContext?: AudioContext;
|
|
27
|
+
protected manuallyStopped: boolean;
|
|
28
|
+
protected localTrackRecorder: LocalTrackRecorder<typeof this> | undefined;
|
|
29
|
+
protected trackChangeLock: Mutex;
|
|
30
|
+
protected pendingDeviceChange: boolean;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param mediaTrack
|
|
34
|
+
* @param kind
|
|
35
|
+
* @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks
|
|
36
|
+
* @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK
|
|
37
|
+
*/
|
|
38
|
+
protected constructor(mediaTrack: MediaStreamTrack, kind: TrackKind, constraints?: MediaTrackConstraints, userProvidedTrack?: boolean, loggerOptions?: LoggerOptions);
|
|
39
|
+
get id(): string;
|
|
40
|
+
get dimensions(): (Track.Dimensions | undefined);
|
|
41
|
+
private _isUpstreamPaused;
|
|
42
|
+
get isUpstreamPaused(): boolean;
|
|
43
|
+
get isUserProvided(): boolean;
|
|
44
|
+
get mediaStreamTrack(): MediaStreamTrack;
|
|
45
|
+
get isLocal(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* @internal
|
|
48
|
+
* returns mediaStreamTrack settings of the capturing mediastreamtrack source - ignoring processors
|
|
49
|
+
*/
|
|
50
|
+
getSourceTrackSettings(): MediaTrackSettings;
|
|
51
|
+
private setMediaStreamTrack;
|
|
52
|
+
waitForDimensions(timeout?: number): Promise<Track.Dimensions>;
|
|
53
|
+
setDeviceId(deviceId: ConstrainDOMString): Promise<boolean>;
|
|
54
|
+
abstract restartTrack(constraints?: unknown): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* @returns DeviceID of the device that is currently being used for this track
|
|
57
|
+
*/
|
|
58
|
+
getDeviceId(normalize?: boolean): Promise<string | undefined>;
|
|
59
|
+
mute(): Promise<this>;
|
|
60
|
+
unmute(): Promise<this>;
|
|
61
|
+
replaceTrack(track: MediaStreamTrack, options?: ReplaceTrackOptions): Promise<typeof this>;
|
|
62
|
+
replaceTrack(track: MediaStreamTrack, userProvidedTrack?: boolean): Promise<typeof this>;
|
|
63
|
+
/**
|
|
64
|
+
* Hook invoked after the MediaStreamTrack on the sender has been swapped
|
|
65
|
+
* (via replaceTrack, setProcessor, or stopProcessor). Fires outside the
|
|
66
|
+
* trackChangeLock so subclasses can do asynchronous work such as polling
|
|
67
|
+
* for new dimensions without blocking other track operations.
|
|
68
|
+
*/
|
|
69
|
+
protected onSenderTrackSwapped(): Promise<void>;
|
|
70
|
+
protected restart(constraints?: MediaTrackConstraints, isUnmuting?: boolean): Promise<this>;
|
|
71
|
+
protected setTrackMuted(muted: boolean): void;
|
|
72
|
+
protected get needsReAcquisition(): boolean;
|
|
73
|
+
protected handleAppVisibilityChanged(): Promise<void>;
|
|
74
|
+
private handleTrackMuteEvent;
|
|
75
|
+
private debouncedTrackMuteHandler;
|
|
76
|
+
private handleTrackUnmuteEvent;
|
|
77
|
+
private handleEnded;
|
|
78
|
+
stop(): void;
|
|
79
|
+
/**
|
|
80
|
+
* pauses publishing to the server without disabling the local MediaStreamTrack
|
|
81
|
+
* this is used to display a user's own video locally while pausing publishing to
|
|
82
|
+
* the server.
|
|
83
|
+
* this API is unsupported on Safari < 12 due to a bug
|
|
84
|
+
**/
|
|
85
|
+
pauseUpstream(): Promise<void>;
|
|
86
|
+
resumeUpstream(): Promise<void>;
|
|
87
|
+
/**
|
|
88
|
+
* Gets the RTCStatsReport for the LocalTrack's underlying RTCRtpSender
|
|
89
|
+
* See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
|
|
90
|
+
*
|
|
91
|
+
* @returns Promise<RTCStatsReport> | undefined
|
|
92
|
+
*/
|
|
93
|
+
getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
|
|
94
|
+
/**
|
|
95
|
+
* Sets a processor on this track.
|
|
96
|
+
* See https://github.com/livekit/track-processors-js for example usage
|
|
97
|
+
*
|
|
98
|
+
* @param processor
|
|
99
|
+
* @param showProcessedStreamLocally
|
|
100
|
+
* @returns
|
|
101
|
+
*/
|
|
102
|
+
setProcessor(processor: TrackProcessor<TrackKind>, showProcessedStreamLocally?: boolean): Promise<void>;
|
|
103
|
+
getProcessor(): TrackProcessor<TrackKind, any> | undefined;
|
|
104
|
+
/**
|
|
105
|
+
* Stops the track processor
|
|
106
|
+
* See https://github.com/livekit/track-processors-js for example usage
|
|
107
|
+
*
|
|
108
|
+
*/
|
|
109
|
+
stopProcessor(keepElement?: boolean): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* @internal
|
|
112
|
+
* This method assumes the caller has acquired a trackChangeLock already.
|
|
113
|
+
* The public facing method for stopping the processor is `stopProcessor` and it wraps this method in the trackChangeLock.
|
|
114
|
+
*/
|
|
115
|
+
protected internalStopProcessor(keepElement?: boolean): Promise<void>;
|
|
116
|
+
/** @internal */
|
|
117
|
+
startPreConnectBuffer(timeslice?: number): void;
|
|
118
|
+
/** @internal */
|
|
119
|
+
stopPreConnectBuffer(): void;
|
|
120
|
+
/** @internal */
|
|
121
|
+
getPreConnectBuffer(): ReadableStream<Uint8Array> | undefined;
|
|
122
|
+
getPreConnectBufferMimeType(): string | undefined;
|
|
123
|
+
protected abstract monitorSender(): void;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=LocalTrack.d.ts.map
|
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
import { AudioTrackFeature, TrackInfo } from '@livekit/protocol';
|
|
2
|
-
import type { LoggerOptions } from '../types';
|
|
3
|
-
import LocalAudioTrack from './LocalAudioTrack';
|
|
4
|
-
import type LocalTrack from './LocalTrack';
|
|
5
|
-
import type LocalVideoTrack from './LocalVideoTrack';
|
|
6
|
-
import type { Track } from './Track';
|
|
7
|
-
import { TrackPublication } from './TrackPublication';
|
|
8
|
-
import type { TrackPublishOptions } from './options';
|
|
9
|
-
export default class LocalTrackPublication extends TrackPublication {
|
|
10
|
-
track?: LocalTrack;
|
|
11
|
-
options?: TrackPublishOptions;
|
|
12
|
-
get isUpstreamPaused(): boolean | undefined;
|
|
13
|
-
constructor(kind: Track.Kind, ti: TrackInfo, track?: LocalTrack, loggerOptions?: LoggerOptions);
|
|
14
|
-
setTrack(track?: Track): void;
|
|
15
|
-
get isMuted(): boolean;
|
|
16
|
-
get audioTrack(): LocalAudioTrack | undefined;
|
|
17
|
-
get videoTrack(): LocalVideoTrack | undefined;
|
|
18
|
-
get isLocal(): boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Mute the track associated with this publication
|
|
21
|
-
*/
|
|
22
|
-
mute(): Promise<LocalTrack<Track.Kind> | undefined>;
|
|
23
|
-
/**
|
|
24
|
-
* Unmute track associated with this publication
|
|
25
|
-
*/
|
|
26
|
-
unmute(): Promise<LocalTrack<Track.Kind> | undefined>;
|
|
27
|
-
/**
|
|
28
|
-
* Pauses the media stream track associated with this publication from being sent to the server
|
|
29
|
-
* and signals "muted" event to other participants
|
|
30
|
-
* Useful if you want to pause the stream without pausing the local media stream track
|
|
31
|
-
*/
|
|
32
|
-
pauseUpstream(): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Resumes sending the media stream track associated with this publication to the server after a call to [[pauseUpstream()]]
|
|
35
|
-
* and signals "unmuted" event to other participants (unless the track is explicitly muted)
|
|
36
|
-
*/
|
|
37
|
-
resumeUpstream(): Promise<void>;
|
|
38
|
-
getTrackFeatures(): AudioTrackFeature[];
|
|
39
|
-
handleTrackEnded: () => void;
|
|
40
|
-
private handleCpuConstrained;
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=LocalTrackPublication.d.ts.map
|
|
1
|
+
import { AudioTrackFeature, TrackInfo } from '@livekit/protocol';
|
|
2
|
+
import type { LoggerOptions } from '../types';
|
|
3
|
+
import LocalAudioTrack from './LocalAudioTrack';
|
|
4
|
+
import type LocalTrack from './LocalTrack';
|
|
5
|
+
import type LocalVideoTrack from './LocalVideoTrack';
|
|
6
|
+
import type { Track } from './Track';
|
|
7
|
+
import { TrackPublication } from './TrackPublication';
|
|
8
|
+
import type { TrackPublishOptions } from './options';
|
|
9
|
+
export default class LocalTrackPublication extends TrackPublication {
|
|
10
|
+
track?: LocalTrack;
|
|
11
|
+
options?: TrackPublishOptions;
|
|
12
|
+
get isUpstreamPaused(): (boolean | undefined);
|
|
13
|
+
constructor(kind: Track.Kind, ti: TrackInfo, track?: LocalTrack, loggerOptions?: LoggerOptions);
|
|
14
|
+
setTrack(track?: Track): void;
|
|
15
|
+
get isMuted(): boolean;
|
|
16
|
+
get audioTrack(): (LocalAudioTrack | undefined);
|
|
17
|
+
get videoTrack(): (LocalVideoTrack | undefined);
|
|
18
|
+
get isLocal(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Mute the track associated with this publication
|
|
21
|
+
*/
|
|
22
|
+
mute(): Promise<LocalTrack<Track.Kind> | undefined>;
|
|
23
|
+
/**
|
|
24
|
+
* Unmute track associated with this publication
|
|
25
|
+
*/
|
|
26
|
+
unmute(): Promise<LocalTrack<Track.Kind> | undefined>;
|
|
27
|
+
/**
|
|
28
|
+
* Pauses the media stream track associated with this publication from being sent to the server
|
|
29
|
+
* and signals "muted" event to other participants
|
|
30
|
+
* Useful if you want to pause the stream without pausing the local media stream track
|
|
31
|
+
*/
|
|
32
|
+
pauseUpstream(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Resumes sending the media stream track associated with this publication to the server after a call to [[pauseUpstream()]]
|
|
35
|
+
* and signals "unmuted" event to other participants (unless the track is explicitly muted)
|
|
36
|
+
*/
|
|
37
|
+
resumeUpstream(): Promise<void>;
|
|
38
|
+
getTrackFeatures(): AudioTrackFeature[];
|
|
39
|
+
handleTrackEnded: () => void;
|
|
40
|
+
private handleCpuConstrained;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=LocalTrackPublication.d.ts.map
|
|
@@ -1,93 +1,102 @@
|
|
|
1
|
-
import { SubscribedCodec, SubscribedQuality, VideoLayer } from '@livekit/protocol';
|
|
2
|
-
import type { SignalClient } from '../../api/SignalClient';
|
|
3
|
-
import type { VideoSenderStats } from '../stats';
|
|
4
|
-
import type { LoggerOptions } from '../types';
|
|
5
|
-
import LocalTrack from './LocalTrack';
|
|
6
|
-
import { Track, VideoQuality } from './Track';
|
|
7
|
-
import type { TrackPublishOptions, VideoCaptureOptions, VideoCodec } from './options';
|
|
8
|
-
import type { TrackProcessor } from './processor/types';
|
|
9
|
-
export declare class SimulcastTrackInfo {
|
|
10
|
-
codec: VideoCodec;
|
|
11
|
-
mediaStreamTrack: MediaStreamTrack;
|
|
12
|
-
sender?: RTCRtpSender;
|
|
13
|
-
encodings?: RTCRtpEncodingParameters[];
|
|
14
|
-
constructor(codec: VideoCodec, mediaStreamTrack: MediaStreamTrack);
|
|
15
|
-
}
|
|
16
|
-
export default class LocalVideoTrack extends LocalTrack<Track.Kind.Video> {
|
|
17
|
-
signalClient?: SignalClient;
|
|
18
|
-
private prevStats?;
|
|
19
|
-
private encodings?;
|
|
20
|
-
simulcastCodecs: Map<VideoCodec, SimulcastTrackInfo>;
|
|
21
|
-
private subscribedCodecs?;
|
|
22
|
-
private senderLock;
|
|
23
|
-
private degradationPreference;
|
|
24
|
-
private isCpuConstrained;
|
|
25
|
-
private optimizeForPerformance;
|
|
26
|
-
publishOptions?: TrackPublishOptions;
|
|
27
|
-
lastEncodedDimensions?: Track.Dimensions;
|
|
28
|
-
get sender(): RTCRtpSender | undefined;
|
|
29
|
-
set sender(sender: RTCRtpSender | undefined);
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* @param mediaTrack
|
|
33
|
-
* @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks
|
|
34
|
-
* @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK
|
|
35
|
-
*/
|
|
36
|
-
constructor(mediaTrack: MediaStreamTrack, constraints?: MediaTrackConstraints, userProvidedTrack?: boolean, loggerOptions?: LoggerOptions);
|
|
37
|
-
get isSimulcast(): boolean;
|
|
38
|
-
startMonitor(signalClient: SignalClient): void;
|
|
39
|
-
stop(): void;
|
|
40
|
-
pauseUpstream(): Promise<void>;
|
|
41
|
-
resumeUpstream(): Promise<void>;
|
|
42
|
-
mute(): Promise<typeof this>;
|
|
43
|
-
unmute(): Promise<typeof this>;
|
|
44
|
-
protected setTrackMuted(muted: boolean): void;
|
|
45
|
-
getSenderStats(): Promise<VideoSenderStats[]>;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
*
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
*
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
*
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
1
|
+
import { SubscribedCodec, SubscribedQuality, VideoLayer } from '@livekit/protocol';
|
|
2
|
+
import type { SignalClient } from '../../api/SignalClient';
|
|
3
|
+
import type { VideoSenderStats } from '../stats';
|
|
4
|
+
import type { LoggerOptions } from '../types';
|
|
5
|
+
import LocalTrack from './LocalTrack';
|
|
6
|
+
import { Track, VideoQuality } from './Track';
|
|
7
|
+
import type { TrackPublishOptions, VideoCaptureOptions, VideoCodec } from './options';
|
|
8
|
+
import type { TrackProcessor } from './processor/types';
|
|
9
|
+
export declare class SimulcastTrackInfo {
|
|
10
|
+
codec: VideoCodec;
|
|
11
|
+
mediaStreamTrack: MediaStreamTrack;
|
|
12
|
+
sender?: RTCRtpSender;
|
|
13
|
+
encodings?: RTCRtpEncodingParameters[];
|
|
14
|
+
constructor(codec: VideoCodec, mediaStreamTrack: MediaStreamTrack);
|
|
15
|
+
}
|
|
16
|
+
export default class LocalVideoTrack extends LocalTrack<Track.Kind.Video> {
|
|
17
|
+
signalClient?: SignalClient;
|
|
18
|
+
private prevStats?;
|
|
19
|
+
private encodings?;
|
|
20
|
+
simulcastCodecs: Map<VideoCodec, SimulcastTrackInfo>;
|
|
21
|
+
private subscribedCodecs?;
|
|
22
|
+
private senderLock;
|
|
23
|
+
private degradationPreference;
|
|
24
|
+
private isCpuConstrained;
|
|
25
|
+
private optimizeForPerformance;
|
|
26
|
+
publishOptions?: TrackPublishOptions;
|
|
27
|
+
lastEncodedDimensions?: Track.Dimensions;
|
|
28
|
+
get sender(): RTCRtpSender | undefined;
|
|
29
|
+
set sender(sender: RTCRtpSender | undefined);
|
|
30
|
+
/**
|
|
31
|
+
*
|
|
32
|
+
* @param mediaTrack
|
|
33
|
+
* @param constraints MediaTrackConstraints that are being used when restarting or reacquiring tracks
|
|
34
|
+
* @param userProvidedTrack Signals to the SDK whether or not the mediaTrack should be managed (i.e. released and reacquired) internally by the SDK
|
|
35
|
+
*/
|
|
36
|
+
constructor(mediaTrack: MediaStreamTrack, constraints?: MediaTrackConstraints, userProvidedTrack?: boolean, loggerOptions?: LoggerOptions);
|
|
37
|
+
get isSimulcast(): boolean;
|
|
38
|
+
startMonitor(signalClient: SignalClient): void;
|
|
39
|
+
stop(): void;
|
|
40
|
+
pauseUpstream(): Promise<void>;
|
|
41
|
+
resumeUpstream(): Promise<void>;
|
|
42
|
+
mute(): Promise<typeof this>;
|
|
43
|
+
unmute(): Promise<typeof this>;
|
|
44
|
+
protected setTrackMuted(muted: boolean): void;
|
|
45
|
+
getSenderStats(): Promise<VideoSenderStats[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Whether `codec` is being published as SVC (a single stream carrying all spatial
|
|
48
|
+
* layers) as opposed to rid based simulcast. VP9/AV1 are SVC unless the publisher
|
|
49
|
+
* opted into simulcast, in which case each rid is an independent stream and the
|
|
50
|
+
* layers can be enabled/disabled individually.
|
|
51
|
+
*/
|
|
52
|
+
private isSvcPublish;
|
|
53
|
+
setPublishingQuality(maxQuality: VideoQuality): void;
|
|
54
|
+
restartTrack(options?: VideoCaptureOptions): Promise<void>;
|
|
55
|
+
protected onSenderTrackSwapped(): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Recomputes encoding parameters for this track's senders based on the current
|
|
58
|
+
* MediaStreamTrack dimensions and reapplies them via setParameters. This is a no-op
|
|
59
|
+
* if the track hasn't been published yet or if the track is in performance-optimized
|
|
60
|
+
* mode (which manages its own encodings).
|
|
61
|
+
*/
|
|
62
|
+
private refreshSenderEncodings;
|
|
63
|
+
private applyEncodingsToSender;
|
|
64
|
+
setProcessor(processor: TrackProcessor<Track.Kind.Video>, showProcessedStreamLocally?: boolean): Promise<void>;
|
|
65
|
+
setDegradationPreference(preference: RTCDegradationPreference): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Degradation preference is a property of the sender, not of the track, so every sender
|
|
68
|
+
* publishing this track needs it applied separately. A backup codec publishes over its
|
|
69
|
+
* own sender, which would otherwise let the browser resolve a preference implicitly and
|
|
70
|
+
* diverge from the primary encoder.
|
|
71
|
+
*
|
|
72
|
+
* Callers apply this sequentially rather than concurrently: `setParameters` is only valid
|
|
73
|
+
* against the parameters most recently returned by `getParameters`, which is why this file
|
|
74
|
+
* serializes other sender parameter updates through `senderLock`.
|
|
75
|
+
*/
|
|
76
|
+
private applyDegradationPreference;
|
|
77
|
+
addSimulcastTrack(codec: VideoCodec, encodings?: RTCRtpEncodingParameters[]): SimulcastTrackInfo | undefined;
|
|
78
|
+
setSimulcastTrackSender(codec: VideoCodec, sender: RTCRtpSender): Promise<void>;
|
|
79
|
+
/** @interal */
|
|
80
|
+
refreshSubscribedCodecs(): Promise<void | ("vp8" | "h264" | "vp9" | "av1" | "h265")[]>;
|
|
81
|
+
/**
|
|
82
|
+
* @internal
|
|
83
|
+
* Sets codecs that should be publishing, returns new codecs that have not yet
|
|
84
|
+
* been published
|
|
85
|
+
*/
|
|
86
|
+
setPublishingCodecs(codecs: SubscribedCodec[]): Promise<VideoCodec[]>;
|
|
87
|
+
/**
|
|
88
|
+
* @internal
|
|
89
|
+
* Sets layers that should be publishing
|
|
90
|
+
*/
|
|
91
|
+
setPublishingLayers(isSvc: boolean, qualities: SubscribedQuality[]): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Designed for lower powered devices, reduces video publishing quality and disables simulcast.
|
|
94
|
+
* @experimental
|
|
95
|
+
*/
|
|
96
|
+
prioritizePerformance(): Promise<void>;
|
|
97
|
+
protected monitorSender: () => Promise<void>;
|
|
98
|
+
protected handleAppVisibilityChanged(): Promise<void>;
|
|
99
|
+
}
|
|
100
|
+
export declare function videoQualityForRid(rid: string): VideoQuality;
|
|
101
|
+
export declare function videoLayersFromEncodings(width: number, height: number, encodings?: RTCRtpEncodingParameters[], svc?: boolean): VideoLayer[];
|
|
102
|
+
//# sourceMappingURL=LocalVideoTrack.d.ts.map
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import type { AudioReceiverStats } from '../stats';
|
|
2
|
-
import type { LoggerOptions } from '../types';
|
|
3
|
-
import RemoteTrack from './RemoteTrack';
|
|
4
|
-
import { Track } from './Track';
|
|
5
|
-
import type { AudioOutputOptions } from './options';
|
|
6
|
-
export default class RemoteAudioTrack extends RemoteTrack<Track.Kind.Audio> {
|
|
7
|
-
private prevStats?;
|
|
8
|
-
private elementVolume;
|
|
9
|
-
private audioContext?;
|
|
10
|
-
private gainNode?;
|
|
11
|
-
private sourceNode?;
|
|
12
|
-
private webAudioPluginNodes;
|
|
13
|
-
private sinkId?;
|
|
14
|
-
constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, audioContext?: AudioContext, audioOutput?: AudioOutputOptions, loggerOptions?: LoggerOptions);
|
|
15
|
-
/**
|
|
16
|
-
* sets the volume for all attached audio elements
|
|
17
|
-
*/
|
|
18
|
-
setVolume(volume: number): void;
|
|
19
|
-
/**
|
|
20
|
-
* gets the volume of attached audio elements (loudest)
|
|
21
|
-
*/
|
|
22
|
-
getVolume(): number;
|
|
23
|
-
/**
|
|
24
|
-
* calls setSinkId on all attached elements, if supported
|
|
25
|
-
* @param deviceId audio output device
|
|
26
|
-
*/
|
|
27
|
-
setSinkId(deviceId: string): Promise<void>;
|
|
28
|
-
attach(): HTMLMediaElement;
|
|
29
|
-
attach(element: HTMLMediaElement): HTMLMediaElement;
|
|
30
|
-
/**
|
|
31
|
-
* Detaches from all attached elements
|
|
32
|
-
*/
|
|
33
|
-
detach(): HTMLMediaElement[];
|
|
34
|
-
/**
|
|
35
|
-
* Detach from a single element
|
|
36
|
-
* @param element
|
|
37
|
-
*/
|
|
38
|
-
detach(element: HTMLMediaElement): HTMLMediaElement;
|
|
39
|
-
/**
|
|
40
|
-
* @internal
|
|
41
|
-
* @experimental
|
|
42
|
-
*/
|
|
43
|
-
setAudioContext(audioContext: AudioContext | undefined): void;
|
|
44
|
-
/**
|
|
45
|
-
* @internal
|
|
46
|
-
* @experimental
|
|
47
|
-
* @param {AudioNode[]} nodes - An array of WebAudio nodes. These nodes should not be connected to each other when passed, as the sdk will take care of connecting them in the order of the array.
|
|
48
|
-
*/
|
|
49
|
-
setWebAudioPlugins(nodes: AudioNode[]): void;
|
|
50
|
-
private connectWebAudio;
|
|
51
|
-
private disconnectWebAudio;
|
|
52
|
-
protected monitorReceiver: () => Promise<void>;
|
|
53
|
-
getReceiverStats(): Promise<AudioReceiverStats | undefined>;
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=RemoteAudioTrack.d.ts.map
|
|
1
|
+
import type { AudioReceiverStats } from '../stats';
|
|
2
|
+
import type { LoggerOptions } from '../types';
|
|
3
|
+
import RemoteTrack from './RemoteTrack';
|
|
4
|
+
import { Track } from './Track';
|
|
5
|
+
import type { AudioOutputOptions } from './options';
|
|
6
|
+
export default class RemoteAudioTrack extends RemoteTrack<Track.Kind.Audio> {
|
|
7
|
+
private prevStats?;
|
|
8
|
+
private elementVolume;
|
|
9
|
+
private audioContext?;
|
|
10
|
+
private gainNode?;
|
|
11
|
+
private sourceNode?;
|
|
12
|
+
private webAudioPluginNodes;
|
|
13
|
+
private sinkId?;
|
|
14
|
+
constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, audioContext?: AudioContext, audioOutput?: AudioOutputOptions, loggerOptions?: LoggerOptions);
|
|
15
|
+
/**
|
|
16
|
+
* sets the volume for all attached audio elements
|
|
17
|
+
*/
|
|
18
|
+
setVolume(volume: number): void;
|
|
19
|
+
/**
|
|
20
|
+
* gets the volume of attached audio elements (loudest)
|
|
21
|
+
*/
|
|
22
|
+
getVolume(): number;
|
|
23
|
+
/**
|
|
24
|
+
* calls setSinkId on all attached elements, if supported
|
|
25
|
+
* @param deviceId audio output device
|
|
26
|
+
*/
|
|
27
|
+
setSinkId(deviceId: string): Promise<void>;
|
|
28
|
+
attach(): HTMLMediaElement;
|
|
29
|
+
attach(element: HTMLMediaElement): HTMLMediaElement;
|
|
30
|
+
/**
|
|
31
|
+
* Detaches from all attached elements
|
|
32
|
+
*/
|
|
33
|
+
detach(): HTMLMediaElement[];
|
|
34
|
+
/**
|
|
35
|
+
* Detach from a single element
|
|
36
|
+
* @param element
|
|
37
|
+
*/
|
|
38
|
+
detach(element: HTMLMediaElement): HTMLMediaElement;
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
* @experimental
|
|
42
|
+
*/
|
|
43
|
+
setAudioContext(audioContext: AudioContext | undefined): void;
|
|
44
|
+
/**
|
|
45
|
+
* @internal
|
|
46
|
+
* @experimental
|
|
47
|
+
* @param {AudioNode[]} nodes - An array of WebAudio nodes. These nodes should not be connected to each other when passed, as the sdk will take care of connecting them in the order of the array.
|
|
48
|
+
*/
|
|
49
|
+
setWebAudioPlugins(nodes: AudioNode[]): void;
|
|
50
|
+
private connectWebAudio;
|
|
51
|
+
private disconnectWebAudio;
|
|
52
|
+
protected monitorReceiver: () => Promise<void>;
|
|
53
|
+
getReceiverStats(): Promise<AudioReceiverStats | undefined>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=RemoteAudioTrack.d.ts.map
|