Commit Graph

447 Commits

Author SHA1 Message Date
Raja Subramanian
08c764c9bd Do not force an update on unmute. (#613)
Let the subs drive subscription quality update.
2022-04-14 15:35:17 +05:30
David Zhao
69d9cc19bc Switch back to reconnecting only on failure. (#604)
Sometimes peerconnection jumps to disconnected periodically even
when the underlying connection is ok. In these cases we are
triggering unnecessary connection restarts.

Given this, we'll leave the responsibility of early-detecting
disconnections to clients, where they have more control/knowledge
of networking conditions.
2022-04-07 23:11:11 -07:00
David Zhao
4475a028b6 Removed REMB references for publisher (#605) 2022-04-07 18:24:11 -07:00
cnderrauber
665e53aba8 rename log and comment (#601) 2022-04-07 17:28:33 +08:00
cnderrauber
f74144846b create new subscriber datatrack after migration (#600)
* use negotiated data channel in migration case

* create subscriber data track after migration

* fix participant state update

* add participant leave log

* update protocol
2022-04-07 15:43:24 +08:00
David Zhao
8fbe00edb3 Avoid locking when flushing DownTrack (#594) 2022-04-05 23:45:51 -07:00
cnderrauber
1471830990 use negotiated data channel in migration case (#596) 2022-04-06 14:13:31 +08:00
Raja Subramanian
b695376086 Avoid locking in callback (#588) 2022-04-04 21:37:10 +05:30
David Zhao
130aefa597 Use type-specific track prefixes. (#586)
* Use type-specific track prefixes.

Making it easier to identify track type from its ID

* also include track source
2022-03-31 12:35:15 -07:00
Raja Subramanian
4696503790 Include region in ParticipantInfo (#585) 2022-03-31 14:57:55 +05:30
cnderrauber
ffb45f7fe2 change client resume condition to disconnected, not failed (#583) 2022-03-31 13:43:22 +08:00
David Colburn
0b8a180554 Code inspection (#581)
* Code inspection

* fix [4]int64 conversiong
2022-03-30 13:49:53 -07:00
cnderrauber
3f5d4df65d fix subscribe only client migrate with data channel (#579) 2022-03-30 18:45:03 +08:00
cnderrauber
3959251837 add support for vp9 and av1 (#574) 2022-03-28 22:22:48 +08:00
cnderrauber
75ca70aef7 add ipv6 support (#571) 2022-03-28 14:23:48 +08:00
cnderrauber
61655c6ff0 fix firefox reconnect with ice-lite enabled (#565) 2022-03-24 17:38:44 +08:00
cnderrauber
534cc01b85 refine dynacast pause delay (#558)
* refine dynacast pause delay

* fix test
2022-03-23 16:52:40 +08:00
Raja Subramanian
757a59fbcd Use windowing for NACK monitoring (#557)
* Use windowing for NACK monitoring

* Fix test
2022-03-23 13:42:29 +05:30
cnderrauber
b98b828618 throttle quality come down (#556) 2022-03-23 15:27:00 +08:00
sibi
adc20649ce limit speaker events to microhpone track (#553)
* limit speaker events to microhpone track

* PR suggestion
2022-03-22 13:55:06 -07:00
cnderrauber
779fe0f549 revert network cost change (#550) 2022-03-22 19:04:13 +08:00
David Zhao
825d3cdbea Cleanup after disconnected participants. Follow up to #537 (#548) 2022-03-21 20:48:06 -07:00
cnderrauber
63d6b49668 make migrated node has higher candidate priority (#546) 2022-03-22 09:47:43 +08:00
David Zhao
5920672802 feat: unpublish tracks after publish permissions are revoked. (#545)
* feat: unpublish tracks after publish permissions are revoked.

Uses protocol 7 to indicate client support, otherwise it attempts to
mute the tracks.

Also sends back permissions objects of all participants, and cleaned up
our handling of various permissions attributes.

* fix static check
2022-03-21 00:20:48 -07:00
David Zhao
2155405736 Handle non-primary peerconnection if/when it becomes disconnected (#537)
* Handle non-primary peerconnection if/when it becomes disconnected

* avoid storing nil
2022-03-19 00:31:45 -07:00
David Zhao
f14c452f8c Telemetry and webhook improvements. (#535)
* Telemetry and webhook improvements.

* avoid blocking on telemetry channel - increase channel size and drop when full
* send ParticipantJoined webhook when fully joined (i.e. on ParticipantActive)
* send TrackPublished & TrackUnpublished webhooks
* increase number of parallel webhook workers to 50

* update protocol
2022-03-18 23:20:33 -07:00
cnderrauber
832f3fd124 filter unused candidate and refine log (#528)
* filter unused candidate and refine log

* fix test
2022-03-18 12:57:33 +08:00
cnderrauber
82192f524e fix migration state (#520) 2022-03-16 17:58:25 +08:00
cnderrauber
37b76f41b7 set participant to active after subscriber data channel opened (#518) 2022-03-16 12:12:16 +08:00
Raja Subramanian
ae85e55fd4 Using RTPStats across the board (#515)
* WIP commit

* Clean up
2022-03-15 17:47:19 +05:30
cnderrauber
61ac44e5f7 Revert data track change (#513)
* Revert data track change

* clean code
2022-03-15 19:30:10 +08:00
Raja Subramanian
9e8594a9b6 More unification of RTPStats (#510)
* WIP commit

* WIP commit

* Tests

* update protocol
2022-03-14 13:00:27 +05:30
Raja Subramanian
be02611ab7 Locks around data track (#508)
* WIP commit

* Fix migration, thank you Jie
2022-03-12 20:10:46 +05:30
Raja Subramanian
b0e470cd59 Return time since last PLI properly (#507) 2022-03-12 13:15:01 +05:30
Raja Subramanian
4e24df4200 Move RTPStats -> OSS (#506) 2022-03-12 11:21:05 +05:30
Raja Subramanian
80bd45f061 Some clean up (#505)
* WIP commit

* Refactor NTP time

* Clean up

* Update lk protocol
2022-03-11 22:40:49 +05:30
Raja Subramanian
b6975bf7cd Track source based stream tracker config (#503)
* Track source based stream tracker config

* SCREEN_SHARE_AUDIO is an audio source
2022-03-11 12:15:12 +05:30
cnderrauber
e4c321de02 add interface filter config (#502)
* add interface filter config

* Update config-sample.yaml

Co-authored-by: David Zhao <david@davidzhao.com>

* better description

Co-authored-by: David Zhao <david@davidzhao.com>
2022-03-11 14:08:41 +08:00
shishirng
cd2a7c2447 Telemetry: send video layers in TrackPublishedUpdate event (#500)
Signed-off-by: shishir gowda <shishir@livekit.io>
2022-03-10 14:49:01 -05:00
cnderrauber
d31c9f607e fix timing issue for clear receiver (#497) 2022-03-09 21:38:01 +08:00
cnderrauber
184fc93c6a fix panic on close channel (#495) 2022-03-09 11:49:27 +08:00
Raja Subramanian
5b0f171bef Log actual track IDs during subscription, not just the number of tracks (#493)
* Log actual track IDs instead of just number of tracks

* Log track ids
2022-03-08 19:51:57 +05:30
cnderrauber
128199e634 don't send datatrack info to client (#492)
* don't send datatrack info to client
2022-03-08 17:05:26 +08:00
David Zhao
d57f76fbef Use trackID consistently as log key (#491)
* Use trackID consistently as log key

* more useful logging for track published
2022-03-07 21:02:08 -08:00
cnderrauber
7c0f789316 move CanPublishData check to DataTrack (#490)
* move CanPublishData check to DataTrack

* fix test
2022-03-08 12:02:18 +08:00
cnderrauber
608da4ba4b stats for pli and bitrate (#487)
* stats for pli and bitrate

* solve comments

* return 0 if no pli sent
2022-03-07 14:59:01 +08:00
cnderrauber
4bc03d8435 Client configuration (#452)
* client configuration

* fix init roommanager
2022-03-03 18:26:14 +08:00
David Zhao
7a5b5dbc69 Pass back serverRegion in when participant's joining (#479)
* Pass back serverRegion in when participant's joining

* fix tests

* protocol update
2022-03-02 13:36:19 -08:00
Raja Subramanian
bfae13eaa6 Keep track of pending subscription close. (#478)
Introduce a pending close map and fire onNoSubscribers only
when there are not subscribed and no pending close.

There are a couple of paths for down track close
- RemoveSubscriber
- RemoveAllSubscriber
We remove the subscriber from `subscribedTracks` in these.
This is because `AddSubscriber` checks for existing subscription.
If there is a remove followed by an add, the add should not think
there is an existing susbcription if there is a delay in down track
close callback.

But, down track close is also called directly from places like
participant close. So, have to clean up both subscribedTrack
and pendingClose when the down track close fires.

Call onNoSubscribers only when both are empty. This will allow
relay up track to stop properly when all susbcribers have left.
2022-03-01 23:30:13 +05:30
David Zhao
7449175c8e Fix participant update version generation. (#477)
Previously it was stuck at 1
2022-03-01 09:36:11 -08:00