-
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)
-
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)
-
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
ReconnectContext
andReconnectPolicy
, 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
getSenderStats
method 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
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.