-
Reset LocalTrack debounced mute when setting new track - #936 (@davideberlein)
-
Treat all signal messages as ping response - #933 (@davidzhao)
-
Correctly apply elementVolume on attach for webaudioMix - #922 (@lukasIO)
-
Simplify multi-codec simulcast usage, backupCodec: true - #923 (@davidzhao)
-
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)
-
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)
-
Handle new format streamId to better sync a/v tracks - #881 (@cnderrauber)
-
Do not support VP9 publishing for FF - #894 (@davidzhao)
- Do not constrain screenshare resolution by default - #889 (@davidzhao)
- Fix vp9 svc failed for screenshare - #882 (@cnderrauber)
-
Log connection error message on region retries - #879 (@lukasIO)
-
Wait for publisher connection after reconnects - #875 (@lukasIO)
-
Make audio analyser cleanup function async - #867 (@kand193)
-
Update h360 video preset - #872 (@davidzhao)
-
Fix infinite metadata loop when canUpdateOwnMetadata is granted - #871 (@davidzhao)
-
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)
-
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)
-
Fix missing ScalabilityMode import when using SVC - #816 (@davidzhao)
-
Adjust default bitrates according to VMAF results - #817 (@davidzhao)
-
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)
-
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)
-
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)
-
Use mutex lock for queueing calls to setProcessor - #756 (@lukasIO)
-
Use active device when publishing a new track - #757 (@lukasIO)
-
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)
-
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)
- Fix mute event handling - #740 (@davidzhao)
-
Increase default adaptiveStream pixelDensity on high-density(mobile) screens - #735 (@davidzhao)
-
Replace event emitter lib with eventemitter3 - #681 (@lukasIO)
-
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)
-
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)
-
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)
-
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)
-
Fix supportsAV1 and supportsVP9 helper functions on Firefox - #689 (@davidzhao)
-
Keep reference to latest joinResponse on engine - #691 (@lukasIO)
-
Ensure engine is always set to undefined when closing - #682 (@lukasIO)
-
Handle connection state mismatch with periodic reconciliation - #680 (@davidzhao)
-
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)
- Fix race condition with full reconnect sequence during server restart - #663 (@davidzhao)
-
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)
-
#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
-
#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
-
#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
-
#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
-
#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
-
#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
- #585
0a33b1a
Thanks @davidzhao! - Prevent concurrent RTCRtpSender.setParameter call to avoid exception
-
#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
-
#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
-
#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
-
#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 #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
- #500
9a57074
Thanks @davideberlein! - add getActiveAudioOutputDevice method to Room
-
#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
-
#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
-
#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
-
#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
-
#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"
-
#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
- #443
438d067
Thanks @lukasIO! - Breaking Decouple SubscriptionStatus and SubscriptionPermissionStatus
-
#440
b74eae6
Thanks @davidzhao! - Improve handling of connection resume failures -
#445
dabebad
Thanks @lukasIO! - Increase event listener limit
-
#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
-
#425
6a77802
Thanks @cnderrauber! - add participant id when reconnecting -
#427
c477b77
Thanks @cnderrauber! - fix video attach to incorrect element when tranceiver reuse
- #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
- #396
027ede3
Thanks @davidzhao! - Send current network type to server
- #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
- #390
b9ca04f
Thanks @davidzhao! - Enable ICE restart for Firefox
- #388
5cc13e4
Thanks @cnderrauber! - don't declare simulcast codecs for firefox
- #384
961fcc4
Thanks @davidzhao! - Perform full reconnect faster when server is unable to resume
- #379
fc97dd1
Thanks @davidzhao! - Use stricter union types for oneof messages
- #369
a3d6de6
Thanks @lukasIO! - Fix reconnect promise not being reset after reconnect attempts are exhausted
- #365
d040aff
Thanks @lukasIO! - Make sure that ParticipantConnected fires before related TrackEvents
- #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
- #330
dbbfe5f
Thanks @lukasIO! - Check for duplicate source publications before adding them to tracks
- #328
aac61a9
Thanks @lukasIO! - Make local track publication timeout instead of waiting indefinitely for server response
- #321
607aa81
Thanks @davidzhao! - Improve reconnect timeout handling
- #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
- #317
68f6ae2
Thanks @theomonnom! - Fix Unity issue with placeholders ' '
- #316
b534b95
Thanks @theomonnom! - Add PublishOptions to Set*Enabled
- #314
d25b86c
Thanks @cnderrauber! - apply av1 bitrate setting
- #308
5b1c5a0
Thanks @lukasIO! - Try to re-aquire mediastreamtrack when device has been disconnected, pause upstream if no device could be acquired
- #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
- #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
- #294
d389fda
Thanks @cnderrauber! - keep mediastream id unchange for migration
- #296
9e78db7
Thanks @lukasIO! - Additional guards against creating localParticipant as remoteParticipant
- #289
c65e206
Thanks @davidzhao! - Reconcile local mute status after resuming connection
- #287
3da0099
Thanks @davidzhao! - Fix handling of permissions after resubscribe
- #282
20584eb
Thanks @davidzhao! - Improved duplicate connect handling
- #280
b0a5f6a
Thanks @davidzhao! - Fixed reconnection with the same Room object
- #275
591c218
Thanks @davidzhao! - Fixed TrackPublished events not firing correctly in some cases
- #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
- #268
fc121f4
Thanks @davidzhao! - Fixed AdaptiveStream incorrectly using element width as height
- #262
879392c
Thanks @cnderrauber! - refine preferred codec
- 3e5e3b8: Fix dynacast fallback when simulcast codec is not available
- 4a51ae0: Fix getParticipantIdentity returning
undefined
in some cases
- 9487a4d: Fix typescript declaration location
- 4effe17: Moving StreamState to Track to improve usability
- 3bca206: Fix: guard against (multiple) simultaneous reconnect attempts
- Updated API to create screen share tracks.