Commit Graph

2433 Commits

Author SHA1 Message Date
Paul Wells ad341d41f5 start telemetry participant worker to collect signal stats (#2538)
* start telemetry participant worker to collect signal stats

* format

* resolve room

* tidy
2024-03-03 02:47:51 -08:00
cnderrauber b58307f144 Support XR request/response for rtt calculation (#2536)
* Support XR request/response for rtt calculation

* Update pkg/sfu/downtrack.go

Co-authored-by: David Zhao <dz@livekit.io>

---------

Co-authored-by: David Zhao <dz@livekit.io>
2024-03-03 12:34:49 +08:00
renovate[bot] cbc1d1b1ce Update go deps (#2529)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-03-02 10:03:57 -08:00
Raja Subramanian dbe2af3886 Remove subscriber if track closed while adding subscriber. (#2537)
* Remove subscriber if track closed while adding subscriber.

It is possible that the track is closed when subscriber add is
processed. That subscriber would have been dangling off a closed track.

Check again after adding subscriber if track is closed.
If it is, remove the subscriber and return error so that subscription
manager re-resolves.

* oops, wrong unlock
2024-03-02 23:12:20 +05:30
Denys Smirnov 9a6d25674d Validate SIP trunks and rules when creating new ones. (#2535) 2024-03-01 19:29:32 +02:00
Raja Subramanian 6a0b72c357 Use SubscriberID() is calls to DeleteDownTrack. (#2533)
Thank you @cnderrauber for catching this.
2024-03-01 15:21:00 +05:30
Raja Subramanian 9e334c7510 Refactoring channel handling (#2532)
* Refactoring channel handling

* Add a version to SubscriberID()
2024-03-01 15:08:07 +05:30
Raja Subramanian 95011d64f8 Annotate max subscribe layer change with events. (#2531)
Using events to understand what is causing max subscribed layer changes.
Seeing an edge case where all layers are disabled incorrectly.
2024-03-01 11:27:26 +05:30
Jeff 00db7bc79b Update README.md (#2530)
* Update README.md

Link to non-deprecated repo

* Cleanup
2024-02-29 21:11:24 -08:00
Raja Subramanian d40041d013 Use the correct snapshot id for PPS. (#2528)
* Use the correct snapshot id for PPS.

That caused connection quality to operate on small windows.

* remove debug
2024-02-29 22:48:36 +05:30
Raja Subramanian ea66eae9f5 Start moving things to structured logging (#2527) 2024-02-29 14:35:19 +05:30
Raja Subramanian af79224e30 Check on copy. (#2525)
Should not happen, but just being defensive.
2024-02-29 10:25:52 +05:30
cnderrauber a435368278 use dynamic bucket size (#2524) 2024-02-28 16:24:23 +08:00
Raja Subramanian 6519c7596a Demote some logs. (#2523)
When a fallback is not applied, it is due to signal interruption.
ICE connection failing happens. And every time there is error, it is due
to "no selected pair".

Move all of it to `Debugw`. `setting ICE config` is the definitive log
which says if a different ICE config was applied.
2024-02-28 12:11:40 +05:30
David Colburn 098b12981f fix pli throttle locking (#2521)
* fix pli throttle locking

* UpdatePliAndTime still used in cloud
2024-02-27 20:22:38 -08:00
cnderrauber 20ac7fb416 Confirm migrated tracks info before declare migration completed (#2522)
* Confirm migrated tracks info before declare migration completed

* log expected mid
2024-02-28 12:16:34 +08:00
renovate[bot] 5326263d44 Update module github.com/prometheus/client_golang to v1.19.0 (#2514)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-27 18:33:15 -08:00
David Zhao 13151b24a0 Re-enable static check (#2520) 2024-02-27 17:58:56 -08:00
Denys Smirnov f5eb6c8a95 Update usage of core.Fuse. (#2519) 2024-02-28 03:48:58 +02:00
Raja Subramanian 7649e4ffab Post data and signal stats once in 5 minutes (#2518) 2024-02-27 15:45:32 +05:30
Raja Subramanian fb5595880a Missed lock in codec translate (#2516) 2024-02-27 12:23:40 +05:30
Raja Subramanian 8442b2b37c Maintain subscription count. (#2515)
* Maintain subscription count.

Does not affect function as it is not decremented only if limits are
configured. But, good to maintain proper count anyway.

* wire
2024-02-27 12:11:24 +05:30
Raja Subramanian 22474e0f5d Remove unused interface method (#2513)
* Remove unused interface method

* cleanup
2024-02-26 20:55:41 +05:30
Raja Subramanian ef4bc0b46d Support no dynacast pause. (#2512) 2024-02-26 15:15:04 +05:30
Russ d'Sa 8b6fc9ae53 Update README.md (#2511) 2024-02-25 15:44:38 -08:00
Russ d'Sa de08de1a14 Update README.md (#2510) 2024-02-25 15:28:45 -08:00
renovate[bot] 2066bf1154 Update go deps (#2480)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-25 15:24:42 -08:00
Raja Subramanian 6696c1e63d Close published track always. (#2508)
Simplify and close published track always. Avoid the round about path of
unbind to close.
2024-02-25 13:46:55 +05:30
Raja Subramanian eed457d8be Do not need pending migration tracks. (#2507)
Simplify a bit. Pending migratiion tracks need not be maintained as when
a migrated track is added, it is added to up track manager and treated
as a published track. When up track manager closes, published tracks
will close. So, no need to maintain a separate list.
2024-02-25 01:31:04 +05:30
Paul Wells e5b8e25064 use shared psrpc utils (#2506)
* use shared psrpc utils

* fix

* deps
2024-02-24 00:38:49 -08:00
Denys Smirnov 013c933636 Properly persist participant kind. (#2505) 2024-02-23 18:56:11 +02:00
cnderrauber 90ab3fdf68 Reduce FrameIntegrityChecker's allocation (#2504) 2024-02-23 13:10:58 +08:00
Raja Subramanian 132d1ad31a Null out on slice compaction. (#2503)
Go 1.22 does this automatically with `slices` - https://go.dev/blog/generic-slice-functions
2024-02-23 08:20:03 +05:30
cnderrauber 787af0e84c update pion/ice for tcpmux memory improvement (#2500) 2024-02-22 11:55:37 +08:00
Raja Subramanian f3e02d5132 Prevent multiple debounce of quality downgrade. (#2499) 2024-02-22 02:04:13 +05:30
Raja Subramanian 6895eff496 Buffer size config for video and audio. (#2498)
* Buffer size config for video and audio.

There was only one buffer size in config.
In upstream, config value was used for video.
Audio used a hard coded value of 200 packets.

But, in the down stream sequencer, the config value was used for both
video and audio. So, if video was set up for high bit rate (deep
buffers), audio sequencer ended up using a lot of memory too in
sequencer.

Split config to be able to control that and also not hard code audio.

Another optimisation here would be to not instantiate sequencer unkess
NACK is negotiated.

* deprecate packet_buffer_size
2024-02-21 22:58:56 +05:30
Raja Subramanian bd7950f56c Cleaning up logs added for debugging (#2497) 2024-02-21 20:21:59 +05:30
Raja Subramanian 0088eef3c1 Reduce heap for dependency descriptor in forwarding path. (#2496)
* Reduce heap for dependency descriptor in forwarding path.

Marshaled dependency descriptor is held in sequencer adding heap objcts.
Store DD bytes in sequencer to avoid heap usage.

Also, accomodating over sized objects via storing in slice and using it
in case the bytes do not fit in the internal array.

NOTE: Marshal DD still does a make([]byte...), but I think it should be
on the stack given the short use of it. Have to verify.

* fix test and also add cases for oversized codec/dd bytes
2024-02-20 15:30:21 +05:30
cnderrauber 628b7c7024 Fix nil bufferfactory in test (#2495) 2024-02-20 17:06:34 +08:00
Raja Subramanian 4404b6796b Some optimisations in the forwarding path. (#2035)
* WIP commit

* WIP

* Fix tests

* clean up

* Release pool in pacer

* fix tests

* fix tests

* remove debug

* fix test
2024-02-20 10:32:35 +05:30
cnderrauber 91c320770b Replace reflect.Equal with generic sliceEqual (#2494)
* Replace reflect.Equal with generic sliceEqual

* Use library function
2024-02-20 11:57:38 +08:00
Raja Subramanian e4acf02853 Include pending migrate tracks in ParticipantInfo. (#2493)
It is possible that participant state and migration state updates are
racing. And a participant update could end up with no tracks when
migration is being processed.
2024-02-19 13:30:54 +05:30
Raja Subramanian 1e2da70122 Filter out context canceled errors from logging (#2492)
* Filter out context canceled errors from logging

* move a few more warns to debug
2024-02-19 10:19:55 +05:30
Raja Subramanian 262b160464 Simplify migrate complete a bit more. (#2491)
Moving handling of migrated tracks to when the migration state moves to
completed. Pending data channel were already happening only on complete.
Move tracks also to that point.

Handling it earlier meant that track published callback happened and
ownership of track moved to new node before the new node could finish
peer connection. So, in cases where migration did not go through, this
caused confusion of track ownership.
2024-02-19 09:02:01 +05:30
David Zhao 8371848747 Version 1.5.3 (#2489)
* Version 1.5.3

* add missing copyright notices

* update protocol for redis.tls YAML keys
v1.5.3
2024-02-17 12:37:15 -08:00
akarl10 7658e1b60d make 64bit atomics also align on 32bit (#2386)
do this by simply putting them at the front of each struct
see https://pkg.go.dev/sync/atomic#pkg-note-BUG

fixes #2383

Co-authored-by: akarl10 <mike@mwys.mine.bz>
2024-02-17 11:44:55 -08:00
zesun96 110cc83508 fix participant refreshing the room information after room closed (#2445) 2024-02-17 11:32:23 -08:00
renovate[bot] 69ad8a28e4 Update golang Docker tag to v1.22 (#2458)
Generated by renovateBot

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2024-02-17 11:26:20 -08:00
Raja Subramanian e7dd03181c Use smaller default deque size. (#2488) 2024-02-17 21:30:19 +05:30
Raja Subramanian 5ac5bd236a Let track events go through after participant close. (#2487)
* Let track events go through after participant close.

Also, reducing lock scope in telemetry service.

* use shadow
2024-02-17 13:40:07 +05:30