livekit-client 2.22.3 → 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (272) hide show
  1. package/README.md +35 -0
  2. package/dist/livekit-client.e2ee.worker.js +1 -1
  3. package/dist/livekit-client.e2ee.worker.js.map +1 -1
  4. package/dist/livekit-client.e2ee.worker.mjs +71 -8
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +1746 -547
  7. package/dist/livekit-client.esm.mjs.map +1 -1
  8. package/dist/livekit-client.fm.worker.js +1 -1
  9. package/dist/livekit-client.fm.worker.js.map +1 -1
  10. package/dist/livekit-client.fm.worker.mjs +2 -1
  11. package/dist/livekit-client.fm.worker.mjs.map +1 -1
  12. package/dist/livekit-client.umd.js +1 -1
  13. package/dist/livekit-client.umd.js.map +1 -1
  14. package/dist/src/api/SignalClient.d.ts +4 -2
  15. package/dist/src/api/SignalClient.d.ts.map +1 -1
  16. package/dist/src/api/WebSocketStream.d.ts +1 -0
  17. package/dist/src/api/WebSocketStream.d.ts.map +1 -1
  18. package/dist/src/api/utils.d.ts +1 -1
  19. package/dist/src/api/utils.d.ts.map +1 -1
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  22. package/dist/src/e2ee/worker/naluUtils.d.ts +12 -1
  23. package/dist/src/e2ee/worker/naluUtils.d.ts.map +1 -1
  24. package/dist/src/index.d.ts +2 -2
  25. package/dist/src/index.d.ts.map +1 -1
  26. package/dist/src/options.d.ts +14 -0
  27. package/dist/src/options.d.ts.map +1 -1
  28. package/dist/src/room/DefaultReconnectPolicy.d.ts.map +1 -1
  29. package/dist/src/room/PCTransport.d.ts +100 -7
  30. package/dist/src/room/PCTransport.d.ts.map +1 -1
  31. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  32. package/dist/src/room/RTCEngine.d.ts +16 -0
  33. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  34. package/dist/src/room/Room.d.ts +54 -1
  35. package/dist/src/room/Room.d.ts.map +1 -1
  36. package/dist/src/room/data-channel/DataChannelManager.d.ts +9 -8
  37. package/dist/src/room/data-channel/DataChannelManager.d.ts.map +1 -1
  38. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts +25 -12
  39. package/dist/src/room/data-channel/FlowControlledDataChannel.d.ts.map +1 -1
  40. package/dist/src/room/data-channel/LossyDataChannel.d.ts.map +1 -1
  41. package/dist/src/room/data-channel/ReliableDataChannel.d.ts.map +1 -1
  42. package/dist/src/room/data-stream/incoming/IncomingDataStreamManager.d.ts.map +1 -1
  43. package/dist/src/room/defaults.d.ts.map +1 -1
  44. package/dist/src/room/errors.d.ts +18 -0
  45. package/dist/src/room/errors.d.ts.map +1 -1
  46. package/dist/src/room/events.d.ts +3 -2
  47. package/dist/src/room/events.d.ts.map +1 -1
  48. package/dist/src/room/participant/LocalParticipant.d.ts +4 -0
  49. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  50. package/dist/src/room/participant/Participant.d.ts +1 -1
  51. package/dist/src/room/participant/Participant.d.ts.map +1 -1
  52. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  53. package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
  54. package/dist/src/room/rpc/utils.d.ts.map +1 -1
  55. package/dist/src/room/track/LocalAudioTrack.d.ts +24 -1
  56. package/dist/src/room/track/LocalAudioTrack.d.ts.map +1 -1
  57. package/dist/src/room/track/LocalTrack.d.ts +18 -0
  58. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  59. package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
  60. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  61. package/dist/src/room/track/RemoteAudioTrack.d.ts +6 -0
  62. package/dist/src/room/track/RemoteAudioTrack.d.ts.map +1 -1
  63. package/dist/src/room/track/processor/types.d.ts +11 -0
  64. package/dist/src/room/track/processor/types.d.ts.map +1 -1
  65. package/dist/src/room/track/utils.d.ts +13 -0
  66. package/dist/src/room/track/utils.d.ts.map +1 -1
  67. package/dist/src/room/utils.d.ts +60 -1
  68. package/dist/src/room/utils.d.ts.map +1 -1
  69. package/dist/src/test/compressionStreamStubs.d.ts +12 -0
  70. package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
  71. package/dist/ts4.2/api/SignalClient.d.ts +187 -185
  72. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
  73. package/dist/ts4.2/api/WebSocketStream.d.ts +34 -33
  74. package/dist/ts4.2/api/utils.d.ts +9 -9
  75. package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
  76. package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
  77. package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
  78. package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
  79. package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
  80. package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
  81. package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
  82. package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
  83. package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
  84. package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
  85. package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -111
  86. package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
  87. package/dist/ts4.2/e2ee/constants.d.ts +21 -21
  88. package/dist/ts4.2/e2ee/errors.d.ts +12 -12
  89. package/dist/ts4.2/e2ee/events.d.ts +39 -39
  90. package/dist/ts4.2/e2ee/index.d.ts +6 -6
  91. package/dist/ts4.2/e2ee/types.d.ts +231 -231
  92. package/dist/ts4.2/e2ee/utils.d.ts +32 -32
  93. package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
  94. package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -21
  95. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -209
  96. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
  97. package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
  98. package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +39 -28
  99. package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
  100. package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
  101. package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
  102. package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
  103. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
  104. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
  105. package/dist/ts4.2/index.d.ts +76 -76
  106. package/dist/ts4.2/logger.d.ts +66 -66
  107. package/dist/ts4.2/options.d.ts +163 -149
  108. package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
  109. package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
  110. package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
  111. package/dist/ts4.2/room/PCTransport.d.ts +268 -175
  112. package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
  113. package/dist/ts4.2/room/RTCEngine.d.ts +277 -262
  114. package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
  115. package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
  116. package/dist/ts4.2/room/Room.d.ts +407 -365
  117. package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
  118. package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +63 -62
  119. package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +107 -95
  120. package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
  121. package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
  122. package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
  123. package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
  124. package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
  125. package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
  126. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
  127. package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
  128. package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
  129. package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
  130. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
  131. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
  132. package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
  133. package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
  134. package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
  135. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
  136. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
  137. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
  138. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
  139. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
  140. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
  141. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
  142. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
  143. package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
  144. package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
  145. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
  146. package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
  147. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
  148. package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
  149. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
  150. package/dist/ts4.2/room/data-track/types.d.ts +22 -22
  151. package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
  152. package/dist/ts4.2/room/debounce.d.ts +11 -11
  153. package/dist/ts4.2/room/defaults.d.ts +9 -9
  154. package/dist/ts4.2/room/errors.d.ts +180 -162
  155. package/dist/ts4.2/room/events.d.ts +638 -637
  156. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +291 -287
  157. package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
  158. package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
  159. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
  160. package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -53
  161. package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
  162. package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
  163. package/dist/ts4.2/room/rpc/index.d.ts +7 -7
  164. package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
  165. package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
  166. package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
  167. package/dist/ts4.2/room/stats.d.ts +71 -71
  168. package/dist/ts4.2/room/statsSummary.d.ts +13 -13
  169. package/dist/ts4.2/room/timers.d.ts +12 -12
  170. package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
  171. package/dist/ts4.2/room/token-source/types.d.ts +70 -70
  172. package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
  173. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
  174. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +62 -42
  175. package/dist/ts4.2/room/track/LocalTrack.d.ts +143 -125
  176. package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
  177. package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +109 -100
  178. package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +61 -55
  179. package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
  180. package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
  181. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
  182. package/dist/ts4.2/room/track/Track.d.ts +156 -166
  183. package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
  184. package/dist/ts4.2/room/track/create.d.ts +25 -25
  185. package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
  186. package/dist/ts4.2/room/track/options.d.ts +403 -403
  187. package/dist/ts4.2/room/track/processor/types.d.ts +42 -31
  188. package/dist/ts4.2/room/track/record.d.ts +13 -13
  189. package/dist/ts4.2/room/track/types.d.ts +28 -28
  190. package/dist/ts4.2/room/track/utils.d.ts +60 -47
  191. package/dist/ts4.2/room/types.d.ts +127 -127
  192. package/dist/ts4.2/room/utils.d.ts +273 -214
  193. package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
  194. package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
  195. package/dist/ts4.2/test/mocks.d.ts +12 -12
  196. package/dist/ts4.2/test/promiseState.d.ts +12 -12
  197. package/dist/ts4.2/test/signalToken.d.ts +26 -26
  198. package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
  199. package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
  200. package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
  201. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
  202. package/dist/ts4.2/utils/browserParser.d.ts +13 -13
  203. package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
  204. package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
  205. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
  206. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
  207. package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
  208. package/dist/ts4.2/utils/serializer.d.ts +48 -48
  209. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
  210. package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
  211. package/dist/ts4.2/version.d.ts +15 -15
  212. package/package.json +5 -4
  213. package/src/api/SignalClient.e2e.test.ts +1 -3
  214. package/src/api/SignalClient.test.ts +394 -10
  215. package/src/api/SignalClient.ts +132 -76
  216. package/src/api/WebSocketStream.test.ts +11 -0
  217. package/src/api/WebSocketStream.ts +22 -1
  218. package/src/api/utils.ts +1 -1
  219. package/src/e2ee/E2eeManager.test.ts +43 -0
  220. package/src/e2ee/E2eeManager.ts +6 -2
  221. package/src/e2ee/worker/FrameCryptor.test.ts +212 -90
  222. package/src/e2ee/worker/FrameCryptor.ts +21 -4
  223. package/src/e2ee/worker/naluUtils.test.ts +123 -0
  224. package/src/e2ee/worker/naluUtils.ts +57 -2
  225. package/src/index.ts +2 -0
  226. package/src/options.ts +16 -0
  227. package/src/room/DefaultReconnectPolicy.test.ts +58 -0
  228. package/src/room/DefaultReconnectPolicy.ts +14 -2
  229. package/src/room/PCTransport.test.ts +327 -9
  230. package/src/room/PCTransport.ts +339 -36
  231. package/src/room/PCTransportManager.ts +3 -1
  232. package/src/room/RTCEngine.test.ts +318 -2
  233. package/src/room/RTCEngine.ts +126 -12
  234. package/src/room/Room.test.ts +148 -6
  235. package/src/room/Room.ts +312 -80
  236. package/src/room/data-channel/DataChannelManager.test.ts +24 -7
  237. package/src/room/data-channel/DataChannelManager.ts +43 -38
  238. package/src/room/data-channel/FlowControlledDataChannel.test.ts +60 -18
  239. package/src/room/data-channel/FlowControlledDataChannel.ts +40 -22
  240. package/src/room/data-channel/LossyDataChannel.test.ts +38 -0
  241. package/src/room/data-channel/LossyDataChannel.ts +10 -1
  242. package/src/room/data-channel/ReliableDataChannel.test.ts +72 -0
  243. package/src/room/data-channel/ReliableDataChannel.ts +16 -5
  244. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +47 -20
  245. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +16 -5
  246. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
  247. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
  248. package/src/room/defaults.ts +1 -0
  249. package/src/room/errors.test.ts +36 -0
  250. package/src/room/errors.ts +27 -0
  251. package/src/room/events.ts +2 -1
  252. package/src/room/participant/LocalParticipant.test.ts +136 -1
  253. package/src/room/participant/LocalParticipant.ts +66 -17
  254. package/src/room/participant/Participant.ts +6 -3
  255. package/src/room/participant/publishUtils.ts +0 -19
  256. package/src/room/participant/restartOnDefaultAudioDevice.test.ts +177 -0
  257. package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
  258. package/src/room/rpc/client/RpcClientManager.ts +32 -15
  259. package/src/room/rpc/utils.test.ts +32 -0
  260. package/src/room/rpc/utils.ts +7 -0
  261. package/src/room/track/LocalAudioTrack.ts +101 -10
  262. package/src/room/track/LocalTrack.ts +87 -19
  263. package/src/room/track/LocalVideoTrack.ts +17 -3
  264. package/src/room/track/RemoteAudioTrack.ts +59 -14
  265. package/src/room/track/RemoteVideoTrack.test.ts +210 -0
  266. package/src/room/track/RemoteVideoTrack.ts +29 -3
  267. package/src/room/track/processor/types.ts +11 -0
  268. package/src/room/track/utils.test.ts +206 -2
  269. package/src/room/track/utils.ts +117 -5
  270. package/src/room/utils.test.ts +250 -0
  271. package/src/room/utils.ts +152 -19
  272. package/src/test/compressionStreamStubs.ts +53 -0
