Releases: livekit/livekit
Releases · livekit/livekit
v1.9.11
PLEASE NOTE: The previous release tag v1.9.10 hit a panic under some conditions. Sincerely regret the inconvenience caused. Although we do test rigorously, it is not guaranteed to cover all scenarios. We request you to report any issues you encounter. Thank you.
Added
- Support OpenTelemetry tracing. Add Jaeger support. (#4222)
- Add option to force simuclast codec. (#4226)
- Log timeout in API (#4231, #4232)
- Add participant option for data track auto-subscribe. (#4240)
Changed
- Remove enable arrival time forwarding method. (#4217)
- sfu/receiver and sfu/buffer refactor (#4221, #4224, #4225)
- Change some logs to debugw (#4229)
- Changing field naming of data track packet (#4235)
- Update Pion transport package. (#4237)
- Wrapping the invalid request errors for CreateSipParticipant (#4239)
Fixed
v1.9.10
WARNING: Please do not use this release. There is a run time issue which causes the server to panic. The issue has been addressed in #4219 and #4220.
Added
- add explicit room exists servicestore op (#4175)
- Add support for TURN static auth secret credentials (#3796)
- Make new path for signalling v1.5 support. (#4180)
- report video size from media data for whip (#4211)
- Support preserving external supplied time. (#4212)
Changed
- Use published track for model access in data down track. (#4176)
- Refactor receiver and buffer into Base and higher layer. (#4185, #4186, #4187, #4189, #4196, #4198, #4207)
- Update pion/webrtc to v4.2.1 (#4191)
- Receiver restart related changes. (#4192, #4200, #4202, #4208)
- Do not warn about track not bound if participant is not ready. (#4205, #4206)
Fixed
v1.9.9
Added
- Add support for RTP stream restart. (#4161)
Changed
- Avoid duplicate track add to room track manager. (#4152, #4153)
- Consistently undo update to sequence number and timestamp when the incoming packet cannot be sequenced. (#4156)
- deregister observability function when participant is closed (#4157)
- Ensure subscribe data track handles are unique (#4162)
- move delete to oss service store (#4164)
- clean up manual roomservice log redaction (#4165)
- skip lost sequence number ranges in getIntervalStats (#4166, #4169)
Fixed
v1.9.8
Added
- Mark RTCP buffer Write as noinline. (for better heap attribution) (#4138)
- add debug metric for tracking references (#4134)
Changed
- Use isEnding to indicate if down track could be resumed. (#4132)
- switch participant callbacks to room to listener interface (#4136)
- protocol deps to get inactive file adjusted memory usage. (#4137)
- update webrtc to 4.1.8 to pick up DTLS fingerprint check during handshake (#4140)
Fixed
v1.9.7
v1.9.6
Added
- Control latency of lossy data channel (#4088)
- logger proto redaction. (#4090)
- Record join/publish/subscribe cancellations (#4102, #4104)
Fixed
- Fix "address" typo in transport logs (addddress → address) (#4097)
- Clear stereo=1 if stereo is not enabled. (#4101)
- Participant session close deadlock fixes (#4107, #4113, #4116)
Changed
v1.9.4
Added
- Log reason for subscriber not being able to determine codec. (#4071)
- Kind details for connector (#4072)
Fixed
- Prevent invalid track access while peer connection is shutting down. (#4054)
Changed
- Update PsRPC to get redis pipeliner implementation (#4055)
- Forwarding latency measurement. (#4056. #4057, #4059, #4061, #4062, #4067, #4080)
- Update pion/transport to v3.1.1 (to get batch I/O ping-pong buffer) (#4070)
- Use sync.Pool for objects in packet path. (#4066)
- Bump protocol to pull sip validation changes and error mapping (#4081)
v1.9.3
Added
- Opportunistic video layer allocation on setting max spatial layer. (#4003, #4030, #4031, #4033)
- use env var for GOARCH. (#4012)
- Use simulcast codec as default policy for audio track. (#4040)
- Enable AbsCaptureTimeURI in RTC configuration. (#4043)
- Add prom histogram for forwarding latency and jitter. (#4044, #4045)
Fixed
- Correct direction for request/response for prom counters. (#4027)
- Do not bind buffer if codec is invalid. (#4028)
- Remove ~ from rid which indicates disabled layer to get the actual rid. (#4032)
- Prevent leakage of previous codec after codec regression. (#4035, #4037)
- fix: add missing Unlock() in AddReceiver. (#4036)
Changed
v1.9.2
Added
- Use gzip reader pool (#3903)
- Rpcs for ingress proxy WHIP (#3911)
- Include agent_name as a participant attribute (#3914)
- Clean code as there is no oss sweeper for ingress (#3918)
- Support simulcasting of audio (#3920)
- Subscrbed audio codecs - update from remote nodes. (#3921)
- Log some information around high forwarding latency. (#3944)
- feat: server rpc apis (#3904)
- short circuit participant broadcast filter in livestream mode (#3955)
- Adjust for hold time when fowarding RTCP report. (#3956)
- Add node_ip to config-sample.yaml (#3960)
- add idempotent reference count to telemetry stats worker (#3964)
- add config for user data recording (#3966)
- Provide the InputVideo/AudioState to Ingress in WHIPRTCConnectionNotify (#3982)
- Add encryption datapacket type (#3869)
- Allow passing inline trunk for outbound calls. (#3987)
- Log RPC details. (#3991)
- "Power of Two Random Choices" option for node selection (#3785)
- Adding ProviderInfo to GetSIPTrunkAuthenticationResponse (#3993)
- Use answer with mid -> trackID mapping when in single peer connection (#4005)
- Include mid -> trackID in both SDP offer and answer. (#4007)
Fixed
- add incoming request id to request response message (#3912)
- Simulcast audio fixes (#3925)
- Fix dynacast subscriber node clearing on move participant. (#3926)
- mediatransportutil crash fix for logging local address (#3930)
- Do DD restart only if DD structure is present. (#3935)
- Avoid matching on empty track id. (#3937)
- fix stats worker closed condition (#3965)
- Update deps to fix redis issue when 1 cluster address is provided (#3969)
- Revert unintentional change to not handle transport fallback (#3970)
- Do not panic of redis is not configured (#3981)
- Sort codec layers when adding track (#3998)
- Resort to full search for requested quality is not available. (#4000)
- Do not try to read stats from peer connection after close. (#4002)
- Update pion/webrtc to prevent GetStats panic. (#4004)
Changed
- update protocol for sip api change (#3902)
- Refactor subscribedTrack + mediaTrackSubscriptions. (#3908)
- Set publisher codec preferences after setting remote description (#3913)
- update protocol for psrpc (#3915)
- Wait for
SetRemoteDescriptionbefore configuring senders. (#3924) - Update mediatransportutil to log external IP found via STUN. (#3929)
- Add debugging from DD frame number wrap around. (#3933)
- More debugging of DD jump (#3934)
- Use difference in key frame counter to stop seeder. (#3936)
- Update protocol for SipCreateParticipant (#3939)
- mediatransportutil to log local address when validating external IP (#3942)
- Use microseconds for forwarding stats. (#3943)
- Tweaks tresholds for logging high forwarding latency/jitter. (#3945)
- Flush stats when there are no packets. (#3947)
- handle terminated job requests (#3948)
- Switch ops queue a singly linked list. (#3949)
- Revert "Switch ops queue a singly linked list." (#3950)
- Adjust stream allocator ping interval based on state. (#3951)
- avoid logging on small values (#3958)
- Update protocol for EventKey helper. (#3963)
- Do not force codec regression between opus and red. (#3980)
- Do not start forawarding on out-of-order packet. (#3985)
- Use padding only packets for dummy start of audio. (#3984)
- Support Opus mixed with RED when encrypted. (#3986)
- Limit check to red + opus when looking for primary codec match. (#3988)
- Increment RTP timestamp on padding when using dummy start. (#3989)
- Revert to using silence packets for audio dummy start. (#3999)
- Count request/response packets on both client and server side. (#4001)
- Do not call receiver methods under settings lock. (#4006)
- counterfeiter needs an older version of x/tools (#4009)
v1.9.1
Fixed
- swap pub/sub track metrics (#3717)
- Fix bug with SDP rid, clear only overflow. (#3723)
- Don't check bindState on downtrack.Bind (#3726)
- Return highest available layer if requested quality is higher than max (#3729)
- Fix data packet ParticipantIdentity override logic in participant.go (#3735)
- Fix svc encoding for chrome mobile on iOS (#3751)
- offer could be nil when migrating. (#3752)
- fix(deps): update module github.com/livekit/protocol to v1.39.3 (#3733)
- bounds check layer index (#3768)
- Do not send leave if nil (to older clients) (#3817)
- Fix: RingingTimeout was being skipped for transferParticipant (#3831)
- Handle no codecs in track info (#3859)
- Fix missed unlock (#3861)
- Fix timeout handing in StopEgress (#3876)
- fix: ensure the participant kind is set on refresh tokens (#3881)
- Do not advertise NACK for RED. (#3889)
- Do not send both asb-send-time and twcc. (#3890)
- Prevent race in determining BWE type. (#3891)
Added
- Adds Devin to readme so it auto updates DeepWiki weekly (#3699)
- Allow passing extra attributes to RTC endpoint. (#3693)
- warn about credentials when used in tokens (#3705)
- protocol dep for webhook stats buckets (#3706)
- for real, pick up protocol change for webhooks queue length buckets (#3707)
- implement observability for room metrics (#3712)
- e2e reliability for data channel (#3716)
- Add simulcast support for WHIP. (#3719)
- Add Id to SDP signalling messages. (#3722)
- Set and use rid/spatial layer in TrackInfo. (#3724)
- Add log for dropping out of order reliable message (#3728)
- chore: set workerid on job creation (#3737)
- return error when moving egress/agent participant (#3741)
- SVC with RID -> spatial layer mapping (#3754)
- feat(cli-flags): add option for cpu profiling (#3765)
- Enable H265 by default (#3773)
- Signalling V2 protocol implementation start (#3794)
- Signal v2: envelope and fragments as wire message format. (#3800)
- Grouping all signal messages into participant_signal. (#3801)
- starting signaller interface (#3802)
- Signal handling interfaces and participant specific HTTP PATCH. (#3804)
- Split signal segmenter and reassembler. (#3805)
- Filling out messages unlikely to change in v2. (#3806)
- Use signalling utils from protocol (#3807)
- Validation end point for v2 signalling. (#3811)
- More v2 signalling changes (#3814)
- Minor tweak to keep RPC type at service level. (#3815)
- Add country label to edge prom stats. (#3816)
- HTTP DELETE of participant session (#3819)
- Get to the point of establishing subscriber peer connection. (#3821)
- Get to the point of connecting publisher PC and using it for async signalling (#3822)
- Support join request as proto + base64 encoded query param (#3836)
- Use wrapped join request to be able to support compressed and uncompressed. (#3838)
- handle SyncState in join request (#3839)
- Support per simulcast codec layers. (#3840)
- Support video layer mode from client and make most of the code mime aware (#3843)
- Send participant_connection_aborted when participant session is closed (#3848)
- Support G.711 A-law and U-law (#3849)
- Extract video size from media stream (#3856)
- update mediatransport util for ice port 3478 (#3877)
- Single peer connection mode (#3873)
- handle frame number wrap back in svc (#3885)
- Use departure timeout from room preset. (#3888)
- Use RequestResponse to report protocol handling errors (#3895)
Changed
- Add a trend check before declaring joint queuing region. (#3701)
- Small changes to add/use helper functions for length checks. (#3704)
- remove unused ws signal read loop (#3709)
- Flush stats on close (#3713)
- Do not require create permission for WHIP participant. (#3715)
- Create client config manager in room manager constructor. (#3718)
- Clear rids from default for layers not published. (#3721)
- Clear rids if not present in SDP. (#3731)
- Revert clearing RIDs. (#3732)
- Take ClientInfo from request. (#3738)
- remove unused code (#3740)
- reuse compiled client config scripts (#3743)
- feat(cli): update to urfave/cli/v3 (#3745)
- move egress roomID load to launcher (#3748)
- Log previous allocation to see changes. (#3759)
- Do not need to just clean up receivers. Remove that interface. (#3760)
- ClearAllReceivers interface is used to pause relay tracks. (#3761)
- Temporary change: use pre-defined rids (#3767)
- Revert "Temporary change: use pre-defined rids" (#3769)
- Log SDP rids to understand the mapping better. (#3770)
- Limit taking rids from SDP only in WHIP path. (#3771)
- Set rids for all codecs. (#3772)
- Return default layer for invalid rid + track info combination. (#3778)
- Normalize known rids. (#3779)
- forward agent id to job state (3786)
- Map ErrNoResponse to ErrRequestTimedOut in StopEgress to avoid returning 503 (#3788)
- Set participant active when peerconnection connected (#3790)
- Handle Metadata field from RoomConfig (#3798)
- [🤖 readme-manager] Update README (#3808)
- [🤖 readme-manager] Update README (#3809)
- Rename RTCRest -> WHIP (#3829)
- Delete v2 signalling (#3835)
- Clean up missed v2 pieces (#3837)
- Update go deps (#3849)
- Populate SDP cid in track info when available. (#3845)
- Log signal messages as debug. (#3851)
- Log signal messages on media node. (#3852)
- Log track settings more. (#3853)
- Update pion deps (#3863)
- Update golang Docker tag to v1.25 (#3864)
- Update module github.com/livekit/protocol to v1.40.0 (#3865)
- Remove unnecessary check (#3870)
- chunk room updates (#3880)
- Switch known rids from 012 -> 210, used by OBS. (#3882)
- init ua parser once (#3883)
- Revert to using answer for migration case. (#3884)
- Handle migration better in single peer connection case. (#3886)