Skip to content

Latest commit

 

History

History
1272 lines (639 loc) · 84.8 KB

CHANGELOG.md

File metadata and controls

1272 lines (639 loc) · 84.8 KB

Change Log

2.1.5

Patch Changes

2.1.4

Patch Changes

2.1.3

Patch Changes

2.1.2

Patch Changes

2.1.1

Patch Changes

  • Allow simulcast together with E2EE for supported Safari versions - #1117 (@lukasIO) Also fixes the simulcast behaviour for iOS Chrome prior to 17.2

  • Remove internal calls to setCodecPreferences on senders - #1114 (@lukasIO)

2.1.0

Minor Changes

  • Force playback after app visibility changes back to visible - #1106 (@lukasIO)

Patch Changes

2.0.10

Patch Changes

  • Create processorElement before processor init - #1091 (@xdef)

  • Improve VideoSenderStats with FPS and targetBitrate - #1090 (@davidzhao)

2.0.9

Patch Changes

  • Fix publishing for Chrome M124. Read capabilities from RtcRTPReceiver instead of from sender - #1088 (@lukasIO)

  • Add keyring size to keyprovider options - #1085 (@lukasIO)

2.0.8

Patch Changes

2.0.7

Patch Changes

  • Recreate engine before trying to connect to another region - #1071 (@lukasIO)

  • Add experimental preferCurrentTab screen share capture option - #1070 (@lukasIO)

  • Fix FPS and latency issues with VP9 screenshare - #1069 (@davidzhao)

2.0.6

Patch Changes

2.0.5

Patch Changes

  • Set logExtension on all livekit loggers if not specified - #1061 (@lukasIO)

  • Don't treat PC config error as SignalReconnectError - #1052 (@lukasIO)

  • Align logContext fields with server naming - #1062 (@lukasIO)

  • Remove some noisy e2ee logs - #1057 (@lukasIO)

  • Throw error if trying to connect with a non-compatible browser - #1064 (@davidliu)

2.0.4

Patch Changes

  • Normalize audiooutput device id for webAudio mode - #1051 (@lukasIO)

  • Add page leave log - #1056 (@lukasIO)

  • Add stopProcessor param to replaceTrack function - #1040 (@lukasIO)

  • Set audio context on track as early as possible - #1053 (@lukasIO)

  • Export logger names to configure fine grained logging - #1042 (@lukasIO)

  • Emit Restarting as soon as both signal and pc connection are severed - #1047 (@lukasIO)

  • Add VideoPreset overload for more granular options settings - #1044 (@lukasIO)

  • Send worker loglevel in init message - #1045 (@lukasIO)

  • Only perform mute/unmute actions if necessary - #1048 (@lukasIO)

  • Make sure a 401 ConnectionError is thrown on invalid token permissions - #1049 (@lukasIO)

2.0.3

Patch Changes

  • Fix transceiver reuse for e2ee and add more verbose e2ee debug logging - #1041 (@lukasIO)

  • Make sure only one track restart request is processed at a time - #1039 (@lukasIO)

  • Emit event when track processor changes - #1036 (@lukasIO)

2.0.2

Patch Changes

  • Ignore unknown fields in protobuf parsing - #1029 (@lukasIO)

  • Stronger kind type for Tracks to improve processor support - #1033 (@lukasIO)

  • Verify participant identity matching when unsetting transformer for e2ee - #1032 (@lukasIO)

2.0.1

Patch Changes

2.0.0

Major Changes

  • Remove experimental hint for webAudioMix and enable it by default - #1013 (@lukasIO)

  • Add support for async room sid. Removes room.sid and replaces it with await room.getSid(). - #983 (@lukasIO)

  • Change publishData signature - #946 (@lukasIO)

  • Remote OFF option from VideoQuality enum - #985 (@lukasIO)

  • Rename participant.tracks to participant.trackPublications - #947 (@lukasIO)

  • Rename getTrack to getTrackPublications and participants to remoteParticipants - #945 (@lukasIO)

  • Remove previously deprecated APIs - #948 (@lukasIO)

Minor Changes

  • Don't emit RoomEvent.Reconnecting for resumes - #1012 (@lukasIO)

Patch Changes

1.15.11

Patch Changes

1.15.10

Patch Changes

1.15.9

Patch Changes

1.15.8

