Commit Graph

239 Commits

Author SHA1 Message Date
Raja Subramanian
2d76c672e3 Use abs-send-time RTP header extension for video downstream (#149)
- Update ion-sfu to v1.20.14
- Enable `abs-send-time` for video tracks

Reference: ion-sfu PR - https://github.com/livekit/ion-sfu/pull/12

Testing:
--------
- Look at SDP offer in subscriber PC and ensure that abs-send-time is negotiated.
- Ensure that downstream packets have `abs-send-time` extension for video packets.

TODO:
-----
- Not yet setting this for audio tracks. Eventually we want to move
to TWCC. This is just a step along the way.
2021-10-19 23:46:04 +05:30
David Zhao
43079866a2 Update to Pion v3.1.5, fixed simulcast / non-simulcast mixing 2021-10-15 09:35:01 -07:00
David Zhao
81712f9502 revert to pion v3.1.0-beta.3
mixing of simulcast and non-simulcast tracks is broken
2021-10-15 00:31:57 -07:00
David Zhao
eba0c23375 Handle TrackInfo.Source attribute (#146)
* Support passing along Source attribute
2021-10-14 13:10:57 -07:00
Raja Subramanian
d08646f17e Reuse transceivers (#145)
* WIP - Re-use transceiver

* Support both old and new methods for adding transceiver
2021-10-14 11:57:59 +05:30
Raja Subramanian
ac4db4575f LK-105 (Opus DTX) (#140)
* LK-105 (Opus DTX)

https://linear.app/livekit/issue/LK-105/allow-enabling-of-opus-dtx

Enable/Disable Opus DTX using SDP answer based on setting in
`AddTrack` request.

Testing:
--------
Chrome and Firefox work. Having audio problems with Safari
(maybe the Safari 15 issue as I am not getting media)

* Check that receiver has no tracks

* Skip non-audio transceivers

* A small clean up to not use pendin track outside lock and also append with spread

* Address comments from review by David

* Update pkg/rtc/participant.go

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

* Pull in tagged version of webrtc and lk protocol

Co-authored-by: David Zhao <david@davidzhao.com>
2021-10-13 11:22:33 +05:30
Mathew Kamkar
84ab0f82af Prometheus counters for RTC connection steps (#143)
* signal ws connection, participant join, ice connection

* must register

* offer negotiation

* dz review: offer and offer_response

* dz review: answer
2021-10-12 15:22:17 -07:00
cnderrauber
8ff18e0326 forward fraction lost from subscriber to publisher (#142)
Co-authored-by: cnderrauber <zengjie9004@gmail.com>
2021-10-10 21:56:13 -07:00
David Zhao
52e10ea315 handle nil MessageChannel 2021-10-06 22:24:09 -07:00
David Zhao
797d2607c4 Fix NACK handling in simulcast (fixed in ion-sfu) 2021-10-04 17:17:41 -07:00
Théo Monnom
939ed10ca6 Room Metadata Implementation (#126) 2021-10-02 22:08:29 -07:00
David Zhao
ff47301820 Implements protocol 3 speaker updates (#120)
* Disallow AddTrack from participants that don't have the permission

* Support protocol 3 speaker updates, client info

* update protocol

* Disallow AddTrack from participants that don't have the permission

* increase wait time for GH to pass
2021-09-17 11:47:13 -07:00
David Zhao
20d0c0ca43 Fix mute of simulcasted video tracks with < 3 encodings (#114) 2021-09-14 15:50:34 -07:00
David Zhao
1bcaf9d0ea update test client to use protocol 3 2021-09-10 20:58:33 -07:00
hn8
2d215f80b3 Restore SetLogger (#111)
- Fix buffer.NewBufferFactory: logger.GetLogger() has extra depth. Passing empty logger will use default logger set by serverlogger.SetLogger()
2021-09-10 13:34:46 -07:00
David Zhao
614ede2edc Supports client protocol 3 - subscriber as primary (#110)
* use subscriber connection as primary whenever possible

* backwards compat for data messages

* bump protocol version
2021-09-09 00:53:15 -07:00
David Colburn
2a3fb5f0e7 move logging to protocol (#109) 2021-09-09 00:45:42 -07:00
David Zhao
e82d50d717 Send explicit message to clients for mute/unmute. (#107)
* Send explicit message to clients for mute/unmute.

* documentation in config
2021-09-01 21:50:02 -07:00
hn8
6a88bcc2d7 feat: support windows dev env (#101)
Works in Git Bash and PowerShell in Windows 10
2021-08-30 11:36:49 -07:00
David Colburn
8a44fad307 protocol 0.8 (#95)
* protocol 0.8

* merge new selector
2021-08-27 13:16:33 -05:00
Mathew Kamkar
f5466c74e6 list-nodes command action (#87)
* list-nodes command action

* refactor stats into a package

* store existing stats in redis, more refactoring

* dz review: atomic load
2021-08-24 10:14:39 -07:00
David Zhao
bcf6e15e07 SendData API & publishData permission (#88)
* SendData Server API

* SendData Server-API adjustments based on suggestions

* Update proto version

* enforce publishData permission

* go mod tidy

* fix go.mod

* go mod tidy

Co-authored-by: ChesterMing <89124853+ChesterMing@users.noreply.github.com>
2021-08-19 18:11:48 -07:00
David Zhao
29edf4e8d9 Improve dynamic simulcast, properly cleanup after pendingTracks (#84) 2021-08-13 15:49:25 -07:00
David Zhao
5713731363 allow user to mute before track is fully published (#82)
fixes https://github.com/livekit/client-sdk-js/issues/28
2021-08-10 21:09:23 -07:00
David Zhao
b8e1cbe4f5 fix: avoid placing user in a layer that's not published 2021-07-30 21:29:19 -07:00
hn8
c682982af2 Update TLS port default as rfc5766 (#68) 2021-07-23 15:11:11 -07:00
David Colburn
8e872881c1 use receiver lb threshold option 2021-07-22 21:52:56 -07:00
David Colburn
4bab395ac9 Hidden participants (#65)
Enables hidden recording and/or forwarding participants
2021-07-19 18:33:28 -05:00
hn8
87dfb2b117 log: consistent log key (#60) 2021-07-19 10:28:51 -07:00
David Zhao
c493022f0f fix force_tcp flag: don't set UDPMux when enabled (#62) 2021-07-19 09:16:01 -07:00
hn8
99e9997d0a feat: support SetLogger & SetLoggerFactory (#57)
* upgrade logr to stable release v1.0.0

* feat: support SetLogger & SetLoggerFactory
2021-07-18 21:28:09 -07:00
David Zhao
55eb654a1b When adaptive-simulcast is used, allow subscribers to switch to the next available layer (#55) 2021-07-16 14:24:00 -07:00
David Zhao
4ce29799cf remove H.264 profile 42001f. Safari (14.1.1) does not playback tracks offered in this profile 2021-07-13 22:32:38 -07:00
David Zhao
53b52a67ca use protobuf for clients with protocol > 1 (#52) 2021-07-13 22:28:34 -07:00
David Zhao
850fecf931 Allow publishers to set layer availability (#51)
* support client message to update active layers

* update to match new protocol
2021-07-13 21:35:08 -07:00
David Colburn
5fdb6361cd Dev debug info (#50) 2021-07-13 14:05:25 -05:00
David Zhao
a80e8cf69f Enable passing in local IP, refactored IP detection (#48)
* Enable passing in local IP, refactored IP detection

* update docker server instructions
2021-07-11 08:42:11 -07:00
David Colburn
50538db21f update log keys 2021-07-09 10:49:21 -07:00
hn8
dcfe7eaf4f Enhancement: audio speakers (#44)
* refactor: active speakers

1. Observe the loudest adjusted with active ratio instead of linear average of decibel values
2. Follow RFC6465 to convert audio level from decibel to linear value.
3. Quantize audio level for stable slice comparison
4. Switch moving average algorithm from MMA to EMA to have the same center of mass with SMA
5. Minor: remove seenSids map allocation
6. Minor: minimize division arithmetic

* Update pkg/rtc/audiolevel.go

Co-authored-by: David Zhao <david@davidzhao.com>
2021-07-09 09:46:24 -07:00
David Zhao
4ec2959950 Use discreet ports by default due to write bottleneck (#40) 2021-07-06 15:08:46 -07:00
David Zhao
6751361187 Feature: codec restrictions.
In order to ensure clients are publishing with compatible codecs, the server can enforce codec restrictions.
2021-07-02 16:54:54 -07:00
David Zhao
343aec98a0 Remove STUN candidates, disconnect clients on ICE failed 2021-06-28 12:47:16 -07:00
David Colburn
815fd5066d remove unconnected participants after 1m 2021-06-26 18:38:44 -07:00
David Zhao
c0c38f2e1d Fixed deadlocks with updated simulcast logic 2021-06-25 17:12:22 -07:00
David Colburn
871ecd0366 best quality if < 10 subs 2021-06-23 22:01:23 -07:00
David Zhao
d8b96ac2c8 Room API to support selective subscriptions 2021-06-23 14:12:51 -07:00
David Zhao
0c75924c73 increase subscription debounce interval 2021-06-23 12:44:40 -07:00
David Colburn
eda5cfbfd5 better pli throttling 2021-06-23 12:00:18 -07:00
David Colburn
0ffb8a97e4 rtcpThrottle -> pliThrottle 2021-06-22 15:00:27 -07:00
David Zhao
3b2b3a4929 debounce track settings API to match client usage pattern 2021-06-22 14:13:24 -07:00