Emit transcription on transcribedParticipantIdentity and update protocol - #1177 (@lukasIO)
Wait for pending publish promise before attempting to unpublish track - #1178 (@lukasIO)
Ensure app visibility listeners are only added for video tracks - #1173 (@renovate)
Fix activeSpeakers has old participant when participant sid changed - #1180 (@zesun96)
Override sender getter on LocalVideoTrack - #1141 (@lukasIO)
Add degradationPreference option for LocalVideoTrack - https://github.com/livekit/client-sdk-js/pull/1138 (@lukasIO)
Honor calls to track.stop() during an ongoing restart attempt - https://github.com/livekit/client-sdk-js/pull/1131 (@lukasIO)
Add check for getSynchronizationSources support - https://github.com/livekit/client-sdk-js/pull/1136 (@lukasIO)
Add leave req full reconnect simulation scenario - https://github.com/livekit/client-sdk-js/pull/1137 (@lukasIO)
Ensure DD ext for svc codecs - https://github.com/livekit/client-sdk-js/pull/1132 (@cnderrauber)
Allow options to be passed into connection checker - #1102 (@cscherban)
Await data publisher connection without multiple negotiations - #1107 (@lukasIO)
Add non-svc mode (L1T1) for vp9/av1 - #1109 (@cnderrauber)
Support more scalability mode - #1104 (@cnderrauber)
Create processorElement before processor init - #1091 (@xdef)
Improve VideoSenderStats with FPS and targetBitrate - #1090 (@davidzhao)
This version fixes video publishing in M124. Due to a change of behavior in Chrome 124 (currently in Beta channel), video publishing is broken in versions prior to 2.0.9
Set degradationPreference to maintain-resolution for screen share tracks - #1080 (@davidzhao)
Handle SVC compatibility with Safari and Chrome prior to M113 - #1079 (@davidzhao)
Add sanity check for duplicate cryptors and log more errors - #1082 (@lukasIO)
Fix quality issues with SVC screenshares - #1077 (@davidzhao)
Export SubscriptionError from protocol - #1075 (@davidzhao)
Normalize audiooutput device id for webAudio mode - #1051 (@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)
Only perform mute/unmute actions if necessary - #1048 (@lukasIO)
Make sure a 401 ConnectionError is thrown on invalid token permissions - #1049 (@lukasIO)