Commit Graph

350 Commits

Author SHA1 Message Date
shishirng 56ebd521f9 Telemetry capture published track updates (#367)
* Telemetry capture published track updates

Signed-off-by: shishir gowda <shishir@livekit.io>

* Updated OnVideoLayerUpdate to take slice of layers

Signed-off-by: shishir gowda <shishir@livekit.io>

* Update proto dep

Signed-off-by: shishir gowda <shishir@livekit.io>
2022-01-24 14:38:04 -05:00
cnderrauber 90b97137c9 fix migrate state of subscribe only client (#366) 2022-01-24 17:03:24 +08:00
David Zhao 52fc53d325 Issue updated tokens to clients. (#365)
This ensures client reconnect attempts would be successful for long running rooms. It also fixes inaccurate permissions that were set incorrectly when full reconnections take place.
2022-01-23 23:15:49 -08:00
Raja Subramanian 6a46958870 Some receiver clean up (#364) 2022-01-23 08:22:39 +05:30
Raja Subramanian d1848ab218 Rename UpdateSubscriptionPermissions -> SubscriptionPermission and other renaming (#363)
* Store subscription permission in DB

* Comment out subscription permission to DB

* WIP commit

* Clean up

* clean up

* Latest protocol
2022-01-22 12:16:15 +05:30
Raja Subramanian 7f4ead9b25 Fire onNoSubscribers callback in only one place. (#360)
While reworking some cloud code, this is getting fired multiple times
(in RemoveAllSubscriber and in the callback). So, it causes some
errors in the logs. Fire it only from one place.
2022-01-21 11:16:54 +05:30
cnderrauber 2886ab1e39 RemoveSubscriber through pariticipant (#359) 2022-01-21 12:32:26 +08:00
Raja Subramanian 3d56b7c7f3 Adjustments to allow permissions migration. (#356)
* Adjustments to allow permissions migration.

* Fix tests
2022-01-21 09:43:59 +05:30
Raja Subramanian 4e4ad102f7 move stop timer in mediatracksubscriptions module where it belongs (#357)
* move stop timer in mediatracksubscriptions module where it belongs

* Correct my screw up
2022-01-21 00:50:48 +05:30
Raja Subramanian e4e292d988 Do not send connection quality when participant is not active. (#354)
* Do not send connection quality when participant is not active.

Some times when the connection takes a while (in a long delay network
on Safari for example), connection quality arrives before connectivity.

* Do not calculate connection quality of unconnected participants
2022-01-19 23:18:55 +05:30
Raja Subramanian 0178a004dd Compile in send-side bandwidth estimation. (#351)
Still not using it. But, now that Pion has merged the initial
version of GCC (Google Congestion Control) for send side bandwidth
estimation, we can integrate it.

We will enable once we have tested and feel comfortable.
2022-01-19 22:36:41 +05:30
cnderrauber 0acb0a9d66 don't send black screen when Track be resumed (#352)
* don't send black screen when Track be resumed

* default flush
2022-01-19 18:14:38 +08:00
David Colburn 5bea9debb7 Code cleanup (#353) 2022-01-19 02:13:06 -08:00
Raja Subramanian 10714b3f6d Adjust interfaces to better work with cloud (#349)
* Adjust interfaces to better work with cloud

* force argument to quality update
2022-01-19 10:28:55 +05:30
cnderrauber 8a5f26b064 refine reuse transceiver (#348) 2022-01-19 10:24:29 +08:00
Raja Subramanian 0e74ce89c5 Update pion/webrtc (#346)
Also use DTLSRoleServer in publisher peer connection to get around
potentially a Chrome browser issue in long latency links.
2022-01-18 11:26:57 +05:30
Raja Subramanian f662119ca4 Add roomID to logger util (#345) 2022-01-17 16:36:10 +05:30
cnderrauber 629dae0f84 fix close on nil sink (#344) 2022-01-17 12:04:01 +08:00
David Zhao c122c98e4d Improved logging configuration (#342) 2022-01-15 10:28:03 -08:00
Raja Subramanian d45435ed3d Fix null dereference (#343) 2022-01-15 23:25:48 +05:30
David Zhao f2f776931f Integrated logging with Pion (#341)
* Integrated logging with Pion

* handle nil logger
2022-01-14 17:44:28 -08:00
Artur Shellunts 5cdea4e15d Avoid per packet operation (#332) 2022-01-12 10:23:55 +01:00
David Zhao b05d154d12 Handle simulated leave (#333) 2022-01-11 23:34:27 -08:00
Raja Subramanian e67db84b3b Remove stubs (#331)
* WIP commit

* Use LocalParticipant interface

* Remove no-op local participant

* Remove localparticipant

* Remove no-op stubs

* Consolidate PublishedTrack into MediaTrack
2022-01-12 00:11:48 +05:30
David Zhao c2ba26eee6 Handle SimulateScenario requests (#330)
* Handle SimulateScenario requests

* actually use sendLeave

* fix local test failures due to filehandle limit
2022-01-11 00:37:24 -08:00
Raja Subramanian e82b8ea0a0 No op implementation to remove stubs in remote (#327)
* No op implementation to remove stubs in remote

* Place interface first
2022-01-10 19:17:58 +05:30
Raja Subramanian d6deb6cfa4 Move UpdateTrackInfo into MediaTrackReceiver (#329) 2022-01-10 19:07:21 +05:30
Raja Subramanian 02eb21c2ce Move MediaTrack ToProto out of media track receiver as remote needs a (#328)
different implementation.
2022-01-10 18:34:54 +05:30
cnderrauber ad5267705c add code lost during refactor (#326)
Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2022-01-10 17:27:24 +08:00
Raja Subramanian f3d14f9b04 Rename state for consistency (#325) 2022-01-10 13:31:12 +05:30
cnderrauber 4989539aaa move VideoQualityToRID to mediatrackreceiver (#324)
Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2022-01-10 15:17:22 +08:00
Raja Subramanian 1bc28240f8 Lock adding to pending subscription (#323) 2022-01-10 12:15:03 +05:30
cnderrauber 54e13d20bb sfu node always pick ice controlled role(lite) (#322)
* sfu node always pick ice controlled role(lite)

* fix test case

Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2022-01-10 12:58:10 +08:00
Raja Subramanian 9d74d99fed Clean up unused config param (#320) 2022-01-09 11:01:42 +05:30
Raja Subramanian a9e0598210 uptrackmanager reuse (#318)
* WIP commit

* Remove the double lock

* Remove unused variable

* WIP commit

* Fix test

* WIP commit

* Split out MediaTrackReceiver

* Address comments from David
2022-01-09 10:45:49 +05:30
cnderrauber 8582ca4c9b Session migration (#319)
* migrate between nodes

* session migration

* bug fix

* use version instead of query parameter

* clean code

* clean

* merge master

* solve comments

* solve comment

* update go.mod

Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2022-01-08 18:54:23 +08:00
Raja Subramanian ecf9590d56 More abstractions (#316) 2022-01-07 01:46:15 +05:30
Raja Subramanian 5064f35c29 Refactor media track subscriptions (#314)
* Refactor media track subscriptions

- To enable re-use of common bits
- Add max quality from other nodes

* Lock close handlers slice

* Reverting multiple on close handlers of downtrack, unclear if it is needed yet

* Make Logger a pointer

* audio level in MediaTrack like remote media track

* Cleanup

* Add a no subscribers callback

* Add method to update subscribed quality from another node

* loss proxying from remote node

* Address comments from David

* create subscriber node quality map
2022-01-06 09:02:11 +05:30
Raja Subramanian 46446ef047 Send speaker update with inactive speaker when participant (#315)
* Send speaker update with inactive speaker when participant
leaves/unsubscribes

* Check that protocol version supports speaker updates
2022-01-04 22:37:13 +05:30
boks1971 973420faf5 Revert "Refactor media track subscriptions"
This reverts commit 9ca85454ed.
2022-01-04 16:57:49 +05:30
boks1971 9ca85454ed Refactor media track subscriptions
- To enable re-use of common bits
- Add max quality from other nodes
2022-01-04 16:40:47 +05:30
Raja Subramanian 995c1e8676 type aliases -> type definitions (#312)
* type alias -> type definition

* participantSid -> participantID in a comment

* Update protocol
2022-01-03 12:43:58 +05:30
Raja Subramanian 3a9009ae12 type definition of room name (#311)
* WIP commit

* update protocol

* Fixing a test and catching one place where casting was missed

* Fix one more spot which need conversion from livekit.RoomName -> string

* do not covert list
2022-01-02 16:49:16 +05:30
David Zhao d7d3ffdd13 Fix missed update when subscribers are subscribing to the same layer (#310) 2021-12-31 23:54:41 -08:00
Raja Subramanian 8d0fb179a0 Layer 0 and non-simulacst tracks also can be fully unsubscribed. (#308) 2021-12-31 14:04:22 +05:30
Raja Subramanian 98586c2490 A simple configuration for congestion control. (#305) 2021-12-31 00:26:29 +05:30
Raja Subramanian 107e7bbb39 Configurable bandwidth estimation side (#298)
* Fix tests

Add back adding track to publishedTracks for testing purposes.

* WIP branch

* Don't know why merge from `master` did not catch this change.

* WIP commit

* Hook up all the bits for TWCC to work

* Fix typo

* WIP commit

* Catch up to latest API

* Move RTP/RTCP info config

* Instantiate GCC/TWCC interceptor only when in use

* comment SSBWE parts

* RTCP feedback in publisher config
2021-12-30 20:09:03 +05:30
Raja Subramanian 07db1ba726 Some more files with types (#302) 2021-12-30 16:43:20 +05:30
Raja Subramanian 03000f88cb Adaptive publishing improvements (#295)
* Adaptive publishing improvements

* fix tests

* proper comment sentence

* Address comments from David

* proper locking

* fix crash

* Do not start quality timer if not video
2021-12-30 09:50:53 +05:30
Artur Shellunts 828d490755 Imlement analytics per track statistics (#281)
New tests for telemetry + implementation of per track statistics
2021-12-29 19:29:24 +01:00