Patch Changes

1.15.7

Patch Changes

  • Fix stopping old track in setMediaStreamTrack - #980 (@mpnri)

  • Add class level configurable logger - #988 (@lukasIO)

  • Default screenshare capture resolution to 1080p - #972 (@davidzhao)

1.15.6

Patch Changes

  • Make sure that processorElement stays muted after attach - #984 (@lukasIO)

1.15.5

Patch Changes

  • Add receiver video mime type to stats - #963 (@cnderrauber)

  • Make sure all signal client callbacks are set up for a reconnect - #966 (@lukasIO)

  • Make sure to apply audio output selection when participant is first created - #968 (@lukasIO)

1.15.4

Patch Changes

1.15.3

Patch Changes

  • Prevent backup codec publishing when e2ee is enabled - #943 (@lukasIO)

  • Use enum to track connection state of signal client - #949 (@lukasIO)

  • Disable VP9 for Safari 15, AV1 for Safari (incomplete support) - #950 (@davidzhao)

1.15.2

Patch Changes

  • Make sure no backup codecs are published when e2ee is enabled - #941 (@lukasIO)

1.15.1

Patch Changes

  • Move PeerConnection logic into PCTransportManager - #909 (@lukasIO)

  • Add startVideo method and RoomEvent.VideoPlaybackStatusChanged - #939 (@lukasIO)

1.15.0

Minor Changes

Patch Changes

1.14.4

Patch Changes

  • Correctly apply elementVolume on attach for webaudioMix - #922 (@lukasIO)

  • Simplify multi-codec simulcast usage, backupCodec: true - #923 (@davidzhao)

1.14.3

Patch Changes

  • Update dependency @bufbuild/protobuf to v1.4.1 - #913 (@renovate)

  • Demote duplicate source log to info - #917 (@lukasIO)

  • Fix reconnect when E2EE is enabled - #921 (@lukasIO)

  • Don't set the autoplay attribute on video elements in Safari - #918 (@lukasIO)

  • Call startAudio when an audio track has been acquired in order to update audio playback status - #919 (@lukasIO)

  • Round start bitrate for svc - #920 (@cnderrauber)

1.14.2

Patch Changes

  • Use a deepClone util function for CreateLocalTrackOptions - #906 (@vas11yev1work)

  • Guard against overriding newly set key when auto-ratcheting - #895 (@lukasIO)

  • Fix Safari reporting wrong initial track resolution - #898 (@lukasIO)

  • Make peerconnection private on PCTransport - #903 (@lukasIO)

  • Improve handling of incompatible published codecs - #911 (@davidzhao)

  • Fix a race in setKeyFromMaterial that would cause keys to be set at the wrong index if several keys were set in quick succession. - #908 (@dbkr)

  • Update protocol - #902 (@lukasIO)

  • Add key index to e2e worker log lines - #904 (@dbkr)

  • Fix Typescript compilation error in angular setups - #901 (@pabloFuente)

  • Don't disconnect room before retrying new regions - #910 (@lukasIO)

1.14.1

Patch Changes

1.14.0

Minor Changes

  • Do not constrain screenshare resolution by default - #889 (@davidzhao)

Patch Changes

1.13.4

Patch Changes

  • Log connection error message on region retries - #879 (@lukasIO)

  • Wait for publisher connection after reconnects - #875 (@lukasIO)

1.13.3

Patch Changes

1.13.2

Patch Changes

  • Fix opus RED publishing option not taking effect - #856 (@lukasIO)

1.13.1

Patch Changes

  • Remove legacy code paths for tracks arriving before participant info - #854 (@lukasIO)

  • Make KeyProvider and ParticipantKeyHandler work consistently for shared key and sender key scenarios (e2ee) - #850 (@lukasIO)

  • Fix track processor blips when restarting tracks - #842 (@lukasIO)

  • Correctly import livekit logger in facingMode helper - #855 (@lukasIO)

1.13.0

Minor Changes

  • Convert pauseUpstream and resumeUpstream to regular class methods - #830 (@lukasIO)

