1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-14 12:45:58 +01:00
Commit graph

94 commits

Author SHA1 Message Date
Juliusz Chroboczek
7126394e65 Fix locking in group.go.
Also export some fields as thread-safe methods.
2020-09-13 20:33:53 +02:00
Juliusz Chroboczek
938d231b30 Make API a method of group. 2020-09-13 13:09:34 +02:00
Juliusz Chroboczek
22c6ad6b8c Implement ranging over groups. 2020-09-13 12:24:06 +02:00
Juliusz Chroboczek
fb02c6fe1f Move client actions to webclient.go.
These are specific to webclients.
2020-09-13 11:57:33 +02:00
Juliusz Chroboczek
78e9c96a53 Make SetPermissions part of the client interface. 2020-09-13 10:45:16 +02:00
Juliusz Chroboczek
0064aa6fd2 Split out statistics functions into stats.go. 2020-09-13 10:10:35 +02:00
Juliusz Chroboczek
6f120f0333 Make disk recording clients kickable.
Kick can no longer be called with groups locked.
2020-09-12 14:00:14 +02:00
Juliusz Chroboczek
e37e27036e Implement graceful server shutdown.
This gives the user a friendly message when the server shuts down.
2020-09-12 13:59:55 +02:00
Juliusz Chroboczek
7707775cca Implement user-readable message for kick. 2020-09-12 12:26:07 +02:00
Juliusz Chroboczek
4bdd7c7665 Implement group redirection. 2020-09-10 14:22:34 +02:00
Juliusz Chroboczek
c2b1723bd4 Fail early when a group doesn't exist. 2020-09-10 13:41:15 +02:00
Juliusz Chroboczek
88d2a96819 Restructure error and chat messages. 2020-08-12 12:17:56 +02:00
Juliusz Chroboczek
7b51296262 Split handshake into login/join.
For now, join must follow login, but it will make it easier to extend
the protocol for joining multiple groups (think federation).
2020-08-12 11:50:30 +02:00
Juliusz Chroboczek
6bde5f986a Store password in client structure.
No need to carry password around.
2020-08-12 11:49:23 +02:00
Juliusz Chroboczek
e724194ef6 Upgrade to pion/webrtc v3. 2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
4e594465cc Remove dead code. 2020-08-04 20:52:35 +02:00
Juliusz Chroboczek
9560779eb4 Move client interface to its own file. 2020-06-19 11:36:37 +02:00
Juliusz Chroboczek
a4d0741704 Perform congestion control at the connection level.
REMB applies to the whole transport, not to individual tracks.
2020-06-12 20:17:46 +02:00
Juliusz Chroboczek
903e499dd6 Don't reduce video rate in large groups. 2020-06-12 17:27:38 +02:00
Juliusz Chroboczek
448bb0374d Use pushConn to delete connections.
The previous mechanism (going through up.local) was racy and complicated.
2020-06-10 19:50:18 +02:00
Juliusz Chroboczek
917fa33d38 Don't duplicate username in call to addClient. 2020-06-08 22:31:12 +02:00
Juliusz Chroboczek
208f023d9e Make upConnections generic. 2020-06-08 22:14:28 +02:00
Juliusz Chroboczek
da97560cb3 Protect upConn.tracks by the upConn mutex rather than the client mutex.
Also don't rely on tracks being immutable in sendRR.
2020-06-08 19:11:20 +02:00
Juliusz Chroboczek
4da03a3ce5 Make rate estimator estimate packet rates too. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek
19a65318c9 Compute down track RTT. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek
49bccda5ee Send client notification to oneself too.
This was broken when we pushed user notifications into addClient.
2020-06-03 21:09:24 +02:00
Juliusz Chroboczek
3e305e9827 Use jiffies instead of microseconds. 2020-06-03 20:58:01 +02:00
Juliusz Chroboczek
7ae9a9ea69 Rename mono to rtptime. 2020-06-03 20:12:25 +02:00
Juliusz Chroboczek
b8128f81a0 Move client notifications into addClient and delClient. 2020-06-01 00:02:17 +02:00
Juliusz Chroboczek
32e8f08b8d Move dead errors into webclient. 2020-05-30 12:38:13 +02:00
Juliusz Chroboczek
0a2c4eb381 Implement recording. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
3240225dc3 Make client generic. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
d8b984979b Rename client to webClient. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek
88fbce262f Implement sendFIR. 2020-05-29 20:57:46 +02:00
Juliusz Chroboczek
e05f2fee81 Don't delete empty groups.
It was racy, and it drops the chat history.  Let them accumulate for now.
2020-05-28 01:10:18 +02:00
Juliusz Chroboczek
e7f9a8f3dc Make downTrack and downConnection into interfaces. 2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
75804adc5f Improve error handling. 2020-05-24 13:39:06 +02:00
Juliusz Chroboczek
6d6cb6caf2 Split out connection-related code into conn.go. 2020-05-22 22:29:31 +02:00
Juliusz Chroboczek
2a35f4e5d9 Don't add duplicates in addLocal. 2020-05-22 16:55:56 +02:00
Juliusz Chroboczek
9575b80893 Use mids instead of track ids for indexing labels.
It turns out that track ids are not necessarily the same on the local and
remote sides.  Thanks to Ines Klimann for noticing the issue.
2020-05-21 22:40:11 +02:00
Juliusz Chroboczek
5a2dbf36b9 Signal new tracks explicitly. 2020-05-20 23:43:46 +02:00
Juliusz Chroboczek
12858e1f36 Implement commands /lock and /unlock. 2020-05-18 15:24:04 +02:00
Juliusz Chroboczek
037f002a29 Make the requested field of client requests into a dictionary. 2020-05-18 00:56:29 +02:00
Juliusz Chroboczek
b265aacd32 Push complete connections rather than individual tracks. 2020-05-17 23:55:54 +02:00
Juliusz Chroboczek
b26a8cad78 Label tracks explicitly.
For now, this is only used to request screen sharing as opposed to normal
videos.  In the future, it will be used for simulcasting.
2020-05-17 23:28:19 +02:00
Juliusz Chroboczek
fc6c26e176 Reduce minimum video rate further. 2020-05-14 14:34:40 +02:00
Juliusz Chroboczek
b8dedcf0f0 Fix typo in getChatHistory. 2020-05-12 12:48:56 +02:00
Juliusz Chroboczek
337770814f Fix typo in minVideoRate. 2020-05-11 15:55:15 +02:00
Juliusz Chroboczek
89695c3713 Implement reception of audio only. 2020-05-09 22:44:34 +02:00
Juliusz Chroboczek
0c7b77d919 Only send RTCP feedback if supported by the peer. 2020-05-09 18:49:22 +02:00