@@ -1,125 +1,143 @@
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 isStopped(): boolean;
45
+ get mediaStreamTrack(): MediaStreamTrack;
46
+ get isLocal(): boolean;
47
+ /**
48
+ * @internal
49
+ * returns mediaStreamTrack settings of the capturing mediastreamtrack source - ignoring processors
50
+ */
51
+ getSourceTrackSettings(): MediaTrackSettings;
52
+ private setMediaStreamTrack;
53
+ /**
54
+ * Hook invoked after the underlying MediaStreamTrack has been swapped and the processor has
55
+ * been restarted around it, so `processor.processedTrack` already holds the new track.
56
+ * Unlike `onSenderTrackSwapped` this also fires on the restart and unmute paths.
57
+ */
58
+ protected onMediaStreamTrackChanged(): Promise<void>;
59
+ waitForDimensions(timeout?: number): Promise<Track.Dimensions>;
60
+ setDeviceId(deviceId: ConstrainDOMString): Promise<boolean>;
61
+ abstract restartTrack(constraints?: unknown): Promise<void>;
62
+ /**
63
+ * @returns DeviceID of the device that is currently being used for this track
64
+ */
65
+ getDeviceId(normalize?: boolean): Promise<string | undefined>;
66
+ mute(): Promise<this>;
67
+ unmute(): Promise<this>;
68
+ replaceTrack(track: MediaStreamTrack, options?: ReplaceTrackOptions): Promise<typeof this>;
69
+ replaceTrack(track: MediaStreamTrack, userProvidedTrack?: boolean): Promise<typeof this>;
70
+ /**
71
+ * Hook invoked after the MediaStreamTrack on the sender has been swapped
72
+ * (via replaceTrack, setProcessor, or stopProcessor). Fires outside the
73
+ * trackChangeLock so subclasses can do asynchronous work such as polling
74
+ * for new dimensions without blocking other track operations.
75
+ */
76
+ protected onSenderTrackSwapped(): Promise<void>;
77
+ protected restart(constraints?: MediaTrackConstraints, isUnmuting?: boolean): Promise<this>;
78
+ protected setTrackMuted(muted: boolean): void;
79
+ protected get needsReAcquisition(): boolean;
80
+ protected handleAppVisibilityChanged(): Promise<void>;
81
+ private handleTrackMuteEvent;
82
+ private debouncedTrackMuteHandler;
83
+ private handleTrackUnmuteEvent;
84
+ private handleEnded;
85
+ stop(): void;
86
+ /**
87
+ * pauses publishing to the server without disabling the local MediaStreamTrack
88
+ * this is used to display a user's own video locally while pausing publishing to
89
+ * the server.
90
+ * this API is unsupported on Safari < 12 due to a bug
91
+ **/
92
+ pauseUpstream(): Promise<void>;
93
+ resumeUpstream(): Promise<void>;
94
+ /**
95
+ * Gets the RTCStatsReport for the LocalTrack's underlying RTCRtpSender
96
+ * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
97
+ *
98
+ * @returns Promise<RTCStatsReport> | undefined
99
+ */
100
+ getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
101
+ /**
102
+ * Sets a processor on this track.
103
+ * See https://github.com/livekit/track-processors-js for example usage
104
+ *
105
+ * The processor lives on the track, so stopping the track destroys it. Unpublishing and
106
+ * disconnecting both stop the track by default, which means a processor has to be set again on
107
+ * the track published after a reconnect. See {@link TrackProcessor} for the full lifecycle,
108
+ * including what `stopLocalTrackOnUnpublish: false` changes.
109
+ *
110
+ * @param processor
111
+ * @param showProcessedStreamLocally
112
+ * @returns
113
+ */
114
+ setProcessor(processor: TrackProcessor<TrackKind>, showProcessedStreamLocally?: boolean): Promise<void>;
115
+ /**
116
+ * Returns the processor currently set on this track, or `undefined` if there is none. A track
117
+ * that was stopped by an unpublish or a disconnect has none. See {@link TrackProcessor}.
118
+ */
119
+ getProcessor(): TrackProcessor<TrackKind, any> | undefined;
120
+ /**
121
+ * Stops the track processor
122
+ * See https://github.com/livekit/track-processors-js for example usage
123
+ *
124
+ * Only needed to remove a processor from a track that stays published. Unpublishing or
125
+ * disconnecting already destroys it. See {@link TrackProcessor}.
126
+ */
127
+ stopProcessor(keepElement?: boolean): Promise<void>;
128
+ /**
129
+ * @internal
130
+ * This method assumes the caller has acquired a trackChangeLock already.
131
+ * The public facing method for stopping the processor is `stopProcessor` and it wraps this method in the trackChangeLock.
132
+ */
133
+ protected internalStopProcessor(keepElement?: boolean): Promise<void>;
134
+ /** @internal */
135
+ startPreConnectBuffer(timeslice?: number): void;
136
+ /** @internal */
137
+ stopPreConnectBuffer(): void;
138
+ /** @internal */
139
+ getPreConnectBuffer(): ReadableStream<Uint8Array> | undefined;
140
+ getPreConnectBufferMimeType(): string | undefined;
141
+ protected abstract monitorSender(): void;
142
+ }
143
+ //# 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,100 +1,109 @@
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
- /**
80
- * @internal
81
- * Sets codecs that should be publishing, returns new codecs that have not yet
82
- * been published
83
- */
84
- setPublishingCodecs(codecs: SubscribedCodec[]): Promise<VideoCodec[]>;
85
- /**
86
- * @internal
87
- * Sets layers that should be publishing
88
- */
89
- setPublishingLayers(isSvc: boolean, qualities: SubscribedQuality[]): Promise<void>;
90
- /**
91
- * Designed for lower powered devices, reduces video publishing quality and disables simulcast.
92
- * @experimental
93
- */
94
- prioritizePerformance(): Promise<void>;
95
- protected monitorSender: () => Promise<void>;
96
- protected handleAppVisibilityChanged(): Promise<void>;
97
- }
98
- export declare function videoQualityForRid(rid: string): VideoQuality;
99
- export declare function videoLayersFromEncodings(width: number, height: number, encodings?: RTCRtpEncodingParameters[], svc?: boolean): VideoLayer[];
100
- //# sourceMappingURL=LocalVideoTrack.d.ts.map
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
+ /**
65
+ * Sets a processor on this track, and wires its processed track into the simulcast codecs.
66
+ *
67
+ * The processor is destroyed when the track is stopped, which unpublishing and disconnecting
68
+ * both do by default, so it has to be set again after reconnecting. See {@link TrackProcessor}
69
+ * for the full lifecycle.
70
+ */
71
+ setProcessor(processor: TrackProcessor<Track.Kind.Video>, showProcessedStreamLocally?: boolean): Promise<void>;
72
+ setDegradationPreference(preference: RTCDegradationPreference): Promise<void>;
73
+ /**
74
+ * Degradation preference is a property of the sender, not of the track, so every sender
75
+ * publishing this track needs it applied separately. A backup codec publishes over its
76
+ * own sender, which would otherwise let the browser resolve a preference implicitly and
77
+ * diverge from the primary encoder.
78
+ *
79
+ * Callers apply this sequentially rather than concurrently: `setParameters` is only valid
80
+ * against the parameters most recently returned by `getParameters`, which is why this file
81
+ * serializes other sender parameter updates through `senderLock`.
82
+ */
83
+ private applyDegradationPreference;
84
+ addSimulcastTrack(codec: VideoCodec, encodings?: RTCRtpEncodingParameters[]): SimulcastTrackInfo | undefined;
85
+ setSimulcastTrackSender(codec: VideoCodec, sender: RTCRtpSender): Promise<void>;
86
+ /** @interal */
87
+ refreshSubscribedCodecs(): Promise<void | ("vp8" | "h264" | "vp9" | "av1" | "h265")[]>;
88
+ /**
89
+ * @internal
90
+ * Sets codecs that should be publishing, returns new codecs that have not yet
91
+ * been published
92
+ */
93
+ setPublishingCodecs(codecs: SubscribedCodec[]): Promise<VideoCodec[]>;
94
+ /**
95
+ * @internal
96
+ * Sets layers that should be publishing
97
+ */
98
+ setPublishingLayers(isSvc: boolean, qualities: SubscribedQuality[]): Promise<void>;
99
+ /**
100
+ * Designed for lower powered devices, reduces video publishing quality and disables simulcast.
101
+ * @experimental
102
+ */
103
+ prioritizePerformance(): Promise<void>;
104
+ protected monitorSender: () => Promise<void>;
105
+ protected handleAppVisibilityChanged(): Promise<void>;
106
+ }
107
+ export declare function videoQualityForRid(rid: string): VideoQuality;
108
+ export declare function videoLayersFromEncodings(width: number, height: number, encodings?: RTCRtpEncodingParameters[], svc?: boolean): VideoLayer[];
109
+ //# sourceMappingURL=LocalVideoTrack.d.ts.map