Commit Graph

505 Commits

Author SHA1 Message Date
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
Mathew Kamkar 416ca80a8b get all local ip addresses (#340) 2022-01-14 17:49:45 -08:00
David Zhao f2f776931f Integrated logging with Pion (#341)
* Integrated logging with Pion

* handle nil logger
2022-01-14 17:44:28 -08:00
David Zhao cd9c125414 Also allow headers with CORS (#339) 2022-01-14 10:13:11 -08:00
shishirng cf830191e3 Add client info to participant_joined event (#337)
Signed-off-by: shishir gowda <shishir@livekit.io>
2022-01-13 17:45:21 -05:00
David Zhao f9b2af0cf9 Use CORS middleware to allow RoomService use (#335) 2022-01-13 09:29:48 -08:00
David Zhao 29eb8d9dbf Parse additional info parameters clients could send (#336) 2022-01-13 08:40:29 -08:00
Raja Subramanian 017ed13338 Prevent multiple resume notifications on track (#334)
* Prevent multiple resume notifications on track

When returning previous allocation as is, reset change to none.
Ideally, would like to have change as a separate return and not in last
allocation. But, also prefer to have last allocation state. For now,
resetting change.

* log bandwidth estimate only on decrease
2022-01-12 23:19:56 +05:30
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
Raja Subramanian 66a1ffe414 Allow cooperative allocation (#309) 2022-01-01 13:43:34 +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 fc95757c7d Do not pause if pause is not allowed (#307) 2021-12-31 09:58:13 +05:30
shishirng 007177d095 room_sid to room_id update in analytics proto (#306)
Signed-off-by: shishir gowda <shishir@livekit.io>
2021-12-30 15:26:14 -05:00
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
Artur Shellunts 6f84b36ccf Use RTT field in analytics stats (#304)
* Update protocol to v0.11.7

* Use RTT field in analytics stats

Instead of Delay
2021-12-30 13:13:40 +01:00
Raja Subramanian 07db1ba726 Some more files with types (#302) 2021-12-30 16:43:20 +05:30
Artur Shellunts 1b66fe1e23 Fix handling of PacketLost (#296)
They come accumulated already.
2021-12-30 11:06:00 +01:00
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
David Colburn 7b0db1f344 fix recording URL requests 2021-12-29 17:46:34 -08:00
Artur Shellunts 1fa194297f Implement calculating of RTT for down tracks (#300)
* Implement calculating of RTT for down tracks
* Fix code style issues
2021-12-29 19:58:41 +01:00
Artur Shellunts b744a9c2ba Implement event loop for telemetry service (#297)
It allows all actions/events to run in the same go routine.
Therefore no synchronization primitives are needed inside
telemetry service implementation.
2021-12-29 19:51:12 +01:00
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
Raja Subramanian 9d78619ca3 Catching a few more files with types (#299)
* Use types in mediatrack.go

* A bunch more files get types

* One more file
2021-12-29 23:51:06 +05:30
Raja Subramanian fe06b46e94 Include self in speaker updates (#301) 2021-12-29 22:07:35 +05:30
Raja Subramanian dc385f5d24 Beginnings of typing for various ids. (#287)
* Beginnings of typing for various ids.

* trackSid/TrackSid -> trackID/TrackID

* update protocol

* Initial livekit.ParticipantID use
2021-12-29 14:46:32 +05:30
Artur Shellunts 2209edce20 Make TelemetryService testable (#276)
* Make TelemetryService testable

Timer is extracted for better testability of telemetryservice.

Divided TelemetryService to internal part that:
- contains business logic
- does not contain timer
- and therefore testable

and external part that:
- does not contain business logic
- contains timer to send analytics every 10 seconds for all participants.
- does not need tests

* Add Test_AnalyticsSentWhenParticipantLeaves

* Fix test
2021-12-28 12:54:56 +01:00