-
fix: mimeTypeToVideoCodecString should not throw - #1302 (@davidzhao)
-
Keep dd extension id in the session - #1297 (@cnderrauber)
-
Increase default audio bitrates - #1295 (@davidzhao)
-
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)
-
Add SIP publish DTMF feature - #1277 (@s-hamdananwar)
-
Only emit TrackStreamStateChanged events on changed stream state - #1199 (@lukasIO)
-
Fix duplicate ParticipantPermissionsChanged updates for the local participant - #1270 (@davidzhao)
-
Ensure republishing is finished when calling setTrackEnabled methods - #1250 (@lukasIO)
-
Fix permissions for all devices being requested when connecting/disconnecting devices - #1249 (@lukasIO)
-
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)
-
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)
- Add RemoteTrack.setPlayoutDelay and make receiver non-optional in RemoteTrack constructor - #1209 (@lukasIO)
-
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)
-
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 (#1200) - #1203 (@lukasIO)
-
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)
-
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)
-
Fix normalising of default device Ids in DeviceManager - #1162 (@lukasIO)
-
Fix resumeUpstream with local track processors enabled - #1157 (@kyleparrott)
-
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)
-
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)
-
Don't create data channel of publisher until sending data message - #1118 (@cnderrauber)
-
Update to protocol 13 with LeaveRequest Action - #1127 (@lukasIO)
-
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)
-
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)
-
Fix publishing for Chrome M124. Read capabilities from RtcRTPReceiver instead of from sender - #1088 (@lukasIO)
-
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)
-
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)
-
Read deviceId from source mediastreamtrack - #1068 (@lukasIO)
-
Replace protocol submodule with npm package - #1067 (@lukasIO)
-
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)
-
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)
-
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)
-
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)
-
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)
-
Update participant info when getting participant - #1009 (@lukasIO)
-
Avoid throwing unhandled error for simulcast codec tracks - #999 (@lukasIO)
-
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)
- Perform full reconnect on leave during reconnect -
dc95472cca12ad3b150e824da8e3f7e387de0e12
(@lukasIO)
-
Fix for recovering SignalChannel closing during reconnect -
d1fa7554630d9f9fd787784b154eb460c8568894
(@lukasIO) -
Log server offer sdp -
6cd3ae5f0c3c30ce852d7b3f000f1adf2e08eb96
(@lukasIO)
- Await unpublish before re-publishing on signal-reconnect -
eea871c11118ff36a04917dc1008dc9023c662b5
(@lukasIO)
-
Fix stopping old track in
setMediaStreamTrack
- #980 (@mpnri) -
Default screenshare capture resolution to 1080p - #972 (@davidzhao)
-
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)
-
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)
-
Move PeerConnection logic into PCTransportManager - #909 (@lukasIO)
-
Add
startVideo
method andRoomEvent.VideoPlaybackStatusChanged
- #939 (@lukasIO)
-
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.