diff --git a/app/rooms/[roomName]/PageClientImpl.tsx b/app/rooms/[roomName]/PageClientImpl.tsx index f4bfd8a..c72343d 100644 --- a/app/rooms/[roomName]/PageClientImpl.tsx +++ b/app/rooms/[roomName]/PageClientImpl.tsx @@ -25,6 +25,7 @@ import { RoomEvent, TrackPublishDefaults, VideoCaptureOptions, + ParticipantEvent, } from 'livekit-client'; import { useRouter } from 'next/navigation'; import { useSetupE2EE } from '@/lib/useSetupE2EE'; @@ -172,6 +173,10 @@ function VideoConferenceComponent(props: { room.on(RoomEvent.Disconnected, handleOnLeave); room.on(RoomEvent.EncryptionError, handleEncryptionError); room.on(RoomEvent.MediaDevicesError, handleError); + room.localParticipant.on(ParticipantEvent.LocalTrackCpuConstrained, (track) => { + console.warn('Local track CPU constrained', track); + track.prioritizePerformance(); + }); if (e2eeSetupComplete) { room .connect( diff --git a/lib/client-utils.ts b/lib/client-utils.ts index a742ae3..6ee91b6 100644 --- a/lib/client-utils.ts +++ b/lib/client-utils.ts @@ -21,5 +21,6 @@ export function randomString(length: number): string { } export function isLowPowerDevice() { + return false; return navigator.hardwareConcurrency < 6; } diff --git a/package.json b/package.json index 2bfde44..07f21d6 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@livekit/components-styles": "1.1.6", "@livekit/krisp-noise-filter": "0.3.0", "@livekit/track-processors": "^0.5.4", - "livekit-client": "2.13.7", + "livekit-client": "0.0.0-20250623162608", "livekit-server-sdk": "2.13.0", "next": "15.2.4", "react": "18.3.1", @@ -40,5 +40,5 @@ "engines": { "node": ">=18" }, - "packageManager": "pnpm@9.15.9" + "packageManager": "pnpm@10.9.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5408a6e..0fee034 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,19 +13,19 @@ importers: version: 5.35.1 '@livekit/components-react': specifier: 2.9.10 - version: 2.9.10(@livekit/krisp-noise-filter@0.3.0(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22)))(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1) + version: 2.9.10(@livekit/krisp-noise-filter@0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)))(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1) '@livekit/components-styles': specifier: 1.1.6 version: 1.1.6 '@livekit/krisp-noise-filter': specifier: 0.3.0 - version: 0.3.0(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22)) + version: 0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) '@livekit/track-processors': specifier: ^0.5.4 - version: 0.5.4(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22)) + version: 0.5.4(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) livekit-client: - specifier: 2.13.7 - version: 2.13.7(@types/dom-mediacapture-record@1.0.22) + specifier: 0.0.0-20250623162608 + version: 0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22) livekit-server-sdk: specifier: 2.13.0 version: 2.13.0 @@ -1621,8 +1621,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - livekit-client@2.13.7: - resolution: {integrity: sha512-kPuOoMSdURoCYEI27bkvf0rYl9KE3+PFywRqX78F114eQiuXb7gRm910tGPF4E6Mit/ojYcbKDiBPC80r9o96A==} + livekit-client@0.0.0-20250623162608: + resolution: {integrity: sha512-xu0McJG12JG1+KFs+oy0guiewn1bVoQs9hCzV38G4YhYwQa4KvJ4UG9IoHorSui4CsAQ/mLf1Iu7/PA1JlKx4Q==} peerDependencies: '@types/dom-mediacapture-record': ^1 @@ -1947,8 +1947,8 @@ packages: resolution: {integrity: sha512-KrOH82c/W+GYQ0LHqtr3caRpM3ITglq3ljGUIb8LTki7ByacJZ9z+piSGiwZDsRyhQbYBOBJgr2k6X4BZXi3Kw==} hasBin: true - sdp@3.2.0: - resolution: {integrity: sha512-d7wDPgDV3DDiqulJjKiV2865wKsJ34YI+NDREbm+FySq6WuKOikwyNQcm+doLAZ1O6ltdO0SeKle2xMpN3Brgw==} + sdp@3.2.1: + resolution: {integrity: sha512-lwsAIzOPlH8/7IIjjz3K0zYBk7aBVVcvjMwt3M4fLxpjMYyy7i3I97SLHebgn4YBjirkzfp3RvRDWSKsh/+WFw==} semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} @@ -2293,8 +2293,8 @@ packages: webpack-cli: optional: true - webrtc-adapter@9.0.1: - resolution: {integrity: sha512-1AQO+d4ElfVSXyzNVTOewgGT/tAomwwztX/6e3totvyyzXPvXIIuUUjAmyZGbKBKbZOXauuJooZm3g6IuFuiNQ==} + webrtc-adapter@9.0.3: + resolution: {integrity: sha512-5fALBcroIl31OeXAdd1YUntxiZl1eHlZZWzNg3U4Fn+J9/cGL3eT80YlrsWGvj2ojuz1rZr2OXkgCzIxAZ7vRQ==} engines: {node: '>=6.0.0', npm: '>=3.10.0'} which-boxed-primitive@1.0.2: @@ -2585,32 +2585,32 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@livekit/components-core@0.12.7(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22))(tslib@2.8.1)': + '@livekit/components-core@0.12.7(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(tslib@2.8.1)': dependencies: '@floating-ui/dom': 1.6.13 - livekit-client: 2.13.7(@types/dom-mediacapture-record@1.0.22) + livekit-client: 0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22) loglevel: 1.9.1 rxjs: 7.8.2 tslib: 2.8.1 - '@livekit/components-react@2.9.10(@livekit/krisp-noise-filter@0.3.0(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22)))(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1)': + '@livekit/components-react@2.9.10(@livekit/krisp-noise-filter@0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)))(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tslib@2.8.1)': dependencies: - '@livekit/components-core': 0.12.7(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22))(tslib@2.8.1) + '@livekit/components-core': 0.12.7(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))(tslib@2.8.1) clsx: 2.1.1 - livekit-client: 2.13.7(@types/dom-mediacapture-record@1.0.22) + livekit-client: 0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) tslib: 2.8.1 usehooks-ts: 3.1.1(react@18.3.1) optionalDependencies: - '@livekit/krisp-noise-filter': 0.3.0(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22)) + '@livekit/krisp-noise-filter': 0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22)) '@livekit/components-styles@1.1.6': {} - '@livekit/krisp-noise-filter@0.3.0(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22))': + '@livekit/krisp-noise-filter@0.3.0(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))': dependencies: '@livekit/mutex': 1.1.1 - livekit-client: 2.13.7(@types/dom-mediacapture-record@1.0.22) + livekit-client: 0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22) '@livekit/mutex@1.1.1': {} @@ -2622,10 +2622,10 @@ snapshots: dependencies: '@bufbuild/protobuf': 1.10.0 - '@livekit/track-processors@0.5.4(livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22))': + '@livekit/track-processors@0.5.4(livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22))': dependencies: '@mediapipe/tasks-vision': 0.10.14 - livekit-client: 2.13.7(@types/dom-mediacapture-record@1.0.22) + livekit-client: 0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22) '@mediapipe/tasks-vision@0.10.14': {} @@ -3961,7 +3961,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - livekit-client@2.13.7(@types/dom-mediacapture-record@1.0.22): + livekit-client@0.0.0-20250623162608(@types/dom-mediacapture-record@1.0.22): dependencies: '@livekit/mutex': 1.1.1 '@livekit/protocol': 1.39.2 @@ -3972,7 +3972,7 @@ snapshots: ts-debounce: 4.0.0 tslib: 2.8.1 typed-emitter: 2.1.0 - webrtc-adapter: 9.0.1 + webrtc-adapter: 9.0.3 livekit-server-sdk@2.13.0: dependencies: @@ -4309,7 +4309,7 @@ snapshots: sdp-transform@2.15.0: {} - sdp@3.2.0: {} + sdp@3.2.1: {} semver@6.3.1: {} @@ -4708,9 +4708,9 @@ snapshots: - esbuild - uglify-js - webrtc-adapter@9.0.1: + webrtc-adapter@9.0.3: dependencies: - sdp: 3.2.0 + sdp: 3.2.1 which-boxed-primitive@1.0.2: dependencies: