livekit-client 2.13.7 → 2.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/livekit-client.e2ee.worker.js +1 -1
- package/dist/livekit-client.e2ee.worker.js.map +1 -1
- package/dist/livekit-client.e2ee.worker.mjs +13 -7
- package/dist/livekit-client.e2ee.worker.mjs.map +1 -1
- package/dist/livekit-client.esm.mjs +188 -90
- package/dist/livekit-client.esm.mjs.map +1 -1
- package/dist/livekit-client.umd.js +1 -1
- package/dist/livekit-client.umd.js.map +1 -1
- package/dist/src/e2ee/E2eeManager.d.ts.map +1 -1
- package/dist/src/e2ee/types.d.ts +7 -0
- package/dist/src/e2ee/types.d.ts.map +1 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts +2 -1
- package/dist/src/e2ee/worker/FrameCryptor.d.ts.map +1 -1
- package/dist/src/room/PCTransport.d.ts +1 -0
- package/dist/src/room/PCTransport.d.ts.map +1 -1
- package/dist/src/room/events.d.ts +18 -0
- package/dist/src/room/events.d.ts.map +1 -1
- package/dist/src/room/participant/LocalParticipant.d.ts +1 -0
- package/dist/src/room/participant/LocalParticipant.d.ts.map +1 -1
- package/dist/src/room/participant/Participant.d.ts +3 -0
- package/dist/src/room/participant/Participant.d.ts.map +1 -1
- package/dist/src/room/track/LocalTrackPublication.d.ts +1 -0
- package/dist/src/room/track/LocalTrackPublication.d.ts.map +1 -1
- package/dist/src/room/track/LocalVideoTrack.d.ts +7 -0
- package/dist/src/room/track/LocalVideoTrack.d.ts.map +1 -1
- package/dist/src/room/track/Track.d.ts +1 -0
- package/dist/src/room/track/Track.d.ts.map +1 -1
- package/dist/src/room/track/TrackPublication.d.ts +1 -0
- package/dist/src/room/track/TrackPublication.d.ts.map +1 -1
- package/dist/src/room/track/options.d.ts +4 -0
- package/dist/src/room/track/options.d.ts.map +1 -1
- package/dist/src/room/utils.d.ts +1 -1
- package/dist/src/room/utils.d.ts.map +1 -1
- package/dist/ts4.2/src/e2ee/types.d.ts +7 -0
- package/dist/ts4.2/src/e2ee/worker/FrameCryptor.d.ts +2 -1
- package/dist/ts4.2/src/room/PCTransport.d.ts +1 -0
- package/dist/ts4.2/src/room/events.d.ts +18 -0
- package/dist/ts4.2/src/room/participant/LocalParticipant.d.ts +1 -0
- package/dist/ts4.2/src/room/participant/Participant.d.ts +3 -0
- package/dist/ts4.2/src/room/track/LocalTrackPublication.d.ts +1 -0
- package/dist/ts4.2/src/room/track/LocalVideoTrack.d.ts +7 -0
- package/dist/ts4.2/src/room/track/Track.d.ts +1 -0
- package/dist/ts4.2/src/room/track/TrackPublication.d.ts +1 -0
- package/dist/ts4.2/src/room/track/options.d.ts +4 -0
- package/dist/ts4.2/src/room/utils.d.ts +1 -1
- package/package.json +1 -1
- package/src/e2ee/E2eeManager.ts +8 -3
- package/src/e2ee/types.ts +8 -0
- package/src/e2ee/worker/FrameCryptor.ts +15 -0
- package/src/e2ee/worker/e2ee.worker.ts +8 -5
- package/src/room/PCTransport.ts +88 -77
- package/src/room/events.ts +21 -0
- package/src/room/participant/LocalParticipant.ts +14 -2
- package/src/room/participant/Participant.ts +3 -0
- package/src/room/participant/publishUtils.ts +2 -2
- package/src/room/track/LocalTrackPublication.ts +9 -1
- package/src/room/track/LocalVideoTrack.ts +68 -1
- package/src/room/track/Track.ts +1 -0
- package/src/room/track/TrackPublication.ts +1 -0
- package/src/room/track/create.ts +2 -2
- package/src/room/track/options.ts +5 -0
- package/src/room/utils.ts +19 -3
package/src/room/track/Track.ts
CHANGED
@@ -529,4 +529,5 @@ export type TrackEventCallbacks = {
|
|
529
529
|
audioTrackFeatureUpdate: (track: any, feature: AudioTrackFeature, enabled: boolean) => void;
|
530
530
|
timeSyncUpdate: (update: { timestamp: number; rtpTimestamp: number }) => void;
|
531
531
|
preConnectBufferFlushed: (buffer: Uint8Array[]) => void;
|
532
|
+
cpuConstrained: () => void;
|
532
533
|
};
|
@@ -179,4 +179,5 @@ export type PublicationEventCallbacks = {
|
|
179
179
|
subscriptionFailed: (error: SubscriptionError) => void;
|
180
180
|
transcriptionReceived: (transcription: TranscriptionSegment[]) => void;
|
181
181
|
timeSyncUpdate: (timestamp: number) => void;
|
182
|
+
cpuConstrained: (track: LocalVideoTrack) => void;
|
182
183
|
};
|
package/src/room/track/create.ts
CHANGED
@@ -3,7 +3,7 @@ import { audioDefaults, videoDefaults } from '../defaults';
|
|
3
3
|
import { DeviceUnsupportedError, TrackInvalidError } from '../errors';
|
4
4
|
import { mediaTrackToLocalTrack } from '../participant/publishUtils';
|
5
5
|
import type { LoggerOptions } from '../types';
|
6
|
-
import { isAudioTrack,
|
6
|
+
import { isAudioTrack, isSafari17Based, isVideoTrack, unwrapConstraint } from '../utils';
|
7
7
|
import LocalAudioTrack from './LocalAudioTrack';
|
8
8
|
import type LocalTrack from './LocalTrack';
|
9
9
|
import LocalVideoTrack from './LocalVideoTrack';
|
@@ -198,7 +198,7 @@ export async function createLocalScreenTracks(
|
|
198
198
|
if (options === undefined) {
|
199
199
|
options = {};
|
200
200
|
}
|
201
|
-
if (options.resolution === undefined && !
|
201
|
+
if (options.resolution === undefined && !isSafari17Based()) {
|
202
202
|
options.resolution = ScreenSharePresets.h1080fps30.resolution;
|
203
203
|
}
|
204
204
|
|
@@ -173,6 +173,11 @@ export interface VideoCaptureOptions {
|
|
173
173
|
*/
|
174
174
|
deviceId?: ConstrainDOMString;
|
175
175
|
|
176
|
+
/**
|
177
|
+
* A ConstrainDouble specifying the frame rate or range of frame rates which are acceptable and/or required.
|
178
|
+
*/
|
179
|
+
frameRate?: ConstrainDouble;
|
180
|
+
|
176
181
|
/**
|
177
182
|
* a facing or an array of facings which are acceptable and/or required.
|
178
183
|
*/
|
package/src/room/utils.ts
CHANGED
@@ -96,6 +96,14 @@ export function supportsVP9(): boolean {
|
|
96
96
|
// Safari 16 and below does not support VP9
|
97
97
|
return false;
|
98
98
|
}
|
99
|
+
if (
|
100
|
+
browser?.os === 'iOS' &&
|
101
|
+
browser?.osVersion &&
|
102
|
+
compareVersions(browser.osVersion, '16') < 0
|
103
|
+
) {
|
104
|
+
// Safari 16 and below on iOS does not support VP9 we need the iOS check to account for other browsers running webkit under the hood
|
105
|
+
return false;
|
106
|
+
}
|
99
107
|
}
|
100
108
|
const capabilities = RTCRtpSender.getCapabilities('video');
|
101
109
|
let hasVP9 = false;
|
@@ -148,9 +156,12 @@ export function isSafariBased(): boolean {
|
|
148
156
|
return b?.name === 'Safari' || b?.os === 'iOS';
|
149
157
|
}
|
150
158
|
|
151
|
-
export function
|
159
|
+
export function isSafari17Based(): boolean {
|
152
160
|
const b = getBrowser();
|
153
|
-
return
|
161
|
+
return (
|
162
|
+
(b?.name === 'Safari' && b.version.startsWith('17.')) ||
|
163
|
+
(b?.os === 'iOS' && !!b?.osVersion && compareVersions(b.osVersion, '17') >= 0)
|
164
|
+
);
|
154
165
|
}
|
155
166
|
|
156
167
|
export function isSafariSvcApi(browser?: BrowserDetails): boolean {
|
@@ -158,7 +169,12 @@ export function isSafariSvcApi(browser?: BrowserDetails): boolean {
|
|
158
169
|
browser = getBrowser();
|
159
170
|
}
|
160
171
|
// Safari 18.4 requires legacy svc api and scaleResolutionDown to be set
|
161
|
-
return
|
172
|
+
return (
|
173
|
+
(browser?.name === 'Safari' && compareVersions(browser.version, '18.3') > 0) ||
|
174
|
+
(browser?.os === 'iOS' &&
|
175
|
+
!!browser?.osVersion &&
|
176
|
+
compareVersions(browser.osVersion, '18.3') > 0)
|
177
|
+
);
|
162
178
|
}
|
163
179
|
|
164
180
|
export function isMobile(): boolean {
|