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.
Files changed (245) 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 +488 -438
  5. package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
  6. package/dist/livekit-client.esm.mjs +954 -301
  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 +10 -2
  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.map +1 -1
  17. package/dist/src/api/utils.d.ts +1 -0
  18. package/dist/src/api/utils.d.ts.map +1 -1
  19. package/dist/src/e2ee/E2eeManager.d.ts +26 -0
  20. package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
  21. package/dist/src/e2ee/types.d.ts +15 -1
  22. package/dist/src/e2ee/types.d.ts.map +1 -1
  23. package/dist/src/e2ee/worker/DataCryptor.d.ts.map +1 -1
  24. package/dist/src/e2ee/worker/ErrorRateLimiter.d.ts +21 -0
  25. package/dist/src/e2ee/worker/ErrorRateLimiter.d.ts.map +1 -0
  26. package/dist/src/e2ee/worker/FrameCryptor.d.ts +1 -18
  27. package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
  28. package/dist/src/logger.d.ts +4 -0
  29. package/dist/src/logger.d.ts.map +1 -1
  30. package/dist/src/options.d.ts +14 -0
  31. package/dist/src/options.d.ts.map +1 -1
  32. package/dist/src/room/PCTransport.d.ts +78 -7
  33. package/dist/src/room/PCTransport.d.ts.map +1 -1
  34. package/dist/src/room/PCTransportManager.d.ts.map +1 -1
  35. package/dist/src/room/RTCEngine.d.ts +9 -0
  36. package/dist/src/room/RTCEngine.d.ts.map +1 -1
  37. package/dist/src/room/Room.d.ts +1 -1
  38. package/dist/src/room/Room.d.ts.map +1 -1
  39. package/dist/src/room/defaults.d.ts.map +1 -1
  40. package/dist/src/room/errors.d.ts +18 -0
  41. package/dist/src/room/errors.d.ts.map +1 -1
  42. package/dist/src/room/events.d.ts +3 -2
  43. package/dist/src/room/events.d.ts.map +1 -1
  44. package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
  45. package/dist/src/room/participant/publishUtils.d.ts +16 -0
  46. package/dist/src/room/participant/publishUtils.d.ts.map +1 -1
  47. package/dist/src/room/rpc/client/RpcClientManager.d.ts.map +1 -1
  48. package/dist/src/room/track/LocalTrack.d.ts.map +1 -1
  49. package/dist/src/room/track/LocalVideoTrack.d.ts +9 -0
  50. package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
  51. package/dist/src/room/track/options.d.ts +1 -1
  52. package/dist/src/room/track/utils.d.ts +13 -0
  53. package/dist/src/room/track/utils.d.ts.map +1 -1
  54. package/dist/src/room/utils.d.ts +66 -0
  55. package/dist/src/room/utils.d.ts.map +1 -1
  56. package/dist/src/test/compressionStreamStubs.d.ts +12 -0
  57. package/dist/src/test/compressionStreamStubs.d.ts.map +1 -0
  58. package/dist/ts4.2/api/SignalClient.d.ts +187 -185
  59. package/dist/ts4.2/api/SignalClientStateMachine.d.ts +85 -85
  60. package/dist/ts4.2/api/WebSocketStream.d.ts +33 -33
  61. package/dist/ts4.2/api/utils.d.ts +9 -8
  62. package/dist/ts4.2/connectionHelper/ConnectionCheck.d.ts +30 -30
  63. package/dist/ts4.2/connectionHelper/checks/Checker.d.ts +62 -62
  64. package/dist/ts4.2/connectionHelper/checks/cloudRegion.d.ts +18 -18
  65. package/dist/ts4.2/connectionHelper/checks/connectionProtocol.d.ts +20 -20
  66. package/dist/ts4.2/connectionHelper/checks/publishAudio.d.ts +6 -6
  67. package/dist/ts4.2/connectionHelper/checks/publishVideo.d.ts +7 -7
  68. package/dist/ts4.2/connectionHelper/checks/reconnect.d.ts +6 -6
  69. package/dist/ts4.2/connectionHelper/checks/turn.d.ts +6 -6
  70. package/dist/ts4.2/connectionHelper/checks/webrtc.d.ts +6 -6
  71. package/dist/ts4.2/connectionHelper/checks/websocket.d.ts +6 -6
  72. package/dist/ts4.2/e2ee/E2eeManager.d.ts +111 -85
  73. package/dist/ts4.2/e2ee/KeyProvider.d.ts +54 -54
  74. package/dist/ts4.2/e2ee/constants.d.ts +21 -21
  75. package/dist/ts4.2/e2ee/errors.d.ts +12 -12
  76. package/dist/ts4.2/e2ee/events.d.ts +39 -39
  77. package/dist/ts4.2/e2ee/index.d.ts +6 -6
  78. package/dist/ts4.2/e2ee/types.d.ts +231 -217
  79. package/dist/ts4.2/e2ee/utils.d.ts +32 -32
  80. package/dist/ts4.2/e2ee/worker/DataCryptor.d.ts +16 -16
  81. package/dist/ts4.2/e2ee/worker/ErrorRateLimiter.d.ts +21 -0
  82. package/dist/ts4.2/e2ee/worker/FrameCryptor.d.ts +209 -226
  83. package/dist/ts4.2/e2ee/worker/ParticipantKeyHandler.d.ts +81 -84
  84. package/dist/ts4.2/e2ee/worker/e2ee.worker.d.ts +2 -2
  85. package/dist/ts4.2/e2ee/worker/naluUtils.d.ts +28 -28
  86. package/dist/ts4.2/e2ee/worker/sifPayload.d.ts +23 -23
  87. package/dist/ts4.2/frameMetadata/FrameMetadataManager.d.ts +53 -53
  88. package/dist/ts4.2/frameMetadata/frameMetadata.d.ts +33 -33
  89. package/dist/ts4.2/frameMetadata/types.d.ts +62 -62
  90. package/dist/ts4.2/frameMetadata/utils.d.ts +9 -9
  91. package/dist/ts4.2/frameMetadata/worker/frameMetadata.worker.d.ts +2 -2
  92. package/dist/ts4.2/index.d.ts +76 -76
  93. package/dist/ts4.2/logger.d.ts +66 -62
  94. package/dist/ts4.2/options.d.ts +163 -149
  95. package/dist/ts4.2/room/BackOffStrategy.d.ts +27 -27
  96. package/dist/ts4.2/room/DefaultReconnectPolicy.d.ts +8 -8
  97. package/dist/ts4.2/room/DeviceManager.d.ts +12 -12
  98. package/dist/ts4.2/room/PCTransport.d.ts +246 -175
  99. package/dist/ts4.2/room/PCTransportManager.d.ts +77 -77
  100. package/dist/ts4.2/room/RTCEngine.d.ts +269 -261
  101. package/dist/ts4.2/room/ReconnectPolicy.d.ts +24 -24
  102. package/dist/ts4.2/room/RegionUrlProvider.d.ts +36 -36
  103. package/dist/ts4.2/room/Room.d.ts +354 -365
  104. package/dist/ts4.2/room/attribute-typings.d.ts +35 -35
  105. package/dist/ts4.2/room/data-channel/DataChannelManager.d.ts +62 -62
  106. package/dist/ts4.2/room/data-channel/FlowControlledDataChannel.d.ts +94 -95
  107. package/dist/ts4.2/room/data-channel/LossyDataChannel.d.ts +41 -41
  108. package/dist/ts4.2/room/data-channel/ReliableDataChannel.d.ts +57 -57
  109. package/dist/ts4.2/room/data-channel/types.d.ts +12 -12
  110. package/dist/ts4.2/room/data-stream/compression.d.ts +49 -49
  111. package/dist/ts4.2/room/data-stream/constants.d.ts +18 -18
  112. package/dist/ts4.2/room/data-stream/incoming/IncomingDataStreamManager.d.ts +29 -29
  113. package/dist/ts4.2/room/data-stream/incoming/StreamReader.d.ts +80 -80
  114. package/dist/ts4.2/room/data-stream/outgoing/OutgoingDataStreamManager.d.ts +73 -73
  115. package/dist/ts4.2/room/data-stream/outgoing/StreamWriter.d.ts +16 -16
  116. package/dist/ts4.2/room/data-stream/outgoing/header-utils.d.ts +18 -18
  117. package/dist/ts4.2/room/data-track/LocalDataTrack.d.ts +79 -80
  118. package/dist/ts4.2/room/data-track/RemoteDataTrack.d.ts +50 -50
  119. package/dist/ts4.2/room/data-track/depacketizer.d.ts +59 -59
  120. package/dist/ts4.2/room/data-track/frame.d.ts +22 -22
  121. package/dist/ts4.2/room/data-track/handle.d.ts +27 -27
  122. package/dist/ts4.2/room/data-track/incoming/IncomingDataTrackManager.d.ts +124 -124
  123. package/dist/ts4.2/room/data-track/incoming/errors.d.ts +24 -24
  124. package/dist/ts4.2/room/data-track/incoming/pipeline.d.ts +41 -41
  125. package/dist/ts4.2/room/data-track/incoming/types.d.ts +20 -20
  126. package/dist/ts4.2/room/data-track/outgoing/OutgoingDataTrackManager.d.ts +126 -126
  127. package/dist/ts4.2/room/data-track/outgoing/errors.d.ts +74 -74
  128. package/dist/ts4.2/room/data-track/outgoing/pipeline.d.ts +23 -23
  129. package/dist/ts4.2/room/data-track/outgoing/types.d.ts +48 -48
  130. package/dist/ts4.2/room/data-track/packet/constants.d.ts +20 -20
  131. package/dist/ts4.2/room/data-track/packet/errors.d.ts +40 -40
  132. package/dist/ts4.2/room/data-track/packet/extensions.d.ts +69 -69
  133. package/dist/ts4.2/room/data-track/packet/index.d.ts +98 -98
  134. package/dist/ts4.2/room/data-track/packet/serializable.d.ts +13 -13
  135. package/dist/ts4.2/room/data-track/packetizer.d.ts +43 -43
  136. package/dist/ts4.2/room/data-track/track-interfaces.d.ts +23 -23
  137. package/dist/ts4.2/room/data-track/types.d.ts +22 -22
  138. package/dist/ts4.2/room/data-track/utils.d.ts +60 -60
  139. package/dist/ts4.2/room/debounce.d.ts +11 -11
  140. package/dist/ts4.2/room/defaults.d.ts +9 -9
  141. package/dist/ts4.2/room/errors.d.ts +180 -162
  142. package/dist/ts4.2/room/events.d.ts +638 -637
  143. package/dist/ts4.2/room/participant/LocalParticipant.d.ts +287 -287
  144. package/dist/ts4.2/room/participant/Participant.d.ts +142 -144
  145. package/dist/ts4.2/room/participant/ParticipantTrackPermission.d.ts +26 -26
  146. package/dist/ts4.2/room/participant/RemoteParticipant.d.ts +85 -86
  147. package/dist/ts4.2/room/participant/publishUtils.d.ts +53 -37
  148. package/dist/ts4.2/room/rpc/client/RpcClientManager.d.ts +43 -43
  149. package/dist/ts4.2/room/rpc/client/events.d.ts +8 -8
  150. package/dist/ts4.2/room/rpc/index.d.ts +7 -7
  151. package/dist/ts4.2/room/rpc/server/RpcServerManager.d.ts +44 -44
  152. package/dist/ts4.2/room/rpc/server/events.d.ts +8 -8
  153. package/dist/ts4.2/room/rpc/utils.d.ts +131 -131
  154. package/dist/ts4.2/room/stats.d.ts +71 -71
  155. package/dist/ts4.2/room/statsSummary.d.ts +13 -13
  156. package/dist/ts4.2/room/timers.d.ts +12 -12
  157. package/dist/ts4.2/room/token-source/TokenSource.d.ts +82 -82
  158. package/dist/ts4.2/room/token-source/types.d.ts +70 -70
  159. package/dist/ts4.2/room/token-source/utils.d.ts +8 -8
  160. package/dist/ts4.2/room/track/FrameMetadataExtractor.d.ts +19 -19
  161. package/dist/ts4.2/room/track/LocalAudioTrack.d.ts +39 -42
  162. package/dist/ts4.2/room/track/LocalTrack.d.ts +125 -125
  163. package/dist/ts4.2/room/track/LocalTrackPublication.d.ts +42 -42
  164. package/dist/ts4.2/room/track/LocalVideoTrack.d.ts +102 -93
  165. package/dist/ts4.2/room/track/RemoteAudioTrack.d.ts +55 -55
  166. package/dist/ts4.2/room/track/RemoteTrack.d.ts +38 -38
  167. package/dist/ts4.2/room/track/RemoteTrackPublication.d.ts +72 -75
  168. package/dist/ts4.2/room/track/RemoteVideoTrack.d.ts +73 -76
  169. package/dist/ts4.2/room/track/Track.d.ts +156 -166
  170. package/dist/ts4.2/room/track/TrackPublication.d.ts +75 -81
  171. package/dist/ts4.2/room/track/create.d.ts +25 -25
  172. package/dist/ts4.2/room/track/facingMode.d.ts +41 -41
  173. package/dist/ts4.2/room/track/options.d.ts +403 -403
  174. package/dist/ts4.2/room/track/processor/types.d.ts +31 -31
  175. package/dist/ts4.2/room/track/record.d.ts +13 -13
  176. package/dist/ts4.2/room/track/types.d.ts +28 -28
  177. package/dist/ts4.2/room/track/utils.d.ts +60 -47
  178. package/dist/ts4.2/room/types.d.ts +127 -127
  179. package/dist/ts4.2/room/utils.d.ts +246 -180
  180. package/dist/ts4.2/test/MockMediaStreamTrack.d.ts +26 -26
  181. package/dist/ts4.2/test/compressionStreamStubs.d.ts +12 -0
  182. package/dist/ts4.2/test/mocks.d.ts +12 -12
  183. package/dist/ts4.2/test/promiseState.d.ts +12 -12
  184. package/dist/ts4.2/test/signalToken.d.ts +26 -26
  185. package/dist/ts4.2/type-polyfills/non-shared-typed-arrays.d.ts +2 -2
  186. package/dist/ts4.2/utils/AsyncQueue.d.ts +23 -23
  187. package/dist/ts4.2/utils/TypedPromise.d.ts +17 -17
  188. package/dist/ts4.2/utils/abort-signal-polyfill.d.ts +13 -13
  189. package/dist/ts4.2/utils/browserParser.d.ts +13 -13
  190. package/dist/ts4.2/utils/camelToSnakeCase.d.ts +8 -8
  191. package/dist/ts4.2/utils/cloneDeep.d.ts +2 -2
  192. package/dist/ts4.2/utils/dataPacketBuffer.d.ts +34 -34
  193. package/dist/ts4.2/utils/deferrable-map.d.ts +32 -32
  194. package/dist/ts4.2/utils/machineInspector.d.ts +54 -54
  195. package/dist/ts4.2/utils/serializer.d.ts +48 -48
  196. package/dist/ts4.2/utils/subscribeToEvents.d.ts +15 -15
  197. package/dist/ts4.2/utils/ttlmap.d.ts +20 -20
  198. package/dist/ts4.2/version.d.ts +15 -15
  199. package/package.json +5 -4
  200. package/src/api/SignalClient.e2e.test.ts +1 -3
  201. package/src/api/SignalClient.test.ts +160 -10
  202. package/src/api/SignalClient.ts +75 -54
  203. package/src/api/WebSocketStream.ts +3 -8
  204. package/src/api/utils.ts +10 -0
  205. package/src/e2ee/E2eeManager.test.ts +196 -0
  206. package/src/e2ee/E2eeManager.ts +114 -19
  207. package/src/e2ee/types.ts +19 -1
  208. package/src/e2ee/worker/DataCryptor.ts +2 -1
  209. package/src/e2ee/worker/ErrorRateLimiter.test.ts +53 -0
  210. package/src/e2ee/worker/ErrorRateLimiter.ts +52 -0
  211. package/src/e2ee/worker/FrameCryptor.ts +20 -70
  212. package/src/e2ee/worker/e2ee.worker.ts +34 -11
  213. package/src/logger.ts +22 -0
  214. package/src/options.ts +16 -0
  215. package/src/room/PCTransport.test.ts +183 -7
  216. package/src/room/PCTransport.ts +197 -36
  217. package/src/room/PCTransportManager.ts +3 -1
  218. package/src/room/RTCEngine.test.ts +84 -0
  219. package/src/room/RTCEngine.ts +52 -12
  220. package/src/room/Room.test.ts +32 -6
  221. package/src/room/Room.ts +27 -7
  222. package/src/room/data-stream/incoming/IncomingDataStreamManager.test.ts +16 -20
  223. package/src/room/data-stream/incoming/IncomingDataStreamManager.ts +5 -5
  224. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.test.ts +60 -39
  225. package/src/room/data-stream/outgoing/OutgoingDataStreamManager.ts +4 -4
  226. package/src/room/defaults.ts +1 -0
  227. package/src/room/errors.test.ts +36 -0
  228. package/src/room/errors.ts +27 -0
  229. package/src/room/events.ts +2 -1
  230. package/src/room/participant/LocalParticipant.ts +30 -14
  231. package/src/room/participant/publishUtils.test.ts +133 -0
  232. package/src/room/participant/publishUtils.ts +54 -38
  233. package/src/room/rpc/client/RpcClientManager.test.ts +51 -0
  234. package/src/room/rpc/client/RpcClientManager.ts +32 -15
  235. package/src/room/track/LocalTrack.ts +18 -7
  236. package/src/room/track/LocalVideoTrack.ts +25 -8
  237. package/src/room/track/RemoteAudioTrack.ts +3 -3
  238. package/src/room/track/RemoteVideoTrack.test.ts +210 -0
  239. package/src/room/track/RemoteVideoTrack.ts +29 -3
  240. package/src/room/track/options.ts +1 -1
  241. package/src/room/track/utils.test.ts +201 -2
  242. package/src/room/track/utils.ts +88 -0
  243. package/src/room/utils.test.ts +211 -0
  244. package/src/room/utils.ts +129 -0
  245. package/src/test/compressionStreamStubs.ts +53 -0
