-
expose inbound-rtp.id as streamId - #1367 (@s-hamdananwar)
-
Emit ActiveDeviceChanged event also for audio-output - #1372 (@lukasIO)
-
Ensure maxFps applies for very low framerates - #1362 (@lukasIO)
-
Emit MediaDeviceError only when acquiring tracks fails - #1365 (@lukasIO)
-
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)
- Add support for detecting video element visibility in Document PiP (can be tested on the examples/demo) - #1325 (@davideberlein)
- Expose
ReconnectContextandReconnectPolicy, for use in custom reconnection implementations. - #1328 (@wuhkuh)
-
Add voiceIsolation constraint to AudioCaptureOptions - #1320 (@lukasIO)
-
Forward disconnect reason on leave requests and ConnectionErrors - #1323 (@lukasIO)
-
Add ConnectionErrorReason when cancelling ongoing connection attempt - #1315 (@lukasIO)
-
Make Remote Tracks
getSenderStatsmethod public - #1309 (@mpnri)
-
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
stopProcessorparam 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.sidand replaces it withawait room.getSid(). - #983 (@lukasIO) -
Rename
participant.trackstoparticipant.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
startVideomethod 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.switchActiveDevicehas 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
TrackUnsubscribedevents 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
95bd94eThanks @lukasIO! - Give up on reconnections if token is invalid -
#634
f085fbeThanks @lukasIO! - Allow manual operation on audio publications with adaptiveStream enabled
-
#655
8d7f854Thanks @lukasIO! - Remove page visibility listener when last element gets detached -
#658
756cf56Thanks @lukasIO! - Stop monitoring track on unsubscribe -
#652
bda2fa9Thanks @renovate! - chore(deps): update devdependencies (non-major) -
#653
201fcdaThanks @renovate! - fix(deps): update dependency webrtc-adapter to v8.2.2 -
#629
cb380c2Thanks @davidliu! - Identify react-native apps when connecting to server -
#654
958eef2Thanks @lukasIO! - Expose DataChannel buffer status events -
#651
80ec8d7Thanks @davidliu! - Support screen pixel density for react-native -
#632
111971dThanks @lukasIO! - Replace async queue with mutex lock for mute operations
-
#625
b74da67Thanks @wjaykim! - Emit mute status events also for unsubscribed publications -
#622
2268333Thanks @lukasIO! - Don't auto-pause videos when element is in pictureInPicture mode (only applies when adaptiveStream is enabled) -
#627
0342650Thanks @lukasIO! - Add room option to configure automatic disconnect on page leave -
#628
4ed8b89Thanks @lukasIO! - Respect incoming data message order by processing message events sequentially -
#623
d8e7a20Thanks @lukasIO! - EmitRoomEvent.LocalAudioSilenceDetectedif aLocalAudioTrackis silent after publishing
-
#612
347c497Thanks @lukasIO! - Allow to specify exact constraint for room.switchActiveDevice -
#609
068c05eThanks @lukasIO! - Reject publish future if engine disconnects -
#615
505a78eThanks @davidzhao! - Only trigger AudioPlaybackFailed when error is NotAllowed
-
#605
4bc4183Thanks @cnderrauber! - Receive remote participant disconnected updates while reconnecting -
#592
fea43e4Thanks @lukasIO! - Add support for some experimental getDisplayMedia options in ScreenShareCaptureOptions -
#608
5efa607Thanks @lukasIO! - Defer publishing of tracks during reconnection -
#597
27dbd6aThanks @lukasIO! - Add support for topics on data messages
-
#593
f218236Thanks @cnderrauber! - Disable red by default for stereo track -
#600
75d7556Thanks @davidzhao! - internal getter connectedServerAddress is has been changed to an async function getConnectedServerAddress -
#595
75776b8Thanks @davidzhao! - Fixed incorrect state with resume then reconnect -
#596
a9aa74fThanks @davidzhao! - Track.streamState defaults to active
- #585
0a33b1aThanks @davidzhao! - Prevent concurrent RTCRtpSender.setParameter call to avoid exception
-
#575
b8fd583Thanks @HermanBilous! - Provide more context to ConnectionError when connecting to a room -
#573
b71ec61Thanks @cnderrauber! - Add reconnect reason and signal rtt calculation -
#581
6b35e07Thanks @lukasIO! - Only restart track after permission change if not muted
-
#566
f06ee24Thanks @otakueadwine! - Export CheckStatus type -
#569
b53f5c5Thanks @lukasIO! - EmitParticipant.PermissionChangedevent also for remote participants -
#562
b9cd661Thanks @kilimnik! - Emit DeviceUnsupportedError when getDisplayMedia is not supported on a device -
#568
6e35f39Thanks @davidzhao! - Fixed handling of unknown signal messages -
#570
4ee0f5aThanks @lukasIO! - Drop local participant updates with wrong sid
-
#553
fe08625Thanks @cnderrauber! - add reconnect response to update configuration while reconnecting -
#555
0bc67baThanks @cnderrauber! - Enable nack for audio track only if offer wants it -
#559
d88ca0aThanks @renovate! - Update dependency ua-parser-js to v1.0.33 -
#556
100ac49Thanks @davidliu! - Allow for internal background timer implementation to be overridden
-
#543
fc6a015Thanks @davidzhao! - Wait for dimensions to become available prior to publishing -
#541
af223f4Thanks @lukasIO! - MakeunpublishTrackasync, emit TrackUnpublished before TrackPublished within the same update -
#535
f1ba2abThanks @lukasIO! - Improve autoplay when multiple streams are attached to the same media element #534 -
#540
03711eeThanks @lukasIO! - Set local name for simulated participants via updateInfo -
#542
260ad8bThanks @cnderrauber! - Add autosubscribe option for sample -
#538
c4786eeThanks @lukasIO! - Fix race edgecase between subsequent disconnect and connect calls
- #500
9a57074Thanks @davideberlein! - add getActiveAudioOutputDevice method to Room
-
#531
b6cb814Thanks @lukasIO! - Add util function to simulate participants within a room -
#498
9ce03bcThanks @lukasIO! - mute track if ended event has been fired on underlying mediastreamtrack -
#525
5e824b7Thanks @lukasIO! - use mutex to prevent simultaneous calls to disconnect -
#511
c8e8438Thanks @davidliu! - Track event for track restart -
#506
d448805Thanks @davidliu! - Ignore stopObservingElementInfo calls on RemoteVideoTracks when not adaptive stream -
#510
cb67610Thanks @davidliu! - Fix error in getStats for local tracks on react-native -
#515
28febc0Thanks @lukasIO! - Add createAudioAnalyser util function -
#513
dade768Thanks @lukasIO! - Set minimum of 1 for scaleResolutionDownBy -
#514
6a748fcThanks @lukasIO! - grace period for WS to close gracefully -
#505
1f264ccThanks @lukasIO! - Exp: Add option for passing AudioContext as WebAudioOptions
-
#487
e1a0a7eThanks @lukasIO! - Sync muted state with track.enabled when calling replaceTrack" -
#485
1cc2cabThanks @lukasIO! - Don't filter out default devices in order to detect OS Level default switches
-
#489
efc2039Thanks @lukasIO! - Add ConnnectionCheck helper class -
#493
859a103Thanks @lukasIO! - Check for ws readystate before attempting to send signal request -
#412
ebbd669Thanks @davidzhao! - Expose Room.isRecording to indicate if the Room is being recorded -
#484
9a54cb4Thanks @cnderrauber! - Add fps field to SubscribeSetting -
#492
b9dedafThanks @lukasIO! - Only emit metadatachanged if the metadata actually changed
-
#475
7af32adThanks @lukasIO! - Fix reconnection attempts potentially getting stuck -
#455
104db9dThanks @lukasIO! - Add option formaxJoinAttemptsto retry establishing initial signal connection if it failed -
#480
1452210Thanks @lukasIO! - Register engine events on localParticipant when updated -
#470
0c0e5ccThanks @cnderrauber! - Add stereo and red support for track level -
#478
676ecd3Thanks @davidliu! - Fixes for latest transceiver APIs in react-native-webrtc -
#472
859e3bfThanks @davidzhao! - Fixes switchAudioDevice not respecting those preferences for future tracks -
#477
4aa82a7Thanks @cnderrauber! - Don't override client provide ice servers -
#472
859e3bfThanks @davidzhao! - peer connnection timeout is now configurable -
#471
022f4cbThanks @davidzhao! - Allow subscription settings before fully subscribed
-
#446
88743d4Thanks @lukasIO! - Add experimental option to pipe attached audio tracks through webaudio API -
#466
a34dabaThanks @davidzhao! - Fail subscription when reusing stopped MediaStreamTrack -
#467
951a07cThanks @cnderrauber! - Update ice servers from join response -
#464
af04ddaThanks @davidzhao! - Increase default audio bitrate; additional audio presets -
#469
fcad243Thanks @lukasIO! - Add experimental method to prepare connection for speeding up subsequent first connection attempt -
#468
91541abThanks @lukasIO! - Emit AudioPlaybackFailed event also in experimental web audio mix mode"
-
#451
627aa3eThanks @lukasIO! - Add isLocal getter to participant class -
#462
5024e26Thanks @KallynGowdy! - Fix local participant events being disabled before tracks unpublished -
#463
90260b8Thanks @lukasIO! - Fix: reset connect future to undefined when promise is rejected -
#456
84f00b8Thanks @davidzhao! - Added supportsAV1 helper function -
#460
ef3c38fThanks @scott-lc! - Add missing ESM types subpath export condition to support TS Node16 and NodeNext module resolution
- #443
438d067Thanks @lukasIO! - Breaking Decouple SubscriptionStatus and SubscriptionPermissionStatus
-
#440
b74eae6Thanks @davidzhao! - Improve handling of connection resume failures -
#445
dabebadThanks @lukasIO! - Increase event listener limit
-
#423
e4ead3dThanks @lukasIO! - Add subscriptionStatusChanged event and isDesired getter for RemoteTrack Publications -
#432
3c80714Thanks @cnderrauber! - send previous server offer when reconnecting -
#431
4004426Thanks @lukasIO! - Add RoomEvent.Connected, fix connectFuture rejection exception -
#436
1715877Thanks @lukasIO! - Use explicit defaults for room and connect options
-
#425
6a77802Thanks @cnderrauber! - add participant id when reconnecting -
#427
c477b77Thanks @cnderrauber! - fix video attach to incorrect element when tranceiver reuse
- #414
6b748daThanks @cnderrauber! - add force relay configuration
- #418
82107cfThanks @davidzhao! - Fixed compatibility with older browsers with setCodecPreferences (Chrome 96)
- #419
84a96b2Thanks @cnderrauber! - fix video track lost for safari migration
- #396
027ede3Thanks @davidzhao! - Send current network type to server
- #393
bfad4b3Thanks @wcarle! - Prevent multiple redundant monitors from being started if start is called multiple times on a RemoteTrack
- #397
0f6b399Thanks @cnderrauber! - enable simucalst codecs for firefox
- #390
b9ca04fThanks @davidzhao! - Enable ICE restart for Firefox
- #388
5cc13e4Thanks @cnderrauber! - don't declare simulcast codecs for firefox
- #384
961fcc4Thanks @davidzhao! - Perform full reconnect faster when server is unable to resume
- #379
fc97dd1Thanks @davidzhao! - Use stricter union types for oneof messages
- #369
a3d6de6Thanks @lukasIO! - Fix reconnect promise not being reset after reconnect attempts are exhausted
- #365
d040affThanks @lukasIO! - Make sure that ParticipantConnected fires before related TrackEvents
- #359
31e3883Thanks @lukasIO! - Only reject connection promise if it was triggered by a call to connect()
- #358
8ceceffThanks @lukasIO! - Add safari explicitly to browserslist, to ensure compatibility with Safari 11"
- #363
4665f74Thanks @lukasIO! - Decrease publication timeout to 10s and clean local state on failed unpublish attempts
- #330
dbbfe5fThanks @lukasIO! - Check for duplicate source publications before adding them to tracks
- #328
aac61a9Thanks @lukasIO! - Make local track publication timeout instead of waiting indefinitely for server response
- #321
607aa81Thanks @davidzhao! - Improve reconnect timeout handling
- #322
b9555d9Thanks @cnderrauber! - enable audio nack
- #323
02c025fThanks @lukasIO! - Remove internal event listeners from local participant on disconnect
- #321
607aa81Thanks @davidzhao! - Customizable reconnect policy
- #317
68f6ae2Thanks @theomonnom! - Fix Unity issue with placeholders ' '
- #316
b534b95Thanks @theomonnom! - Add PublishOptions to Set*Enabled
- #314
d25b86cThanks @cnderrauber! - apply av1 bitrate setting
- #308
5b1c5a0Thanks @lukasIO! - Try to re-aquire mediastreamtrack when device has been disconnected, pause upstream if no device could be acquired
- #309
9b8599dThanks @cnderrauber! - fix safari data channel migration failed
- #306
c786143Thanks @davidzhao! - Determine track allowed status primarily by precense of Track
- #306
c786143Thanks @davidzhao! - Improved Track event handling for permission changed
- #306
c786143Thanks @davidzhao! - Room.disconnect is now an async function
- #303
3a76634Thanks @davidzhao! - Do not stop tracks that are userProvided during mute
- #299
22ee04aThanks @davidzhao! - Do not attempt to add subscribed track when disconnected
- #294
d389fdaThanks @cnderrauber! - keep mediastream id unchange for migration
- #296
9e78db7Thanks @lukasIO! - Additional guards against creating localParticipant as remoteParticipant
- #289
c65e206Thanks @davidzhao! - Reconcile local mute status after resuming connection
- #287
3da0099Thanks @davidzhao! - Fix handling of permissions after resubscribe
- #282
20584ebThanks @davidzhao! - Improved duplicate connect handling
- #280
b0a5f6aThanks @davidzhao! - Fixed reconnection with the same Room object
- #275
591c218Thanks @davidzhao! - Fixed TrackPublished events not firing correctly in some cases
- #271
9df9cbeThanks @davidzhao! - Fixed Dynacast not activated when default codec is set to empty
- #267
cdc3d3dThanks @cnderrauber! - Start publishing backwards-compatible codec only when subscribers need it
- #268
fc121f4Thanks @davidzhao! - Fixed AdaptiveStream incorrectly using element width as height
- #262
879392cThanks @cnderrauber! - refine preferred codec
- 3e5e3b8: Fix dynacast fallback when simulcast codec is not available
- 4a51ae0: Fix getParticipantIdentity returning
undefinedin 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.