Patch Changes

  • Add websocketTimeout to RoomConnectOptions - #834 (@lukasIO)

  • Add support for get/setVolume in react-native - #833 (@davidliu)

  • Refine pause/resumeUpstream, setProcessor for multi-codecs - #829 (@cnderrauber)

  • Force enable dynacast when backupCodec is enabled - #839 (@cnderrauber)

  • Fix video device switch not working for backup codec - #824 (@cnderrauber)

  • Update dependency webrtc-adapter to v8.2.3 - #819 (@renovate)

  • Allow ArrayBuffers to be used for ExternalKeyProvider keys - #844 (@lukasIO)

  • Fix passing maxRetries connectOption to RTCEngine - #838 (@mpnri)

  • Add support for audio processors - #822 (@lukasIO)

  • Ability to simulate subscriber-bandwidth - #835 (@davidzhao)

  • Fix getDevices permissions when no kind is supplied - #811 (@Talljoe)

  • Fix setTrackMute ignored simulcast-codec - #827 (@cnderrauber)

  • Add support for server injected frame trailer being passed down - #812 (@lukasIO)

  • Add ceil of width and height when emitting UpdateTrackSettings - #846 (@HermanBilous)

  • Setup signal callbacks before connecting signal - #832 (@lukasIO)

  • Ensure play requests are invoked synchronously in startAudio - #841 (@lukasIO)

1.12.3

Patch Changes

  • Fix missing ScalabilityMode import when using SVC - #816 (@davidzhao)

  • Adjust default bitrates according to VMAF results - #817 (@davidzhao)

1.12.2

Patch Changes

  • Set a default resolution for createLocalScreenTracks - #796 (@lukasIO)

  • Debounce reacting to mediastreamtrack mute events - #809 (@lukasIO)

  • Remove duplicate options being passed to publish - #794 (@lukasIO)

  • Replace ts-proto with protobuf-es - #700 (@lukasIO)

  • Do not attempt to restart screen share tracks when re-publishing after reconnect - #802 (@lukasIO)

  • Add failureTolerance to KeyProvider options (E2EE) - #810 (@lukasIO)

  • Remove dummy audio element on disconnect - #793 (@lukasIO)

  • Add video options to ScreenShareCaptureOptions - #792 (@lukasIO)

  • Fix iOS browser parser check, add more test cases - #798 (@lukasIO)

  • Improved connection checker with more details about ICE candidates - #806 (@davidzhao)

  • Throw connection error immediately if unauthorized instead of trying alternative URLs - #804 (@lukasIO)

  • Revert event emitter lib usage to 'events' - #807 (@lukasIO)

  • Support for region pinning with LiveKit Cloud using prepareConnection - #783 (@davidzhao)

  • Ensure we do not replace http unless it's in the scheme - #805 (@davidzhao)

  • Stop tracks if publishing fails with setTrackEnabled - #799 (@lukasIO)

1.12.1

Patch Changes

  • Allow specifying audio source for participant.setVolume API - #780 (@lukasIO)

  • Add iOS detection to browser parser and only use audio element workar… - #785 (@lukasIO)

  • Skip decryption if maximum ratchet accounts have exceeded until a new key is set - #786 (@lukasIO)

  • Set element Id for dummy audio element - #778 (@lukasIO)

  • Update constraints with actually selected deviceId on track creation - #773 (@toger5)

  • Always resume AudioContext if in suspended state - #779 (@lukasIO)

  • Only check for setSinkId support on AudioContext if webaudiomix is enabled - #787 (@lukasIO)

1.12.0

Minor Changes

  • Experimental end-to-end encryption support - #557 (@lukasIO)

Patch Changes

  • Update adaptive stream dimensions when a remote track is being detached - #766 (@burzomir)

  • Fixed missed event listeners on MediaStreamTrack - #768 (@davidzhao)

  • Forward signal events through engine - #772 (@lukasIO)

  • Emit activeDeviceChanged when publishing local track - #759 (@lukasIO)

  • Fix peer connections leak - #767 (@lukasIO)

1.11.4

Patch Changes

  • Use mutex lock for queueing calls to setProcessor - #756 (@lukasIO)

  • Use active device when publishing a new track - #757 (@lukasIO)

  • expose facingMode functions - #753 (@Ocupe)

1.11.3

Patch Changes

  • Apply user setting bitrate to maxaveragebitrates for firefox - #752 (@cnderrauber)

  • Do not override forceStereo=false when publishing stereo input - #748 (@davidzhao)

  • Add helper function to detect camera facingMode. - #738 (@Ocupe)

  • Only set priority on Firefox - #750 (@lukasIO)