@@ -1,38 +1,38 @@
1
- import type { LoggerOptions } from '../types';
2
- import { Track } from './Track';
3
- export default abstract class RemoteTrack<TrackKind extends Track.Kind = Track.Kind> extends Track<TrackKind> {
4
- /** @internal */
5
- receiver: RTCRtpReceiver | undefined;
6
- constructor(mediaTrack: MediaStreamTrack, sid: string, kind: TrackKind, receiver: RTCRtpReceiver, loggerOptions?: LoggerOptions);
7
- get isLocal(): boolean;
8
- /** @internal */
9
- setMuted(muted: boolean): void;
10
- /** @internal */
11
- setMediaStream(stream: MediaStream): void;
12
- start(): void;
13
- stop(): void;
14
- /**
15
- * Gets the RTCStatsReport for the RemoteTrack's underlying RTCRtpReceiver
16
- * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
17
- *
18
- * @returns Promise<RTCStatsReport> | undefined
19
- */
20
- getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
21
- /**
22
- * Allows to set a playout delay (in seconds) for this track.
23
- * A higher value allows for more buffering of the track in the browser
24
- * and will result in a delay of media being played back of `delayInSeconds`
25
- */
26
- setPlayoutDelay(delayInSeconds: number): void;
27
- /**
28
- * Returns the current playout delay (in seconds) of this track.
29
- */
30
- getPlayoutDelay(): number;
31
- startMonitor(): void;
32
- stopMonitor(): void;
33
- protected abstract monitorReceiver(): void;
34
- private timeSyncLoop;
35
- private onTimeSyncListenerAdded;
36
- registerTimeSyncUpdate(): void;
37
- }
38
- //# sourceMappingURL=RemoteTrack.d.ts.map
1
+ import type { LoggerOptions } from '../types';
2
+ import { Track } from './Track';
3
+ export default abstract class RemoteTrack<TrackKind extends Track.Kind = Track.Kind> extends Track<TrackKind> {
4
+ /** @internal */
5
+ receiver: RTCRtpReceiver | undefined;
6
+ constructor(mediaTrack: MediaStreamTrack, sid: string, kind: TrackKind, receiver: RTCRtpReceiver, loggerOptions?: LoggerOptions);
7
+ get isLocal(): boolean;
8
+ /** @internal */
9
+ setMuted(muted: boolean): void;
10
+ /** @internal */
11
+ setMediaStream(stream: MediaStream): void;
12
+ start(): void;
13
+ stop(): void;
14
+ /**
15
+ * Gets the RTCStatsReport for the RemoteTrack's underlying RTCRtpReceiver
16
+ * See https://developer.mozilla.org/en-US/docs/Web/API/RTCStatsReport
17
+ *
18
+ * @returns Promise<RTCStatsReport> | undefined
19
+ */
20
+ getRTCStatsReport(): Promise<RTCStatsReport | undefined>;
21
+ /**
22
+ * Allows to set a playout delay (in seconds) for this track.
23
+ * A higher value allows for more buffering of the track in the browser
24
+ * and will result in a delay of media being played back of `delayInSeconds`
25
+ */
26
+ setPlayoutDelay(delayInSeconds: number): void;
27
+ /**
28
+ * Returns the current playout delay (in seconds) of this track.
29
+ */
30
+ getPlayoutDelay(): number;
31
+ startMonitor(): void;
32
+ stopMonitor(): void;
33
+ protected abstract monitorReceiver(): void;
34
+ private timeSyncLoop;
35
+ private onTimeSyncListenerAdded;
36
+ registerTimeSyncUpdate(): void;
37
+ }
38
+ //# sourceMappingURL=RemoteTrack.d.ts.map
@@ -1,75 +1,72 @@
1
- import { SubscriptionError, TrackInfo } from '@livekit/protocol';
2
- import type { LoggerOptions } from '../types';
3
- import type RemoteTrack from './RemoteTrack';
4
- import { Track, VideoQuality } from './Track';
5
- import { TrackPublication } from './TrackPublication';
6
- export default class RemoteTrackPublication extends TrackPublication {
7
- track?: RemoteTrack;
8
- /** @internal */
9
- protected allowed: boolean;
10
- protected subscribed?: boolean;
11
- protected requestedDisabled: boolean | undefined;
12
- protected visible: boolean;
13
- protected videoDimensionsAdaptiveStream?: Track.Dimensions;
14
- protected requestedVideoDimensions?: Track.Dimensions;
15
- protected requestedMaxQuality?: VideoQuality;
16
- protected fps?: number;
17
- protected subscriptionError?: SubscriptionError;
18
- constructor(kind: Track.Kind, ti: TrackInfo, autoSubscribe: boolean | undefined, loggerOptions?: LoggerOptions);
19
- /**
20
- * Subscribe or unsubscribe to this remote track
21
- * @param subscribed true to subscribe to a track, false to unsubscribe
22
- */
23
- setSubscribed(subscribed: boolean): void;
24
- get subscriptionStatus(): TrackPublication.SubscriptionStatus;
25
- get permissionStatus(): TrackPublication.PermissionStatus;
26
- /**
27
- * Returns true if track is subscribed, and ready for playback
28
- */
29
- get isSubscribed(): boolean;
30
- get isDesired(): boolean;
31
- get isEnabled(): boolean;
32
- get isLocal(): boolean;
33
- /**
34
- * disable server from sending down data for this track. this is useful when
35
- * the participant is off screen, you may disable streaming down their video
36
- * to reduce bandwidth requirements
37
- * @param enabled
38
- */
39
- setEnabled(enabled: boolean): void;
40
- /**
41
- * for tracks that support simulcasting, adjust subscribed quality
42
- *
43
- * This indicates the highest quality the client can accept. if network
44
- * bandwidth does not allow, server will automatically reduce quality to
45
- * optimize for uninterrupted video
46
- */
47
- setVideoQuality(quality: VideoQuality): void;
48
- /**
49
- * Explicitly set the video dimensions for this track.
50
- *
51
- * This will take precedence over adaptive stream dimensions.
52
- *
53
- * @param dimensions The video dimensions to set.
54
- */
55
- setVideoDimensions(dimensions: Track.Dimensions): void;
56
- setVideoFPS(fps: number): void;
57
- get videoQuality(): VideoQuality | undefined;
58
- /** @internal */
59
- setTrack(track?: RemoteTrack): void;
60
- /** @internal */
61
- setAllowed(allowed: boolean): void;
62
- /** @internal */
63
- setSubscriptionError(error: SubscriptionError): void;
64
- /** @internal */
65
- updateInfo(info: TrackInfo): void;
66
- private emitSubscriptionUpdateIfChanged;
67
- private emitPermissionUpdateIfChanged;
68
- private isManualOperationAllowed;
69
- protected handleEnded: (track: RemoteTrack) => void;
70
- protected get isAdaptiveStream(): boolean;
71
- protected handleVisibilityChange: (visible: boolean) => void;
72
- protected handleVideoDimensionsChange: (dimensions: Track.Dimensions) => void;
73
- emitTrackUpdate(): void;
74
- }
75
- //# sourceMappingURL=RemoteTrackPublication.d.ts.map
1
+ import { SubscriptionError, TrackInfo } from '@livekit/protocol';
2
+ import type { LoggerOptions } from '../types';
3
+ import type RemoteTrack from './RemoteTrack';
4
+ import { Track, VideoQuality } from './Track';
5
+ import { TrackPublication } from './TrackPublication';
6
+ export default class RemoteTrackPublication extends TrackPublication {
7
+ track?: RemoteTrack;
8
+ /** @internal */
9
+ protected allowed: boolean;
10
+ protected subscribed?: boolean;
11
+ protected requestedDisabled: boolean | undefined;
12
+ protected visible: boolean;
13
+ protected videoDimensionsAdaptiveStream?: Track.Dimensions;
14
+ protected requestedVideoDimensions?: Track.Dimensions;
15
+ protected requestedMaxQuality?: VideoQuality;
16
+ protected fps?: number;
17
+ protected subscriptionError?: SubscriptionError;
18
+ constructor(kind: Track.Kind, ti: TrackInfo, autoSubscribe: boolean | undefined, loggerOptions?: LoggerOptions);
19
+ /**
20
+ * Subscribe or unsubscribe to this remote track
21
+ * @param subscribed true to subscribe to a track, false to unsubscribe
22
+ */
23
+ setSubscribed(subscribed: boolean): void;
24
+ get subscriptionStatus(): TrackPublication.SubscriptionStatus;
25
+ get permissionStatus(): TrackPublication.PermissionStatus;
26
+ get isSubscribed(): boolean;
27
+ get isDesired(): boolean;
28
+ get isEnabled(): boolean;
29
+ get isLocal(): boolean;
30
+ /**
31
+ * disable server from sending down data for this track. this is useful when
32
+ * the participant is off screen, you may disable streaming down their video
33
+ * to reduce bandwidth requirements
34
+ * @param enabled
35
+ */
36
+ setEnabled(enabled: boolean): void;
37
+ /**
38
+ * for tracks that support simulcasting, adjust subscribed quality
39
+ *
40
+ * This indicates the highest quality the client can accept. if network
41
+ * bandwidth does not allow, server will automatically reduce quality to
42
+ * optimize for uninterrupted video
43
+ */
44
+ setVideoQuality(quality: VideoQuality): void;
45
+ /**
46
+ * Explicitly set the video dimensions for this track.
47
+ *
48
+ * This will take precedence over adaptive stream dimensions.
49
+ *
50
+ * @param dimensions The video dimensions to set.
51
+ */
52
+ setVideoDimensions(dimensions: Track.Dimensions): void;
53
+ setVideoFPS(fps: number): void;
54
+ get videoQuality(): (VideoQuality | undefined);
55
+ /** @internal */
56
+ setTrack(track?: RemoteTrack): void;
57
+ /** @internal */
58
+ setAllowed(allowed: boolean): void;
59
+ /** @internal */
60
+ setSubscriptionError(error: SubscriptionError): void;
61
+ /** @internal */
62
+ updateInfo(info: TrackInfo): void;
63
+ private emitSubscriptionUpdateIfChanged;
64
+ private emitPermissionUpdateIfChanged;
65
+ private isManualOperationAllowed;
66
+ protected handleEnded: (track: RemoteTrack) => void;
67
+ protected get isAdaptiveStream(): boolean;
68
+ protected handleVisibilityChange: (visible: boolean) => void;
69
+ protected handleVideoDimensionsChange: (dimensions: Track.Dimensions) => void;
70
+ emitTrackUpdate(): void;
71
+ }
72
+ //# sourceMappingURL=RemoteTrackPublication.d.ts.map
@@ -1,76 +1,73 @@
1
- import type { FrameMetadata } from '../../frameMetadata/types';
2
- import type { VideoReceiverStats } from '../stats';
3
- import type { LoggerOptions } from '../types';
4
- import type { FrameMetadataExtractor } from './FrameMetadataExtractor';
5
- import RemoteTrack from './RemoteTrack';
6
- import { Track } from './Track';
7
- import type { AdaptiveStreamSettings } from './types';
8
- export default class RemoteVideoTrack extends RemoteTrack<Track.Kind.Video> {
9
- private prevStats?;
10
- private elementInfos;
11
- private adaptiveStreamSettings?;
12
- private lastVisible?;
13
- private lastDimensions?;
14
- /** @internal */
15
- frameMetadataExtractor?: FrameMetadataExtractor;
16
- constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, adaptiveStreamSettings?: AdaptiveStreamSettings, loggerOptions?: LoggerOptions);
17
- get isAdaptiveStream(): boolean;
18
- /**
19
- * Look up frame-level metadata for a given RTP timestamp.
20
- * Use with the `TrackEvent.TimeSyncUpdate` event to correlate displayed frames
21
- * with their capture-time metadata.
22
- *
23
- * Requires the room to be configured with the `frameMetadata` worker option
24
- * and the publishing track to have frame metadata features enabled.
25
- *
26
- */
27
- lookupFrameMetadata({ rtpTimestamp }: {
28
- rtpTimestamp: number;
29
- }): FrameMetadata | undefined;
30
- setStreamState(value: Track.StreamState): void;
31
- /**
32
- * Note: When using adaptiveStream, you need to use remoteVideoTrack.attach() to add the track to a HTMLVideoElement, otherwise your video tracks might never start
33
- */
34
- get mediaStreamTrack(): MediaStreamTrack;
35
- /** @internal */
36
- setMuted(muted: boolean): void;
37
- attach(): HTMLMediaElement;
38
- attach(element: HTMLMediaElement): HTMLMediaElement;
39
- /**
40
- * Observe an ElementInfo for changes when adaptive streaming.
41
- * @param elementInfo
42
- * @internal
43
- */
44
- observeElementInfo(elementInfo: ElementInfo): void;
45
- /**
46
- * Stop observing an ElementInfo for changes.
47
- * @param elementInfo
48
- * @internal
49
- */
50
- stopObservingElementInfo(elementInfo: ElementInfo): void;
51
- detach(): HTMLMediaElement[];
52
- detach(element: HTMLMediaElement): HTMLMediaElement;
53
- /** @internal */
54
- getDecoderImplementation(): string | undefined;
55
- protected monitorReceiver: () => Promise<void>;
56
- getReceiverStats(): Promise<VideoReceiverStats | undefined>;
57
- private stopObservingElement;
58
- protected handleAppVisibilityChanged(): Promise<void>;
59
- private readonly debouncedHandleResize;
60
- private updateVisibility;
61
- private updateDimensions;
62
- private getPixelDensity;
63
- }
64
- export interface ElementInfo {
65
- element: object;
66
- width(): number;
67
- height(): number;
68
- visible: boolean;
69
- pictureInPicture: boolean;
70
- visibilityChangedAt: number | undefined;
71
- handleResize?: () => void;
72
- handleVisibilityChanged?: () => void;
73
- observe(): void;
74
- stopObserving(): void;
75
- }
76
- //# sourceMappingURL=RemoteVideoTrack.d.ts.map
1
+ import type { FrameMetadata } from '../../frameMetadata/types';
2
+ import type { VideoReceiverStats } from '../stats';
3
+ import type { LoggerOptions } from '../types';
4
+ import type { FrameMetadataExtractor } from './FrameMetadataExtractor';
5
+ import RemoteTrack from './RemoteTrack';
6
+ import { Track } from './Track';
7
+ import type { AdaptiveStreamSettings } from './types';
8
+ export default class RemoteVideoTrack extends RemoteTrack<Track.Kind.Video> {
9
+ private prevStats?;
10
+ private elementInfos;
11
+ private adaptiveStreamSettings?;
12
+ private lastVisible?;
13
+ private lastDimensions?;
14
+ /** @internal */
15
+ frameMetadataExtractor?: FrameMetadataExtractor;
16
+ constructor(mediaTrack: MediaStreamTrack, sid: string, receiver: RTCRtpReceiver, adaptiveStreamSettings?: AdaptiveStreamSettings, loggerOptions?: LoggerOptions);
17
+ get isAdaptiveStream(): boolean;
18
+ /**
19
+ * Look up frame-level metadata for a given RTP timestamp.
20
+ * Use with the `TrackEvent.TimeSyncUpdate` event to correlate displayed frames
21
+ * with their capture-time metadata.
22
+ *
23
+ * Requires the room to be configured with the `frameMetadata` worker option
24
+ * and the publishing track to have frame metadata features enabled.
25
+ *
26
+ */
27
+ lookupFrameMetadata({ rtpTimestamp }: {
28
+ rtpTimestamp: number;
29
+ }): FrameMetadata | undefined;
30
+ setStreamState(value: Track.StreamState): void;
31
+ get mediaStreamTrack(): MediaStreamTrack;
32
+ /** @internal */
33
+ setMuted(muted: boolean): void;
34
+ attach(): HTMLMediaElement;
35
+ attach(element: HTMLMediaElement): HTMLMediaElement;
36
+ /**
37
+ * Observe an ElementInfo for changes when adaptive streaming.
38
+ * @param elementInfo
39
+ * @internal
40
+ */
41
+ observeElementInfo(elementInfo: ElementInfo): void;
42
+ /**
43
+ * Stop observing an ElementInfo for changes.
44
+ * @param elementInfo
45
+ * @internal
46
+ */
47
+ stopObservingElementInfo(elementInfo: ElementInfo): void;
48
+ detach(): HTMLMediaElement[];
49
+ detach(element: HTMLMediaElement): HTMLMediaElement;
50
+ /** @internal */
51
+ getDecoderImplementation(): string | undefined;
52
+ protected monitorReceiver: () => Promise<void>;
53
+ getReceiverStats(): Promise<VideoReceiverStats | undefined>;
54
+ private stopObservingElement;
55
+ protected handleAppVisibilityChanged(): Promise<void>;
56
+ private readonly debouncedHandleResize;
57
+ private updateVisibility;
58
+ private updateDimensions;
59
+ private getPixelDensity;
60
+ }
61
+ export interface ElementInfo {
62
+ element: object;
63
+ width(): number;
64
+ height(): number;
65
+ visible: boolean;
66
+ pictureInPicture: boolean;
67
+ visibilityChangedAt: number | undefined;
68
+ handleResize?: () => void;
69
+ handleVisibilityChanged?: () => void;
70
+ observe(): void;
71
+ stopObserving(): void;
72
+ }
73
+ //# sourceMappingURL=RemoteVideoTrack.d.ts.map