Raja Subramanian and GitHub
cbb2c61787
Publish/Unpublish counter match. ( #4173 )
...
Published counter was bumped up only when not migrating in, but it was
decremented when a migrating participant leaves without expectation to
resume. That could have resulted in negative counts.
Always change counters irrespective of migration or expected to resume
on leave. Control events send based on migration/resume.
2025-12-18 10:16:27 +05:30
Raja Subramanian and GitHub
fb849edc6a
Minor clean up ( #4172 )
2025-12-18 08:46:40 +05:30
Anunay Maheshwari and GitHub
c28e5e450f
fix(kindToProto): update protocol ( #4171 )
2025-12-17 23:32:02 +05:30
Raja Subramanian and GitHub
47324abd0e
Drop run away receiver reports. ( #4170 )
2025-12-17 21:58:47 +05:30
Paul Wells and GitHub
462ec324be
prevent uint overflow setting packet not found count ( #4169 )
2025-12-17 06:54:23 -08:00
Raja Subramanian and GitHub
5c841b8ea1
Some logging changes. ( #4168 )
...
* Some logging changes.
Trying to chase a case of large sequence number gap on subscriber side
where packets are sent after a long time.
* return values instead of logging
2025-12-17 18:05:29 +05:30
Paul Wells and GitHub
2f2d0a5735
skip lost sequence number ranges in getIntervalStats ( #4166 )
2025-12-17 00:02:51 -08:00
Paul Wells and GitHub
898ebe058c
clean up manual roomservice log redaction ( #4165 )
...
* clean up manual roomservice log redaction
* deps
2025-12-16 23:02:45 -08:00
Paul Wells and GitHub
3e41725395
move delete to oss service store ( #4164 )
2025-12-16 22:00:43 -08:00
Raja Subramanian and GitHub
5964efbba5
Ensure subscribe data track handles are unique ( #4162 )
2025-12-16 13:52:05 +05:30
Raja Subramanian and GitHub
a26c48304a
Add support for RTP stream restart. ( #4161 )
...
* Add support for RTP stream restart.
When an unhandled packet is encountered, try a restart sequence.
Restart happens when 5 packets with contiguous sequence numbers and same
or increasing time stamps are received. Note that this does not work for
B-frame type of scenarios, but that is true for receive path handling
even before this. As WebRTC does not use B-frames, it is fine. But,
needs to be looked at again if B-frames are necessary.
It is controlled by a config that is disabled by default.
* clean up
* debug log
2025-12-16 13:21:39 +05:30
Raja Subramanian and GitHub
386f0b3822
fix typo in clearing index when removing track from room track manager ( #4158 )
2025-12-14 19:57:39 +05:30
Paul Wells and GitHub
0abfb2515c
deregister observability function when participant is closed ( #4157 )
...
* deregister observability function when participant is closed
* tidy
2025-12-14 04:21:07 -08:00
Raja Subramanian and GitHub
97aba5e77b
Consistently undo update to sequence number and timestamp when the ( #4156 )
...
incoming packet cannot be sequenced.
2025-12-13 15:46:04 +05:30
Raja Subramanian and GitHub
2317c29531
Fix panic while removing track from room track manager. ( #4153 )
...
Cannot range and use `slices.Delete` in the loop.
2025-12-12 14:19:18 +05:30
Raja Subramanian and GitHub
a0a28ac5e3
Avoid duplicate track add to room track manager. ( #4152 )
...
* Avoid duplicate track add to room track manager.
Don't have proof that this happens, but in the leak chase, this is
another component at room level and holds references to tracks. Guessing
this is not cleaning tracks till room is closed.
* add a report
2025-12-12 12:42:04 +05:30
Raja Subramanian and GitHub
f01008f876
Revert telemetry stats worker wait configuration. ( #4151 )
...
Mostly reverting https://github.com/livekit/livekit/pull/4148 . Leaving
the one bit to pass in a wait time to `Flush`.
2025-12-12 10:56:25 +05:30
Raja Subramanian and GitHub
ca4b56d2d5
Handle case of sequence number jump just after start. ( #4150 )
...
It is possible that the stream stops just after start and
restarts much later introducing a large gap in sequence number.
That could look like an unhandled case because the wrap back handler
does not have enough packets yet.
Let other checks based on time stamp gap take effect and only if that
also leaves the sequence number unhandled, drop the packet.
2025-12-12 00:29:15 +05:30
Raja Subramanian and GitHub
97099cae3e
Configurable telemetry stats worker clean up wait. ( #4148 )
...
* Configurable telemetry stats worker clean up wait.
* make worker clean up wait setting atomic
2025-12-11 11:25:32 +05:30
changgesi and GitHub
d7db7cb389
chore: fix a large number of spelling issues ( #4147 )
...
Signed-off-by: changgesi <changgesi@outlook.com >
2025-12-11 09:34:13 +05:30
Raja Subramanian and GitHub
cadf2ad9d8
Release v1.9.8 ( #4145 )
...
Mainly to pick up leak fixes.
v1.9.8
2025-12-10 15:32:12 +05:30
Raja Subramanian and GitHub
498304cdd9
defensive nil check ( #4144 )
2025-12-10 13:33:08 +05:30
Raja Subramanian and GitHub
20f6a49780
Store ddParser in atomic.Pointer ( #4143 )
...
* Store ddParser in atomic.Pointer
as release is handled outside lock
* log space
* make non-struct methods to release packets
2025-12-10 13:01:17 +05:30
Raja Subramanian and GitHub
037cb9062f
release ext packet if patching fails ( #4142 )
2025-12-10 12:09:49 +05:30
Raja Subramanian and GitHub
dd598ef23f
Release ExtPacket if dependency descriptor or other parsing fails ( #4141 )
2025-12-10 11:05:19 +05:30
Raja Subramanian and GitHub
35b0e2bc21
update webrtc to 4.1.8 to pick up DTLS fingerprint check during handshake ( #4140 )
2025-12-10 00:03:32 +05:30
Raja Subramanian and GitHub
1c1a836c3c
Mark RTCP buffer Write as noinline. ( #4138 )
...
Seeing a bunch of objects in ReadStreamSRTP.write which does not make
a lot of sense as the function does not allocate anything
(https://github.com/pion/srtp/blob/8fe528a0c4ebb5c46d40a9fd5b77e5b6655fa919/stream_srtp.go#L68-L77 )
RTP buffer was marked noinline in an easrlier PR.
Marking RTCP buffer write also as noinline to check if heap reporting
changes.
2025-12-08 22:30:30 +05:30
Raja Subramanian and GitHub
ea9b217738
protocol deps to get inactive file adjusted memory usage. ( #4137 )
2025-12-08 22:07:24 +05:30
Raja Subramanian and GitHub
64f3d1e972
switch participant callbacks to room to listener interface ( #4136 )
...
* switch participant callbacks to room to listener interface
* mage generate
* clean up
* clear listener
* clean up
* use interface in up data track manager
* tweaks
* Paul feedback - should reduce the diff as this keeps the room handlers as is except making methods for a couple of anonymous handlers
* clean up
2025-12-08 15:59:45 +05:30
Paul Wells and GitHub
c6e6c0215f
add debug metric for tracking references ( #4134 )
2025-12-07 11:39:21 -08:00
Raja Subramanian and GitHub
a30c79fa6d
Use isEnding to indicate if down track could be resumed. ( #4132 )
...
There is no need to cache down track if participant is going away.
2025-12-06 19:55:20 +05:30
Raja Subramanian and GitHub
8c241ecf12
Fix RTCP reader leak in DownTrack. ( #4131 )
...
When a participant is closing, RTCP readers should be cleaned up from
factory even if the participant is expected to resume. The resumed
participant will be a new participant session and peer connection(s) and
everything will be set up again.
2025-12-06 17:49:23 +05:30
Raja Subramanian and GitHub
3eef869a68
Do not pause rid in SDP ( #4129 )
2025-12-05 15:57:31 +05:30
Raja Subramanian and GitHub
8e01e595b8
Release 1.9.7 ( #4128 )
...
Mainly to get the concurrent map access fix.
v1.9.7
2025-12-05 11:13:05 +05:30
Raja Subramanian and GitHub
7c1a0fab7c
Fix concurrent map access. ( #4127 )
...
https://github.com/livekit/livekit/issues/4126
2025-12-05 10:48:10 +05:30
Raja Subramanian and GitHub
14446b1cc1
Let participant close remove the published tracks. ( #4125 )
2025-12-04 22:37:08 +05:30
cnderrauber and GitHub
fa0633aa3e
move utils.WrapAround to mediatransportutil ( #4124 )
2025-12-04 17:45:11 +08:00
Raja Subramanian and GitHub
f8706cd470
Update pion/ice to stop gather first on close ( #4123 )
...
* Update pion/ice to stop gather first on close
* fix data race in test
2025-12-04 12:22:52 +05:30
Raja Subramanian and GitHub
7954748d7a
Data tracks ( #4089 )
...
* WIP
* WIP
* Starting to add some signalling integration testing.
* Working tests.
* fix tests
* Forward data packets (#4096 )
* WIP commit
* WIP
* WIP
* fix forwarding
* address PR comments
* move some methods from LocalParticipant to Participant interface
* handle subscription update
* add extensions and tests
* more packet tests
* add test for replace extension and fix a bug
* update protocol and add config
2025-12-04 10:44:34 +05:30
Raja Subramanian and GitHub
7158d98366
log bucket growth ( #4122 )
2025-12-03 18:48:02 +05:30
Raja Subramanian and GitHub
04b35eb626
Release v1.9.6 ( #4121 )
...
* Release v1.9.6
Marking v1.9.5 as scratched.
* typo
v1.9.6
2025-12-01 12:41:10 +05:30
Raja Subramanian and GitHub
ebdcead511
Update mediatransportutil to get bucket packet size limit. ( #4120 )
2025-12-01 11:31:37 +05:30
Raja Subramanian and GitHub
411b09f6ca
Release v1.9.5 ( #4119 )
2025-12-01 10:51:07 +05:30
Raja Subramanian and GitHub
8dcf235a02
Update pion/ice - attempt to address tcp packet conn close hang ( #4116 )
2025-11-30 20:06:19 +05:30
Raja Subramanian and GitHub
64c651431e
Update mediatransportutil ( #4115 )
...
- New bucket API to pass in max packet size and sequence number offset
and seequence number size generic type
- Move OWD estimator to mediatransportutil.
2025-11-28 21:51:53 +05:30
Raja Subramanian and GitHub
0a2943bbc5
Clean up bits added to debug peer connection close hang. ( #4114 )
2025-11-28 10:30:39 +05:30
Raja Subramanian and GitHub
9c483a693a
Use released version v1.8.41 of pion/sctp ( #4113 )
2025-11-27 21:01:00 +05:30
Raja Subramanian and GitHub
35c79a57d7
Update SCTP hash, had the wrong one in previous PR ( #4111 )
2025-11-27 15:52:45 +05:30
Raja Subramanian and GitHub
e0fbbef1cd
Update pion/sctp with RFC9260 revert ( #4110 )
2025-11-27 15:32:10 +05:30
Raja Subramanian and GitHub
f3c8091797
Try SCTP with read deadline to unblock abort. ( #4109 )
2025-11-27 13:18:06 +05:30