1.11.2

Patch Changes

  • Fix missing await for async setMediaStreamTrack calls - #747 (@boris-graeff)

  • Emit RoomEvent.ActiveDeviceChanged when room.switchActiveDevice has been called. - #743 (@lukasIO) Add room.getActiveDevice(kind) method.

  • Use JSdocs instead of warning for mediastreamtrack access - #742 (@lukasIO)

1.11.1

Patch Changes

1.11.0

Minor Changes

  • Increase default adaptiveStream pixelDensity on high-density(mobile) screens - #735 (@davidzhao)

  • Replace event emitter lib with eventemitter3 - #681 (@lukasIO)

Patch Changes

  • Handle device mute and document freeze events - #734 (@davidzhao)

  • Pass method logLevel to LogExtension instead of configured logLevel - #730 (@lukasIO)

  • Fix svc encodings for safari and chrome before 113 - #731 (@cnderrauber)

  • Always catch reconnectFuture rejections - #727 (@HermanBilous)

  • Work around iOS safari audio playback issue when not publishing, by playing back silent audio - #733 (@lukasIO)

1.10.0

Minor Changes

Patch Changes

  • Use replaceTrack(null) for pauseUpstream - #716 (@davidzhao)

  • Always add codec info to AddTrackRequest - #728 (@cnderrauber)

  • Surface subscription error via TrackEvent.SubscriptionFailed when trying to subsribe to an unsupported codec - #722 (@lukasIO)

  • Reject signal connection promise immediately when aborted - #719 (@lukasIO)

  • Fix svc mode for chrome v113 - #720 (@cnderrauber)

1.9.7

Patch Changes

1.9.6

Patch Changes

  • Make sure TrackUnsubscribed events are emitted before the publication gets deleted from maps - #708 (@lukasIO)

  • Use body instead of document as intersection observer root - #703 (@lukasIO)

  • Use default video dimensions when they are not available - #709 (@davidzhao)

1.9.5

Patch Changes

  • Remove ua-parser-js dependency and fix browser version comparison - #697 (@lukasIO)

  • Use STATE_MISMATCH disconnect reason in connection reconciliation - #705 (@lukasIO)

  • Make sure engine gets closed when connection reconciliation triggers - #702 (@lukasIO)

1.9.4

Patch Changes

1.9.3

Patch Changes

1.9.2

Patch Changes

  • Ensure engine is always set to undefined when closing - #682 (@lukasIO)

  • Handle connection state mismatch with periodic reconciliation - #680 (@davidzhao)

1.9.1

Patch Changes

  • Only set maxFramerate on encoding if defined - #676 (@lukasIO)

  • added experimental option suppressLocalAudioPlayback - #675 (@jibon57)

  • Fix: Emit connected events for participants that connected during signal reconnect - #672 (@lukasIO)

  • Add VP9 SVC support - #643 (@cnderrauber)

1.9.0

Minor Changes

  • Fix race condition with full reconnect sequence during server restart - #663 (@davidzhao)

Patch Changes

  • Add support for local participants to update own metadata - #599 (@lukasIO)

  • Expose numParticipants and numPublishers on Room - #668 (@davidzhao)

  • Handle signal reconnect and full reconnection separately #665 - #670 (@lukasIO)

1.8.0

Minor Changes

Patch Changes

1.7.1

Patch Changes

  • #625 b74da67 Thanks @wjaykim! - Emit mute status events also for unsubscribed publications

  • #622 2268333 Thanks @lukasIO! - Don't auto-pause videos when element is in pictureInPicture mode (only applies when adaptiveStream is enabled)

  • #627 0342650 Thanks @lukasIO! - Add room option to configure automatic disconnect on page leave

  • #628 4ed8b89 Thanks @lukasIO! - Respect incoming data message order by processing message events sequentially

  • #623 d8e7a20 Thanks @lukasIO! - Emit RoomEvent.LocalAudioSilenceDetected if a LocalAudioTrack is silent after publishing

1.7.0

Minor Changes

1.6.9

Patch Changes

1.6.8

Patch Changes

1.6.7

Patch Changes

1.6.6

Patch Changes

1.6.5

Patch Changes

1.6.4

Patch Changes

1.6.3

Patch Changes

