mirror of
https://github.com/livekit/livekit.git
synced 2026-03-29 09:19:53 +00:00
256 lines
11 KiB
Plaintext
256 lines
11 KiB
Plaintext
# Changelog
|
|
|
|
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [1.3.3] - 2023-01-06
|
|
### Added
|
|
- Signal deduper: ignore duplicate signal messages #1243 #1247 #1257
|
|
- FPS based stream tracker #1267 #1269 #1275 #1281
|
|
- Support forwarding track encryption status #1265
|
|
- Use publisher side sender report when forwarding - improves A/V sync #1286
|
|
|
|
### Fixed
|
|
- When removing a participant, verify SID matches #1237
|
|
- Fixed rare panic when GetSelectedICECandidatePair returns nil #1253
|
|
- Prevent ParticipantUpdate to be sent before JoinResponse #1271 #1272
|
|
- Fixed Firefox connectivity issues when using UDPMux #1270 #1277
|
|
- Fixed subscribing muted track with Egress and Go SDK #1283
|
|
|
|
### Changed
|
|
- ParticipantLeft webhook would not be sent unless connected successfully #1130
|
|
- Updated to Go 1.18+ #1259
|
|
- Updated Egress RPC framework - psrpc #1252 #1256 #1266 #1273
|
|
- Track subscription operations per source track #1248
|
|
- Egress participants do not count in max_participants #1279
|
|
|
|
## [1.3.2] - 2022-12-15
|
|
### Added
|
|
- help-verbose subcommand to print out all flags #1171 #1180
|
|
- Support for Redis cluster #1181
|
|
- Allow loopback candidates to be used via config option #1185
|
|
- Support for high bitrate audio #1188
|
|
- Ability to detect publication errors and force reconnect #1214
|
|
- API secrets are validated upon startup to ensure sufficient security #1217
|
|
|
|
### Fixed
|
|
- Correctly suppress verbose pion logs #1163
|
|
- Fixed memory leak on long running room/participants #1169
|
|
- Force full reconnect when there is no previous answer #1168
|
|
- Fixed potential SSRC collision between participants #1173
|
|
- Prevent RTX buffer and forwarding path colliding #1174
|
|
- Do not set forceRelay when unset #1184
|
|
- Prevent subscription after participant close #1182
|
|
- Fixed lost RTCP packets when incorrect buffer factory was used #1195
|
|
- Fixed handling of high bitrate while adding Opus RED #1196
|
|
- Fixes a rare timing issue leading to connection failure #1208
|
|
- Fixed incorrect handling of | in participant identity #1220 #1223
|
|
- Fixed regression causing Firefox to not connect over TURN #1226
|
|
|
|
### Changed
|
|
- CreateRoom API to allocate the room on RTC node #1155 #1157
|
|
- Check forwarder started when seeding #1191
|
|
- Do not forward media until peer connection is connected #1194
|
|
- Log sampler to reduce log spam #1222
|
|
|
|
## [1.3.1] - 2022-11-09
|
|
### Fixed
|
|
- Fixed logging config causes server to fail to start #1154
|
|
|
|
## [1.3.0] - 2022-11-08
|
|
### Added
|
|
- Ingress Service support #1125
|
|
- Support for web egress #1126
|
|
- Ability to set all configuration params via command line flags #1112
|
|
- Server-side RED encoding for supported clients #1137
|
|
- Opus RED active loss recovery #1139
|
|
- Experimental: fallback to TCP when UDP is unstable #1119
|
|
- Populate memory load in node stats #1121
|
|
|
|
### Fixed
|
|
- Fixed dynacast pausing a layer due to clients (FF) not publishing layer 0 #1117
|
|
- Room.activeRecording updated correctly after users rejoin #1132
|
|
- Don't collect external candidate IP when it's filtered out #1135
|
|
- Install script to use uname without assuming /usr/bin #1138
|
|
|
|
### Changed
|
|
- Allocate packetMeta up front to reduce number of allocations #1108
|
|
- Do not log duplicate packet error. #1116
|
|
- Consolidate getMemoryStats #1122
|
|
- Seed snapshots to avoid saving/restoring in downtrack #1128
|
|
- Remove Dependency Descriptor extension when AV1 is not preferred #1129
|
|
- Always send participant updates prior to negotiation #1147
|
|
- Set track level codec settings for all pending tracks #1148
|
|
- Use Redis universal client to support clustered redis #1149
|
|
|
|
## [1.2.5] - 2022-10-19
|
|
### Added
|
|
- Ability to filter IP addresses from being used #1052
|
|
- Allow TCP fallback on multiple connection failures #1077
|
|
- Added support for track level stereo and RED setting #1086
|
|
|
|
### Fixed
|
|
- Fixed stream allocator with SVC codecs #1053
|
|
- Fixed UDPMux connectivity issues when machine has multiple interfaces #1081
|
|
- Ensure sender reports are in sync after transceiver is re-used #1080
|
|
- Fixed simulcast codec blocking track closure #1082
|
|
- Prevents multiple transport fallback in the same session #1090
|
|
|
|
### Changed
|
|
- Config validation has been enabled. Server will not start if there are invalid config values #1051
|
|
- Improves NACK stats to count as a miss only if i t's not EOF #1061
|
|
- Store track MIME type during publishing #1065
|
|
- Minor cleanup of media track & friends module #1067
|
|
- Split out shared media transport code into livekit/mediatransportutil #1071
|
|
- Cleaned up logging, improved consistency of debug vs info #1073
|
|
- Reduced memory usage with sequencer #1100
|
|
- Improved IP address mapping, handling of multiple IPs #1094
|
|
- Service API requests are logged #1091
|
|
- Default HTTP handler responds with 404 for unknown paths #1088
|
|
|
|
## [1.2.3] - 2022-09-13
|
|
### Added
|
|
- Supervisor framework to improve edge case & error handling #1005 #1006 #1010 #1017
|
|
- Support for stereo Opus tracks #1013
|
|
- Allow CORS responses to be cached to allow faster initial connection #1027
|
|
|
|
### Fixed
|
|
- Fixed SSRC mix-up for simulcasted tracks during session resume #1014
|
|
- Fixed screen corruption for non-simulcasted tracks, caused by probing packets #1020
|
|
- Fixed Handling of Simple NALU keyframes for H.264 #1016
|
|
- Fixed TCPMux & UDPMux mixup when multiple host candidates are offered #1036
|
|
|
|
### Changed
|
|
- Webhook requests are now using Content-Type application/webhook+json to avoid eager JSON parsing #1025
|
|
- Don't automatically add STUN servers when explicit Node IP has been set #1023
|
|
- Automatic TCP and TURN/TLS fallback is now enabled by default #1033
|
|
|
|
### Removed
|
|
- Fully removed references to VP9. LiveKit is focused on AV1. #1004
|
|
|
|
## [1.2.1] - 2022-09-13
|
|
### Added
|
|
- Accepts existing participant ID on reconnection attempts #988
|
|
|
|
### Fixed
|
|
- Fixed ICE restart during candidate gathering #963
|
|
- Ensure TrackInfoAvailable is fired after information is known to be ready #967
|
|
- Fixed layer handling when publisher pauses layer 0 (FireFox is has a tendency to pause lowest layer) #984
|
|
- Fixed inaccurate participant count due to storing stale data #992
|
|
|
|
### Changed
|
|
- Protect against looking up dimensions for invalid spatial layer #977
|
|
- Improvements around migration handling #979 #981 #982 #995
|
|
- Consistent mapping between VideoQuality, rid, and video layers #986
|
|
- Only enable TCP/TURN fallback for supported clients #997
|
|
|
|
## [1.2.0] - 2022-08-25
|
|
### Added
|
|
- Support for NACK with audio tracks (#829)
|
|
- Allow binding HTTP server to specific address, binds to localhost in dev mode(#831)
|
|
- Packet stats from TC (#832)
|
|
- Automatic connectivity fallback to TCP & TURN (#872 #873 #874 #901 #950)
|
|
- Support for client-side ping/pong messages (#871)
|
|
- Support for setCodecPreferences for clients that don't implement it (#916)
|
|
- Opus/RED support: redundant audio transmission is enabled by default (#938 #940)
|
|
|
|
### Fixed
|
|
- Fixed timing issue in DownTrack.Bind/Close (#833)
|
|
- Fixed TCPMux potentially blocking operations (#840)
|
|
- Fixed ICE restart while still in ICE gathering (#895)
|
|
- Fixed Websocket connection hanging if node isn't available to accept connection (#923)
|
|
- Fixed ICE restart/resume in single node mode (#930)
|
|
- Fixed client disconnected in certain conditions after ICE restart (#932)
|
|
|
|
### Changed
|
|
- Move to synchronously handle subscriber dynacast status (#834)
|
|
- Retransmit DD extension in case packets were missed (#837)
|
|
- Clean up stats workers (#836)
|
|
- Use TimedVersion for subscription permission updates (#839)
|
|
- Cleaned up logging (#843 #865 #910 #921)
|
|
- track_published event now includes the participant's ID and identity (#846)
|
|
- Improve synchronization of track publishing/unpublish path (#857)
|
|
- Don't re-use transceiver when pending negotiation (#862)
|
|
- Dynacast and media loss proxy refactor (#894 #902)
|
|
- PCTransport refactor (#907 #944)
|
|
- Improve accuracy of connection quality score (#912 #913)
|
|
- Docker image now builds with Go v1.19
|
|
|
|
|
|
## [1.1.2] - 2022-07-11
|
|
### Added
|
|
- Returns reason when server disconnects a client (#801 #806)
|
|
- Allow livekit-server to start without keys configuration (#788)
|
|
- Added recovery from negotiation failures (#807)
|
|
|
|
### Fixed
|
|
- Fixed synchronization issues with Dynacast (#779 #802)
|
|
- Fixed panic due to timing in Pion's ICE agent (#780)
|
|
- ICELite is disabled by default, improving connectivity behind NAT (#784)
|
|
- Fixed EgressService UpdateLayout (#782)
|
|
- Fixed synchronization bugs with selective subscriptions & permissions (#796 #797 #805 #813 #814 #816)
|
|
- Correctly recover from ICE Restart during an negotiation attempt (#798)
|
|
|
|
### Changed
|
|
- Improved Transceiver re-use to avoid renegotiation (#785)
|
|
- Close room if recorder is the only participant left (#787)
|
|
- Improved connection quality score stability & computation (#793 #795)
|
|
- Set layer state to stopped when paused (#818)
|
|
|
|
### Removed
|
|
- Removed deprecated RecordingService - Egress should be used instead (#811)
|
|
|
|
## [1.1.0] - 2022-06-21
|
|
### Added
|
|
- Add support for Redis Sentinel (#707)
|
|
- Track participant join total + rate in node stats (#741)
|
|
- Protocol 8 - fast connection support (#747)
|
|
- Simulate switch candidate for network connectivity with poor UDP performance (#754)
|
|
- Allow server to disable codec for certain devices (#755)
|
|
- Support for on-demand multi-codec publishing (#762)
|
|
|
|
### Fixed
|
|
- Fixed unclean DownTrack close when removed before bound. (#736)
|
|
- Do not munge VP8 header in place - fixes video corruption (#763)
|
|
|
|
### Changed
|
|
- Reintroduce audio-level quantization to dampen small changes (#732)
|
|
- Allow overshooting maximum when there are no bandwidth constraints. (#739)
|
|
- Improvements to upcoming multi-codec simulcast (#740)
|
|
- Send layer dimensions when max subscribed layers change (#746)
|
|
- Use stable TrackID after unpublishing & republishing (#751)
|
|
- Update egress RPC handler (#759)
|
|
- Improved connection quality metrics (#766 #767 #770 #771 #773 #774 #775)
|
|
|
|
## [1.0.2] - 2022-05-27
|
|
### Changed
|
|
- Fixed edge cases where streams were not allocated (#701)
|
|
- Fixed panic caused by concurrent modifications to stats worker map (#702 #704)
|
|
- Batched subscriber updates to reduce noise in large rooms (#703 #729)
|
|
- Fixed potential data race conditions (#706 #709 #711 #713 #715 #716 #717 #724 #727
|
|
- /debug/pprof endpoint when running in development mode (#708)
|
|
- When audio tracks are muted, send blank frames to induce silence (#710)
|
|
- Fixed stream allocator not upgrading streams after downgrading (#719)
|
|
- Fixed repeated AddSubscriber potentially ignored (#723)
|
|
- Fixed ListEgress API sometimes returning not found (#722)
|
|
|
|
## [1.0.1] - 2022-05-19
|
|
### Changed
|
|
- Update Egress details when changed, fixed Egress APIs (#694)
|
|
|
|
## [1.0.0] - 2022-05-17
|
|
### Added
|
|
- Improved stats around NACKs (#664)
|
|
- Internal structures in preparation for AV1 SVC support (#669)
|
|
### Changed
|
|
- Supports participant identity in permissions API (#633)
|
|
- Fixed concurrent access of stats worker map (#666 #670)
|
|
- Do not count padding packets in stream tracker (#667)
|
|
- Fixed TWCC panic under heavy packet loss (#668)
|
|
- Change state to JOINED before sending JoinResponse (#674)
|
|
- Improved frequency of stats update (#673)
|
|
- Send active speaker update during initial subscription (#676)
|
|
- Updated DTLS library to incorporate security fixes (#678)
|
|
- Improved list-nodes command (#681)
|
|
- Improved screen-share handling in StreamTracker (#683)
|
|
- Inject slience opus packets when muted (#682)
|