125 Commits

Author SHA1 Message Date
David Colburn 5fdb6361cd Dev debug info (#50) 2021-07-13 14:05:25 -05:00
David Zhao d38fc43b89 Lock room creation to ensure atomic creation & node assignment (#46)
* Lock room creation to ensure atomic creation & node assignment

* more tests
2021-07-12 14:50:14 -07: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 Colburn 145f058eaa send leave when client reconnects on server restart (#43) 2021-07-08 01:37:21 -05:00
David Colburn 3eba7fe25c update twirp and pb 2021-07-06 19:30:06 -07:00
David Zhao 1ced03d72f fixed failing tests 2021-07-02 17:04:22 -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 Colburn e543aaa98a turn server tls (#38)
* tls

* acm

* use cert/key files

* turn -> turns

* turn cert config

* updates

* move panic

* tidy

* final updates
2021-07-01 17:00:49 -05:00
David Colburn b05da63fc3 send update on reconnect 2021-06-28 16:22:51 -07:00
David Zhao d8b96ac2c8 Room API to support selective subscriptions 2021-06-23 14:12:51 -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
David Zhao f0d8b1c7ee fixed bug in smoothing algorithm, fixed tests 2021-06-21 22:18:18 -07:00
David Zhao d69e9f451e Smooth audio levels by averaging over samples. 2021-06-21 18:14:28 -07:00
David Colburn eebc2f5acd add throttle config 2021-06-21 17:13:58 -07:00
David Colburn 31b4148052 don't send empty pkts 2021-06-21 15:54:42 -07:00
David Zhao 38c81e5645 Support for video dimensions in publications (#36)
* send back video dimensions

* Store video dimensions in MediaTrack and forward in TrackInfo

* use committed protocol
2021-06-18 21:05:56 -07:00
David Zhao e527a66096 endpoint to dump stacktraces 2021-06-17 22:54:09 -07:00
David Colburn 4f56d55d86 close rtp buffers 2021-06-15 00:50:33 -07:00
David Zhao 2cecbad29d fix: memory leaks with BufferFactory being held 2021-06-14 22:53:29 -07:00
David Zhao db7d5fff52 Test reliability - give time for HTTP server to start 2021-06-09 13:54:52 -07:00
David Zhao abedc05ce5 Improve logging, hook up ion with zap logger 2021-06-09 12:31:29 -07:00
David Zhao a3228c2ae9 resolve data race conditions, code quality 2021-06-04 14:57:55 -07:00
David Colburn 5baf97e99b imports/inspections 2021-06-04 14:30:10 -05:00
David Zhao c510ea2e1a Fix race condition with Transport negotiations 2021-06-04 12:26:23 -07:00
David Zhao 59a27d20c3 improve test reliability, fully close rooms during server shutdown 2021-06-03 23:04:19 -07:00
David Colburn 69b94e1142 error logging 2021-06-03 01:57:43 -05:00
David Zhao 5d85257577 install/update proto-gen tools in bootstrap 2021-06-02 22:56:58 -07:00
David Colburn 684691e1cd first commit 2021-06-02 23:46:38 -05:00
David Zhao 0900054c24 ability to disable auto subscribe per participant 2021-05-22 22:54:47 -07:00
David Zhao c76cdf11c2 add tests to ensure subscriber cleanup 2021-05-12 23:52:41 -07:00
David Zhao 681010072c support for exposing stats via prometheus 2021-05-11 22:04:59 -07:00
David Zhao 9616149a88 collect inbound and outbound packet stats 2021-05-11 00:31:18 -07:00
David Zhao d399a57a7b Removed cli, mux cleanup, docs update 2021-05-07 01:16:33 -07:00
David Zhao f60b356807 don't hide trickle decode errors 2021-05-06 00:10:23 -07:00
David Zhao 84ac0a718d single port mode connectivity improvements, ICE v2.1.6 2021-04-25 14:13:35 -07:00
David Zhao 0dddc3c0be DeleteRoom now removes all participants in the room 2021-04-21 22:30:29 -07:00
David Zhao 3b236f0d72 handle client reconnect with ICE restarts 2021-04-19 16:51:20 -07:00
David Zhao 1ef2fb8f4a better startup logging 2021-04-16 16:57:57 -07:00
David Zhao 93d10b2640 Manual negotiation and plan-b support 2021-04-16 00:56:25 -07:00
David Zhao 540d1c2e8c always allow ICE candidates, even before offer 2021-04-16 00:39:22 -07:00
David Zhao e4238890ff Refactor/cleanup of negotiation path 2021-04-15 17:03:22 -07:00
David Zhao 9aa6fc29f5 support immediate disconnect via Leave 2021-04-08 22:06:43 -07:00
David Zhao dfac44d59e reduce reliance of funk, fixed bug getting subscribed tracks 2021-03-27 21:54:46 -07:00
David Zhao cb963f1637 logging port range on start 2021-03-23 18:07:04 -07:00
David Zhao 537edda4c3 handle new UpdateParticipant API, enable permission updates 2021-03-20 22:27:47 -07:00
David Zhao f7ed2cee60 RoomService.updateParticipantMetadata, participant permissions 2021-03-16 01:22:21 -07:00
David Zhao 98013ac20f /rtc responds to only websocket requests. Fixes #25 2021-03-15 11:06:26 -07:00