Files
fluxer/fluxer_app/pkgs/livekit-client/VENDORING.md
T

3.0 KiB

Vendored: livekit-client

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.

  1. 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.

  2. UpdateTrackContext message (src/e2ee/types.ts, worker dispatch) Replaced updateCodec with richer updateTrackContext carrying participant identity and track ID, preventing codec mismatch on track reuse.

  3. E2EEManager state tracking (src/e2ee/E2eeManager.ts) Added getE2EETransformState() / setE2EETransformState() for proper transform lifecycle management.

  4. Screenshare scalability mode (src/room/participant/LocalParticipant.ts) Preserve caller-supplied scalabilityMode for screen shares instead of forcing L3T3_KEY, so VP9/AV1 screen shares can use the browser's compatible default unless Fluxer explicitly requests an SVC layer layout.

  5. 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.

  6. 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.

  7. Publisher codec preferences (src/room/RTCEngine.ts) Applies RTCRtpTransceiver.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.

  8. 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.

  9. 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

  1. Check the upstream changelog for the target version.
  2. git diff v2.17.2..v<new> -- src/ to see what changed.
  3. Apply relevant upstream changes to this package's src/.
  4. Update the version field in package.json to match the new upstream version.
  5. Update this file with the new version and date.