3.0 KiB
Vendored: livekit-client
- Upstream: https://github.com/livekit/client-sdk-js
- Version: v2.17.2 (git tag
v2.17.2) - License: Apache-2.0
- Date vendored: 2026-05-25
Fluxer modifications
Changes applied on top of the upstream v2.17.2 source. Previously maintained as
a pnpm patch at patches/[email protected]; now maintained as regular
source edits in this package.
-
AV1 E2EE support (
src/e2ee/worker/av1Crypto.ts,FrameCryptor.ts,e2ee.worker.ts) OBU-level AV1 encryption and decryption for end-to-end encrypted voice/video. -
UpdateTrackContext message (
src/e2ee/types.ts, worker dispatch) ReplacedupdateCodecwith richerupdateTrackContextcarrying participant identity and track ID, preventing codec mismatch on track reuse. -
E2EEManager state tracking (
src/e2ee/E2eeManager.ts) AddedgetE2EETransformState()/setE2EETransformState()for proper transform lifecycle management. -
Screenshare scalability mode (
src/room/participant/LocalParticipant.ts) Preserve caller-suppliedscalabilityModefor screen shares instead of forcingL3T3_KEY, so VP9/AV1 screen shares can use the browser's compatible default unless Fluxer explicitly requests an SVC layer layout. -
E2EE frame layout guards (
src/e2ee/worker/FrameCryptor.ts) Validate encrypted frame trailer, IV, tag, and clear-prefix bounds before constructing typed-array views, and drop malformed encrypted frames without tearing down the transform stream. -
Encrypted backup codec publishing (
src/room/participant/LocalParticipant.ts,src/e2ee/E2eeManager.ts) Allows backup codec tracks to be advertised and published while E2EE is enabled, and attaches sender transforms to backup codec senders using their cloned media track ID and codec. -
Publisher codec preferences (
src/room/RTCEngine.ts) AppliesRTCRtpTransceiver.setCodecPreferences()to publisher transceivers so browser SDP follows the selected primary or backup codec, and prefers H.264 profiles that use Chromium's external/hardware encoder before the OpenH264 software profile. -
Media publishing defaults (
src/room/defaults.ts,src/room/utils.ts,src/room/track/options.ts) Prefers AV1, then HEVC/H.265, H.264, VP9, and VP8 according to actual sender capabilities; pairs advanced codecs with H.264 backup simulcast; and uses maintain-resolution screen-share defaults with a 4K60-ready bitrate cap. -
High-fidelity Opus SDP munging (
src/room/PCTransport.ts) Forces Opus RED/FEC, stereo signaling, 10 ms packet time, no DTX, and a 510 kbps maximum average bitrate in local offers and remote answers.
Updating from upstream
- Check the upstream changelog for the target version.
git diff v2.17.2..v<new> -- src/to see what changed.- Apply relevant upstream changes to this package's
src/. - Update the version field in
package.jsonto match the new upstream version. - Update this file with the new version and date.