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
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
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 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
David Colburn
8a44fad307
protocol 0.8 ( #95 )
...
* protocol 0.8
* merge new selector
2021-08-27 13:16:33 -05: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 Colburn
4bab395ac9
Hidden participants ( #65 )
...
Enables hidden recording and/or forwarding participants
2021-07-19 18:33:28 -05: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
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
3b2b3a4929
debounce track settings API to match client usage pattern
2021-06-22 14:13:24 -07:00
David Zhao
69290c535b
Send full update after joining when there are missed updates
2021-06-19 00:14:40 -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
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
6b63cd5b31
Revamp data channels ( #32 )
...
* support for built-in data channels. active speaker updates via data channel
* fixed tests
* update to Pion 3.0.27
2021-04-27 22:02:59 -07:00
David Zhao
3b236f0d72
handle client reconnect with ICE restarts
2021-04-19 16:51:20 -07:00
David Zhao
93d10b2640
Manual negotiation and plan-b support
2021-04-16 00:56:25 -07:00
David Zhao
e4238890ff
Refactor/cleanup of negotiation path
2021-04-15 17:03:22 -07:00
David Zhao
b90f851be5
return participant connected timestamps
2021-03-28 21:05:20 -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
7d02c01fd8
refactor - moved common code to livekit/protocol
2021-03-13 22:01:51 -08:00
David Zhao
e20c831c14
automatic configuration of TURN, with per-room credentials. version 0.6.0
2021-03-07 23:30:21 -08:00
David Zhao
e402d0d0af
subscriber control of tracks (unsubscribe/mute/quality), support simulcast ( #23 )
...
* subscription control & simulcast RTC APIs
* don't remove tracks for simulcast
2021-02-16 13:52:50 -08:00
David Zhao
a96069969d
support audio level extension & active speaker detection ( #20 )
...
* send active speaker updates with audio level
* add test on loudness sorting
* use a float to represent audio level
2021-02-14 14:30:23 -08:00
David Zhao
090f8d0664
use dedicated PeerConnections for sending and receiving ( #19 )
...
* protobuf updates to support new protocol
* use dedicated publish & subscribe peerconnections
* update client to work with dedicated PCs
* fix Go client negotiation, reduced length of UUID
2021-02-12 22:30:31 -08:00
David Zhao
538461d5dc
pass client defined metadata from JWT to participant ( #17 )
2021-02-10 23:13:36 -08:00
David Zhao
f1f5b8dafe
use proper fix for using shared bufferFactory, remove resync hack
2021-02-07 23:06:16 -08:00
David Zhao
fa9d2af495
use ion-sfu commit
2021-02-06 23:18:21 -08:00
David Zhao
290e100d0d
fix generation
2021-02-06 23:15:30 -08:00
David Zhao
ae203c27e3
send resync to ensure keyframes have been requested
2021-02-06 23:02:21 -08:00
David Zhao
c978a9cb1f
move to ion-SFU's receiver and downtrack
2021-02-04 21:57:40 -08:00
David Zhao
5dec5b1ae2
update
2021-02-03 17:55:35 -08:00
David Zhao
a4266478c5
better logging around negotiations
2021-02-02 01:16:13 -08:00
David Zhao
2cf2c448be
rework multi-node routing, cleaner design for reconnection
2021-01-30 22:24:08 -08:00
David Zhao
28e73bd109
rename Participant.name to Participant.identity
2021-01-30 14:00:37 -08:00
David Zhao
ed0b9db655
avoid sending to closed channels
2021-01-26 21:45:00 -08:00
David Zhao
0b00b26d05
terminate RTC sessions properly
2021-01-19 16:18:03 -08:00
David Zhao
71b4673a0a
cleanup room state, proper participant termination
2021-01-18 23:44:59 -08:00
David Zhao
9064f6ade1
decouple websocket and RTC nodes, prep for distributed
2021-01-16 10:37:38 -08:00
David Zhao
bd885b1de9
handle unpublish track
2021-01-12 17:07:01 -08:00
David Zhao
21ac2413a2
catch panics to ensure reliability
2021-01-11 00:07:11 -08:00
David Zhao
6464ae3cd6
send downtrack binding reports
...
fixed tests
2021-01-10 22:36:24 -08:00
David Zhao
456df0fb91
use IsReady instead of checking for multiple statuses
2021-01-10 22:09:36 -08:00
David Zhao
258f5add2d
protocol update: explicit AddTrack to move negotiation initiation to server side.
...
In order to avoid race conditions with WebRTC, where either side could initiate an offer when tracks have changes, we'll always initiate them from the SFU side.
2021-01-09 23:40:29 -08:00
David Zhao
0336e9d92f
tests for MediaTrack, moving interfaces to new package
2020-12-31 23:24:45 -08:00