1.6.2

Patch Changes

1.6.1

Patch Changes

1.6.0

Minor Changes

Patch Changes

1.5.0

Minor Changes

  • #487 e1a0a7e Thanks @lukasIO! - Sync muted state with track.enabled when calling replaceTrack"

  • #485 1cc2cab Thanks @lukasIO! - Don't filter out default devices in order to detect OS Level default switches

Patch Changes

1.4.4

Patch Changes

1.4.3

Patch Changes

1.4.2

Patch Changes

1.4.1

Patch Changes

1.4.0

Minor Changes

  • #443 438d067 Thanks @lukasIO! - Breaking Decouple SubscriptionStatus and SubscriptionPermissionStatus

Patch Changes

1.3.3

Patch Changes

1.3.2

Patch Changes

1.3.1

Patch Changes

  • #418 82107cf Thanks @davidzhao! - Fixed compatibility with older browsers with setCodecPreferences (Chrome 96)

1.3.0

Minor Changes

Patch Changes

  • #393 bfad4b3 Thanks @wcarle! - Prevent multiple redundant monitors from being started if start is called multiple times on a RemoteTrack

1.2.11

Patch Changes

1.2.10

Patch Changes

  • #382 8499723 Thanks @lukasIO! - Disable simulcast if an user provides empty array for custom layers

1.2.9

Patch Changes

1.2.8

Patch Changes

  • #371 e1a004e Thanks @lukasIO! - only set volume on attach if elementVolume has been previously set

1.2.7

Patch Changes

  • #369 a3d6de6 Thanks @lukasIO! - Fix reconnect promise not being reset after reconnect attempts are exhausted

1.2.6

Patch Changes

  • #365 d040aff Thanks @lukasIO! - Make sure that ParticipantConnected fires before related TrackEvents

1.2.5

Patch Changes

  • #359 31e3883 Thanks @lukasIO! - Only reject connection promise if it was triggered by a call to connect()
  • #358 8ceceff Thanks @lukasIO! - Add safari explicitly to browserslist, to ensure compatibility with Safari 11"
  • #363 4665f74 Thanks @lukasIO! - Decrease publication timeout to 10s and clean local state on failed unpublish attempts

1.2.4

Patch Changes

  • #330 dbbfe5f Thanks @lukasIO! - Check for duplicate source publications before adding them to tracks

1.2.3

Patch Changes

  • #328 aac61a9 Thanks @lukasIO! - Make local track publication timeout instead of waiting indefinitely for server response
  • #329 5aea501 Thanks @lukasIO! - Log warning if multiple tracks of the same source are published
  • #323 02c025f Thanks @lukasIO! - Remove internal event listeners from local participant on disconnect

1.2.2

Patch Changes

1.2.1

Patch Changes

1.2.0

Minor Changes

  • #308 5b1c5a0 Thanks @lukasIO! - Try to re-aquire mediastreamtrack when device has been disconnected, pause upstream if no device could be acquired

Patch Changes

1.1.9

Patch Changes

1.1.8

Patch Changes

  • #293 e65443a Thanks @lukasIO! - Respect stopLocalTrackOnUnpublish in event of engine disconnect
  • #296 9e78db7 Thanks @lukasIO! - Additional guards against creating localParticipant as remoteParticipant

1.1.7

Patch Changes

1.1.6

Patch Changes

  • #285 fccb2cb Thanks @lukasIO! - Allow AudioCaptureOptions to be passed to ScreenCaptureOptions

1.1.5

Patch Changes

1.1.4

Patch Changes

  • #279 301ccc0 Thanks @lukasIO! - Only restart tracks if they are internally managed by the sdk

1.1.3

Patch Changes

1.1.2

Patch Changes

1.1.1

Patch Changes

1.1.0

Minor Changes

Patch Changes

1.0.4

Patch Changes

  • 3e5e3b8: Fix dynacast fallback when simulcast codec is not available
  • 4a51ae0: Fix getParticipantIdentity returning undefined in some cases

1.0.3

Patch Changes

  • 9487a4d: Fix typescript declaration location

1.0.2

Patch Changes

  • 4effe17: Moving StreamState to Track to improve usability
  • 3bca206: Fix: guard against (multiple) simultaneous reconnect attempts

0.12.0

  • Updated API to create screen share tracks.