Change Log
2.11.2
Patch Changes
2.11.1
Patch Changes
2.11.0
Minor Changes
-
Defer publishing until signal is connected - #1465 (@lukasIO)
-
Address chrome ideal device handling change by defaulting to exact device matching - #1478 (@lukasIO)
Patch Changes
2.10.0
Minor Changes
- Add prefer regression for backup codec policy - #1456 (@cnderrauber)
Patch Changes
-
Improve error message for WS errors during connection attempt - #1466 (@lukasIO)
-
Closable spatial layers for svc encoding - #1458 (@cnderrauber)
-
Improve connection URL handling and add unit tests - #1468 (@lukasIO)
-
Pass facingMode to initial getUserMedia call in track restart - #1451 (@lukasIO)
2.9.9
Patch Changes
-
Fix trailing slash handling in WebSocket URL pathname - #1440 (@Tanney-102)
-
Ensure only suspended audio context gets resumed - #1452 (@lukasIO)
2.9.8
Patch Changes
2.9.7
Patch Changes
2.9.6
Patch Changes
-
Automatically attempt to resume suspended audio contexts on click - #1431 (@lukasIO)
-
Fix ignored constraints in LocalTrack.restart - #1435 (@rktguswjd)
-
log ice candidates as debug rather than trace - #1437 (@haydenbr)
-
fix: handle server url with params correctly - #1366 (@jiyeyuran)
2.9.5
Patch Changes
-
fix: properly remove text stream controllers on stream close - #1422 (@lukasIO)
-
Reject publishing with insufficient permissions present - #1418 (@lukasIO)
2.9.4
Patch Changes
-
Improve utf8 text split and add unit test - #1414 (@lukasIO)
-
Fix applying default processors from captureDefaults - #1416 (@lukasIO)
2.9.3
Patch Changes
2.9.2
Patch Changes
-
Disable simulcast for screenshare backup codec - #1409 (@cnderrauber)
-
added new connection tests - #1402 (@davidzhao)
2.9.1
Patch Changes
2.9.0
Minor Changes
-
Add backupCodecPolicy to TrackPublishDefaults - #1399 (@cnderrauber)
The default policy of backup codec is
codec regression
for maxium compatibility, which means the publisher stops sending primary codec and all subscribers will receive backup codec even primary codec is supported.
It changes the default behaviormulti-codec simulcast
in the previous version, will not break the functionality of the previous version but only cause potential extra bandwidth usage. The user can set the policy tomulti-codec simulcast
to keep the previous behavior. -
Move RPC registration to room level and deprecate localParticipant level registration - #1396 (@lukasIO)
-
Populate name property of LiveKit errors and add reasonName for enums - #1385 (@lukasIO)
Patch Changes
-
Replace internal instanceof checks with typeguards - #1378 (@lukasIO)
-
Remove track from pending publishing on device errors - #1380 (@lukasIO)
-
Allow audio processing for react native without AudioContext - #1395 (@davidliu)
-
use a error code 14 for data publish errors - #1374 (@davidzhao)
-
Only emit TrackSubscriptionEvent once on room - #1392 (@lukasIO)
-
Redact access_token parameter in debug logs - #1394 (@hughns)
-
Don't hang on audio context trying to resume - #1379 (@lukasIO)
2.8.1
Patch Changes
-
expose inbound-rtp.id as streamId - #1367 (@s-hamdananwar)
-
Emit ActiveDeviceChanged event also for audio-output - #1372 (@lukasIO)
2.8.0
Minor Changes
Patch Changes
-
Ensure maxFps applies for very low framerates - #1362 (@lukasIO)
-
Emit MediaDeviceError only when acquiring tracks fails - #1365 (@lukasIO)
2.7.5
Patch Changes
2.7.4
Patch Changes
-
Support swapping out the E2EEManager for react-native - #1345 (@davidliu)
-
fix: prevent monitoring leak when stopOnUnpublish is false - #1348 (@davidzhao)
-
Prevent undefined access to engine in connection reconciler - #1349 (@lukasIO)
-
Fix sdp connection address mismatch - #1342 (@cnderrauber)
-
Set participant attributes as soon as possible, making them available in all related events - #1344 (@holzgeist)
2.7.3
Patch Changes
2.7.2
Patch Changes
2.7.1
Patch Changes
2.7.0
Minor Changes
- Add support for detecting video element visibility in Document PiP (can be tested on the examples/demo) - #1325 (@davideberlein)
Patch Changes
- Expose
ReconnectContext
andReconnectPolicy
, for use in custom reconnection implementations. - #1328 (@wuhkuh)
2.6.3
Patch Changes
-
Add voiceIsolation constraint to AudioCaptureOptions - #1320 (@lukasIO)
-
Forward disconnect reason on leave requests and ConnectionErrors - #1323 (@lukasIO)
2.6.2
Patch Changes
2.6.1
Patch Changes
-
Add ConnectionErrorReason when cancelling ongoing connection attempt - #1315 (@lukasIO)
-
Make Remote Tracks
getSenderStats
method public - #1309 (@mpnri)
2.6.0
Minor Changes
Patch Changes
-
fix: mimeTypeToVideoCodecString should not throw - #1302 (@davidzhao)
-
Keep dd extension id in the session - #1297 (@cnderrauber)
2.5.10
Patch Changes
-
Increase default audio bitrates - #1295 (@davidzhao)
2.5.9
Patch Changes
-
Track E2EE key validity on a per index basis - #1284 (@hughns)
-
Use happy-dom for testing instead of jsdom - #1283 (@hughns)
-
[e2ee] await key update before emitting key ratchet event - #1288 (@hughns)
2.5.8
Patch Changes
-
Add SIP publish DTMF feature - #1277 (@s-hamdananwar)
2.5.7
Patch Changes
-
Only emit TrackStreamStateChanged events on changed stream state - #1199 (@lukasIO)
-
Fix duplicate ParticipantPermissionsChanged updates for the local participant - #1270 (@davidzhao)
2.5.6
Patch Changes
2.5.5
Patch Changes
2.5.4
Patch Changes
2.5.3
Patch Changes
-
Ensure republishing is finished when calling setTrackEnabled methods - #1250 (@lukasIO)
-
Fix permissions for all devices being requested when connecting/disconnecting devices - #1249 (@lukasIO)
2.5.2
Patch Changes
-
Pass connect options to room from connection checkers - #1245 (@jespermjonsson)
-
Switch active device if previously selected device becomes unavailable - #1237 (@lukasIO)
-
Treat MissingKey as decryption failure to prevent spamming the logs - #1241 (@hughns)
-
Fix trackProcessor creation from LocalParticipant.createTracks - #1247 (@lukasIO)
2.5.1
Patch Changes
-
Use ReturnTypes of built-in functions for critical timers - #1236 (@lukasIO)
-
Set default scalabilityMode to L3T3_KEY in sample/comment - #1238 (@cnderrauber)
-
Expose localTrackSubscribed event on localParticipant and room - #1229 (@lukasIO)
-
fast track publication - #1228 (@cnderrauber)
-
Add firstReceivedTime and lastReceivedTime to received TranscriptionSegments - #1223 (@lukasIO)
-
Ensure SVC layers are starting from LOW quality - #1226 (@lukasIO)
2.5.0
Minor Changes
- Add RemoteTrack.setPlayoutDelay and make receiver non-optional in RemoteTrack constructor - #1209 (@lukasIO)
Patch Changes
-
Clear pingInterval at start of disconnect processing - #1217 (@lukasIO)
-
Add internal LocalTrackSubscribed engine event - #1222 (@lukasIO)
-
Use kind instead of mediaType for outbound-rtp stats in PublishVideoCheck and PublishAudioCheck helpers - #1207 (@svajunas-budrys)
2.4.2
Patch Changes
2.4.1
Patch Changes
-
Set region settings when fetching them on first connection - #1201 (@lukasIO)
-
Handle SignalReconnecting event in ReconnectCheck helper - #1198 (@svajunas-budrys)
-
Fix RoomEvent.ParticipantAttributesChanged not emitting for local participant (livekit#1200) - #1203 (@lukasIO)
2.4.0
Minor Changes
Patch Changes
-
Include participant identity in CryptoError errors - #1186 (@hughns)
-
Only set loglevel for specified logger if present - #1196 (@lukasIO)
-
Ensure permission request for listDevices works for audio outputs in Firefox - #1188 (@lukasIO)
2.3.2
Patch Changes
-
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)
2.3.1
Patch Changes
2.3.0
Minor Changes
Patch Changes
-
Fix normalising of default device Ids in DeviceManager - #1162 (@lukasIO)
-
Fix resumeUpstream with local track processors enabled - #1157 (@kyleparrott)
2.2.0
Minor Changes
Patch Changes
-
Use legacy SVC encoding specification for React-Native - #1093 (@davidzhao)
-
Make sure setting a new processor doesn't remove the processor html element - #1149 (@lukasIO)
-
Also set audioOutput on audioElements when using webAudioMix - #1145 (@lukasIO)
2.1.5
Patch Changes
2.1.4
Patch Changes
-
Add degradationPreference option for LocalVideoTrack - #1138 (@lukasIO)
-
Honor calls to track.stop() during an ongoing restart attempt - #1131 (@lukasIO)
-
Add check for getSynchronizationSources support - #1136 (@lukasIO)
-
Add leave req full reconnect simulation scenario - #1137 (@lukasIO)
-
Ensure DD ext for svc codecs - #1132 (@cnderrauber)
2.1.3
Patch Changes
-
Don't create data channel of publisher until sending data message - #1118 (@cnderrauber)
-
Update to protocol 13 with LeaveRequest Action - #1127 (@lukasIO)
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
Patch Changes
-
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)
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)
2.0.8
Patch Changes
-
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)
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
-
Read deviceId from source mediastreamtrack - #1068 (@lukasIO)
-
Replace protocol submodule with npm package - #1067 (@lukasIO)
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)
-
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
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)
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)
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 withawait room.getSid()
. - #983 (@lukasIO) -
Rename
participant.tracks
toparticipant.trackPublications
- #947 (@lukasIO) -
Rename getTrack to getTrackPublications and participants to remoteParticipants - #945 (@lukasIO)
Minor Changes
Patch Changes
-
Update participant info when getting participant - #1009 (@lukasIO)
-
Avoid throwing unhandled error for simulcast codec tracks - #999 (@lukasIO)
1.15.11
Patch Changes
-
Resume audio playback status when switching back to tab on iOS -
c247f7d67c423f5d7ea09549cd2eb44a95762cbb
(@lukasIO) -
Buffer room events during reconnect -
f83124d881dc962ff940b806c45da4d1b8c0b86e
(@lukasIO) -
Fix state handling issue in SignalClient -
1200535d0c87d127cebd0b07330dd0a688843287
(@holzgeist)
1.15.10
Patch Changes
- Perform full reconnect on leave during reconnect -
dc95472cca12ad3b150e824da8e3f7e387de0e12
(@lukasIO)
1.15.9
Patch Changes
-
Fix for recovering SignalChannel closing during reconnect -
d1fa7554630d9f9fd787784b154eb460c8568894
(@lukasIO) -
Log server offer sdp -
6cd3ae5f0c3c30ce852d7b3f000f1adf2e08eb96
(@lukasIO)
1.15.8
Patch Changes
- Await unpublish before re-publishing on signal-reconnect -
eea871c11118ff36a04917dc1008dc9023c662b5
(@lukasIO)
1.15.7
Patch Changes
-
Fix stopping old track in
setMediaStreamTrack
- #980 (@mpnri) -
Default screenshare capture resolution to 1080p - #972 (@davidzhao)
1.15.6
Patch Changes
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
1.15.1
Patch Changes
-
Move PeerConnection logic into PCTransportManager - #909 (@lukasIO)
-
Add
startVideo
method andRoomEvent.VideoPlaybackStatusChanged
- #939 (@lukasIO)
1.15.0
Minor Changes
Patch Changes
-
Reset LocalTrack debounced mute when setting new track - #936 (@davideberlein)
-
Treat all signal messages as ping response - #933 (@davidzhao)
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)
-
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)
-
Fix Typescript compilation error in angular setups - #901 (@pabloFuente)
-
Don't disconnect room before retrying new regions - #910 (@lukasIO)
1.14.1
Patch Changes
-
Handle new format streamId to better sync a/v tracks - #881 (@cnderrauber)
-
Do not support VP9 publishing for FF - #894 (@davidzhao)
1.14.0
Minor Changes
- Do not constrain screenshare resolution by default - #889 (@davidzhao)
Patch Changes
- Fix vp9 svc failed for screenshare - #882 (@cnderrauber)
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
-
Make audio analyser cleanup function async - #867 (@kand193)
-
Update h360 video preset - #872 (@davidzhao)
-
Fix infinite metadata loop when canUpdateOwnMetadata is granted - #871 (@davidzhao)
1.13.2
Patch Changes
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
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)
-
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)
-
Do not attempt to restart screen share tracks when re-publishing after reconnect - #802 (@lukasIO)
-
Add failureTolerance to KeyProvider options (E2EE) - #810 (@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)
-
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
Patch Changes
-
Update adaptive stream dimensions when a remote track is being detached - #766 (@burzomir)
-
Fixed missed event listeners on MediaStreamTrack - #768 (@davidzhao)
-
Emit activeDeviceChanged when publishing local track - #759 (@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)
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)
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
- Fix mute event handling - #740 (@davidzhao)
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
-
Fix supportsAV1 and supportsVP9 helper functions on Firefox - #689 (@davidzhao)
-
Keep reference to latest joinResponse on engine - #691 (@lukasIO)
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 livekit#665 - #670 (@lukasIO)
1.8.0
Minor Changes
-
#633
95bd94e
Thanks @lukasIO! - Give up on reconnections if token is invalid -
#634
f085fbe
Thanks @lukasIO! - Allow manual operation on audio publications with adaptiveStream enabled
Patch Changes
-
#655
8d7f854
Thanks @lukasIO! - Remove page visibility listener when last element gets detached -
#658
756cf56
Thanks @lukasIO! - Stop monitoring track on unsubscribe -
#652
bda2fa9
Thanks @renovate! - chore(deps): update devdependencies (non-major) -
#653
201fcda
Thanks @renovate! - fix(deps): update dependency webrtc-adapter to v8.2.2 -
#629
cb380c2
Thanks @davidliu! - Identify react-native apps when connecting to server -
#654
958eef2
Thanks @lukasIO! - Expose DataChannel buffer status events -
#651
80ec8d7
Thanks @davidliu! - Support screen pixel density for react-native -
#632
111971d
Thanks @lukasIO! - Replace async queue with mutex lock for mute operations
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! - EmitRoomEvent.LocalAudioSilenceDetected
if aLocalAudioTrack
is silent after publishing
1.7.0
Minor Changes
1.6.9
Patch Changes
-
#612
347c497
Thanks @lukasIO! - Allow to specify exact constraint for room.switchActiveDevice -
#609
068c05e
Thanks @lukasIO! - Reject publish future if engine disconnects -
#615
505a78e
Thanks @davidzhao! - Only trigger AudioPlaybackFailed when error is NotAllowed
1.6.8
Patch Changes
-
#605
4bc4183
Thanks @cnderrauber! - Receive remote participant disconnected updates while reconnecting -
#592
fea43e4
Thanks @lukasIO! - Add support for some experimental getDisplayMedia options in ScreenShareCaptureOptions -
#608
5efa607
Thanks @lukasIO! - Defer publishing of tracks during reconnection -
#597
27dbd6a
Thanks @lukasIO! - Add support for topics on data messages
1.6.7
Patch Changes
-
#593
f218236
Thanks @cnderrauber! - Disable red by default for stereo track -
#600
75d7556
Thanks @davidzhao! - internal getter connectedServerAddress is has been changed to an async function getConnectedServerAddress -
#595
75776b8
Thanks @davidzhao! - Fixed incorrect state with resume then reconnect -
#596
a9aa74f
Thanks @davidzhao! - Track.streamState defaults to active
1.6.6
Patch Changes
- #585
0a33b1a
Thanks @davidzhao! - Prevent concurrent RTCRtpSender.setParameter call to avoid exception
1.6.5
Patch Changes
-
#575
b8fd583
Thanks @HermanBilous! - Provide more context to ConnectionError when connecting to a room -
#573
b71ec61
Thanks @cnderrauber! - Add reconnect reason and signal rtt calculation -
#581
6b35e07
Thanks @lukasIO! - Only restart track after permission change if not muted
1.6.4
Patch Changes
-
#566
f06ee24
Thanks @otakueadwine! - Export CheckStatus type -
#569
b53f5c5
Thanks @lukasIO! - EmitParticipant.PermissionChanged
event also for remote participants -
#562
b9cd661
Thanks @kilimnik! - Emit DeviceUnsupportedError when getDisplayMedia is not supported on a device -
#568
6e35f39
Thanks @davidzhao! - Fixed handling of unknown signal messages -
#570
4ee0f5a
Thanks @lukasIO! - Drop local participant updates with wrong sid
1.6.3
Patch Changes
-
#553
fe08625
Thanks @cnderrauber! - add reconnect response to update configuration while reconnecting -
#555
0bc67ba
Thanks @cnderrauber! - Enable nack for audio track only if offer wants it -
#559
d88ca0a
Thanks @renovate! - Update dependency ua-parser-js to v1.0.33 -
#556
100ac49
Thanks @davidliu! - Allow for internal background timer implementation to be overridden
1.6.2
Patch Changes
1.6.1
Patch Changes
-
#543
fc6a015
Thanks @davidzhao! - Wait for dimensions to become available prior to publishing -
#541
af223f4
Thanks @lukasIO! - MakeunpublishTrack
async, emit TrackUnpublished before TrackPublished within the same update -
#535
f1ba2ab
Thanks @lukasIO! - Improve autoplay when multiple streams are attached to the same media element livekit#534 -
#540
03711ee
Thanks @lukasIO! - Set local name for simulated participants via updateInfo -
#542
260ad8b
Thanks @cnderrauber! - Add autosubscribe option for sample -
#538
c4786ee
Thanks @lukasIO! - Fix race edgecase between subsequent disconnect and connect calls
1.6.0
Minor Changes
- #500
9a57074
Thanks @davideberlein! - add getActiveAudioOutputDevice method to Room
Patch Changes
-
#531
b6cb814
Thanks @lukasIO! - Add util function to simulate participants within a room -
#498
9ce03bc
Thanks @lukasIO! - mute track if ended event has been fired on underlying mediastreamtrack -
#525
5e824b7
Thanks @lukasIO! - use mutex to prevent simultaneous calls to disconnect -
#511
c8e8438
Thanks @davidliu! - Track event for track restart -
#506
d448805
Thanks @davidliu! - Ignore stopObservingElementInfo calls on RemoteVideoTracks when not adaptive stream -
#510
cb67610
Thanks @davidliu! - Fix error in getStats for local tracks on react-native -
#515
28febc0
Thanks @lukasIO! - Add createAudioAnalyser util function -
#513
dade768
Thanks @lukasIO! - Set minimum of 1 for scaleResolutionDownBy -
#514
6a748fc
Thanks @lukasIO! - grace period for WS to close gracefully -
#505
1f264cc
Thanks @lukasIO! - Exp: Add option for passing AudioContext as WebAudioOptions
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
-
#489
efc2039
Thanks @lukasIO! - Add ConnnectionCheck helper class -
#493
859a103
Thanks @lukasIO! - Check for ws readystate before attempting to send signal request -
#412
ebbd669
Thanks @davidzhao! - Expose Room.isRecording to indicate if the Room is being recorded -
#484
9a54cb4
Thanks @cnderrauber! - Add fps field to SubscribeSetting -
#492
b9dedaf
Thanks @lukasIO! - Only emit metadatachanged if the metadata actually changed
1.4.4
Patch Changes
-
#475
7af32ad
Thanks @lukasIO! - Fix reconnection attempts potentially getting stuck -
#455
104db9d
Thanks @lukasIO! - Add option formaxJoinAttempts
to retry establishing initial signal connection if it failed -
#480
1452210
Thanks @lukasIO! - Register engine events on localParticipant when updated -
#470
0c0e5cc
Thanks @cnderrauber! - Add stereo and red support for track level -
#478
676ecd3
Thanks @davidliu! - Fixes for latest transceiver APIs in react-native-webrtc -
#472
859e3bf
Thanks @davidzhao! - Fixes switchAudioDevice not respecting those preferences for future tracks -
#477
4aa82a7
Thanks @cnderrauber! - Don't override client provide ice servers -
#472
859e3bf
Thanks @davidzhao! - peer connnection timeout is now configurable -
#471
022f4cb
Thanks @davidzhao! - Allow subscription settings before fully subscribed
1.4.3
Patch Changes
-
#446
88743d4
Thanks @lukasIO! - Add experimental option to pipe attached audio tracks through webaudio API -
#466
a34daba
Thanks @davidzhao! - Fail subscription when reusing stopped MediaStreamTrack -
#467
951a07c
Thanks @cnderrauber! - Update ice servers from join response -
#464
af04dda
Thanks @davidzhao! - Increase default audio bitrate; additional audio presets -
#469
fcad243
Thanks @lukasIO! - Add experimental method to prepare connection for speeding up subsequent first connection attempt -
#468
91541ab
Thanks @lukasIO! - Emit AudioPlaybackFailed event also in experimental web audio mix mode"
1.4.2
Patch Changes
-
#451
627aa3e
Thanks @lukasIO! - Add isLocal getter to participant class -
#462
5024e26
Thanks @KallynGowdy! - Fix local participant events being disabled before tracks unpublished -
#463
90260b8
Thanks @lukasIO! - Fix: reset connect future to undefined when promise is rejected -
#456
84f00b8
Thanks @davidzhao! - Added supportsAV1 helper function -
#460
ef3c38f
Thanks @scott-lc! - Add missing ESM types subpath export condition to support TS Node16 and NodeNext module resolution
1.4.1
Patch Changes
1.4.0
Minor Changes
- #443
438d067
Thanks @lukasIO! - Breaking Decouple SubscriptionStatus and SubscriptionPermissionStatus
Patch Changes
-
#440
b74eae6
Thanks @davidzhao! - Improve handling of connection resume failures -
#445
dabebad
Thanks @lukasIO! - Increase event listener limit
1.3.3
Patch Changes
-
#423
e4ead3d
Thanks @lukasIO! - Add subscriptionStatusChanged event and isDesired getter for RemoteTrack Publications -
#432
3c80714
Thanks @cnderrauber! - send previous server offer when reconnecting -
#431
4004426
Thanks @lukasIO! - Add RoomEvent.Connected, fix connectFuture rejection exception -
#436
1715877
Thanks @lukasIO! - Use explicit defaults for room and connect options
1.3.2
Patch Changes
-
#425
6a77802
Thanks @cnderrauber! - add participant id when reconnecting -
#427
c477b77
Thanks @cnderrauber! - fix video attach to incorrect element when tranceiver reuse
1.3.1
Patch Changes
-
#414
6b748da
Thanks @cnderrauber! - add force relay configuration -
#418
82107cf
Thanks @davidzhao! - Fixed compatibility with older browsers with setCodecPreferences (Chrome 96) -
#419
84a96b2
Thanks @cnderrauber! - fix video track lost for safari migration -
#420
0c45c73
Thanks @lukasIO! - Add permission track event to typed callbacks
1.3.0
Minor Changes
Patch Changes
-
#400
d6dd20c
Thanks @lukasIO! - Fallback to unmunged sdp for answer -
#334
8cb17ec
Thanks @lukasIO! - Add experimental support for fallback codec -
#396
027ede3
Thanks @davidzhao! - Send current network type to server -
#410
5b31a19
Thanks @lukasIO! - Move monitor APIs in parent classes -
#393
bfad4b3
Thanks @wcarle! - Prevent multiple redundant monitors from being started if start is called multiple times on a RemoteTrack -
#397
0f6b399
Thanks @cnderrauber! - enable simucalst codecs for firefox -
#403
fb2b221
Thanks @lukasIO! - Add fallback for addTrack if addTransceiver is not supported
1.2.11
Patch Changes
-
#390
b9ca04f
Thanks @davidzhao! - Enable ICE restart for Firefox -
#388
5cc13e4
Thanks @cnderrauber! - don't declare simulcast codecs for firefox -
#395
213233c
Thanks @lukasIO! - Set metadata when creating participant -
#391
e5851ea
Thanks @lukasIO! - Log consolidated serverinfo on connect -
#384
961fcc4
Thanks @davidzhao! - Perform full reconnect faster when server is unable to resume -
#385
c11d99d
Thanks @lukasIO! - Don't reacquire muted tracks when app visibility changes -
#386
e64cb2f
Thanks @lukasIO! - Add fallback to unmunged sdp offer
1.2.10
Patch Changes
-
#377
08d6c60
Thanks @lukasIO! - Add ping pong heartbeat for signal connection -
#382
8499723
Thanks @lukasIO! - Disable simulcast if an user provides empty array for custom layers -
#376
8ec5c02
Thanks @lukasIO! - Fix setting name on RemoteParticipant creation -
#379
fc97dd1
Thanks @davidzhao! - Use stricter union types for oneof messages
1.2.9
Patch Changes
1.2.8
Patch Changes
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 -
#368
7f8d1ce
Thanks @lukasIO! - Return after signal connection failed -
#366
b52e7b3
Thanks @lukasIO! - Handle reconnect case in onTrackAdded
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 -
#311
61a41e0
Thanks @lukasIO! - Avoid multiple calls to getUserMedia for getLocalDevices -
#332
b3df000
Thanks @lukasIO! - Clean up simulcast codecs in unpublishTrack
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 -
#321
607aa81
Thanks @davidzhao! - Improve reconnect timeout handling -
#329
5aea501
Thanks @lukasIO! - Log warning if multiple tracks of the same source are published -
#322
b9555d9
Thanks @cnderrauber! - enable audio nack -
#323
02c025f
Thanks @lukasIO! - Remove internal event listeners from local participant on disconnect -
#321
607aa81
Thanks @davidzhao! - Customizable reconnect policy -
#325
56694b7
Thanks @lukasIO! - unpublish track based on published track.sender
1.2.2
Patch Changes
- #317
68f6ae2
Thanks @theomonnom! - Fix Unity issue with placeholders '
'
1.2.1
Patch Changes
-
#316
b534b95
Thanks @theomonnom! - Add PublishOptions to Set*Enabled -
#314
d25b86c
Thanks @cnderrauber! - apply av1 bitrate setting
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 -
#310
40a51f5
Thanks @lukasIO! - Deprecate publishOnly connect option
Patch Changes
-
#309
9b8599d
Thanks @cnderrauber! - fix safari data channel migration failed -
#306
c786143
Thanks @davidzhao! - Determine track allowed status primarily by precense of Track -
#306
c786143
Thanks @davidzhao! - Improved Track event handling for permission changed -
#306
c786143
Thanks @davidzhao! - Room.disconnect is now an async function
1.1.9
Patch Changes
-
#303
3a76634
Thanks @davidzhao! - Do not stop tracks that are userProvided during mute -
#299
22ee04a
Thanks @davidzhao! - Do not attempt to add subscribed track when disconnected -
#297
aef3470
Thanks @lukasIO! - Mirror muted state on remote mediastreamtrack -
#301
a2f36d6
Thanks @lukasIO! - Re-use external queue library for signalling queue -
#300
f294120
Thanks @lukasIO! - Queue and await parallel calls to mute/unmute for a track -
#304
9bb9430
Thanks @lukasIO! - Forward reason of disconnected event
1.1.8
Patch Changes
-
#293
e65443a
Thanks @lukasIO! - Respect stopLocalTrackOnUnpublish in event of engine disconnect -
#294
d389fda
Thanks @cnderrauber! - keep mediastream id unchange for migration -
#296
9e78db7
Thanks @lukasIO! - Additional guards against creating localParticipant as remoteParticipant
1.1.7
Patch Changes
- #289
c65e206
Thanks @davidzhao! - Reconcile local mute status after resuming connection
1.1.6
Patch Changes
-
#285
fccb2cb
Thanks @lukasIO! - Allow AudioCaptureOptions to be passed to ScreenCaptureOptions -
#287
3da0099
Thanks @davidzhao! - Fix handling of permissions after resubscribe
1.1.5
Patch Changes
- #282
20584eb
Thanks @davidzhao! - Improved duplicate connect handling
1.1.4
Patch Changes
-
#279
301ccc0
Thanks @lukasIO! - Only restart tracks if they are internally managed by the sdk -
#280
b0a5f6a
Thanks @davidzhao! - Fixed reconnection with the same Room object
1.1.3
Patch Changes
-
#275
591c218
Thanks @davidzhao! - Fixed TrackPublished events not firing correctly in some cases -
#276
99fba24
Thanks @lukasIO! - compute initial visible value for element infos manually
1.1.2
Patch Changes
-
#271
9df9cbe
Thanks @davidzhao! - Fixed Dynacast not activated when default codec is set to empty -
#267
cdc3d3d
Thanks @cnderrauber! - Start publishing backwards-compatible codec only when subscribers need it -
#273
ed2d790
Thanks @lukasIO! - Increase emtpy video stream size
1.1.1
Patch Changes
- #268
fc121f4
Thanks @davidzhao! - Fixed AdaptiveStream incorrectly using element width as height
1.1.0
Minor Changes
Patch Changes
- #262
879392c
Thanks @cnderrauber! - refine preferred codec
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.