1
Fork 0
Commit Graph

510 Commits

Author SHA1 Message Date
Juliusz Chroboczek c608723394 Move group and client to their own package. 2020-09-13 20:51:15 +02:00
Juliusz Chroboczek d9cf32eda7 Move connections to their own package. 2020-09-13 20:40:33 +02:00
Juliusz Chroboczek 7148ea1864 Make AllowRecording into a method of group. 2020-09-13 20:40:33 +02:00
Juliusz Chroboczek 03e57aac90 Make Redirect a method of group. 2020-09-13 20:40:33 +02:00
Juliusz Chroboczek f2fcc09e61 Implement NewDiskClient. 2020-09-13 20:33:53 +02:00
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 1fe64e15f0 Remove packet pacing.
It's not obvious that it's useful, especially now that the writer
is split into multiple threads.  Do retain the dynamically computed
delay in case of audio congestion.
2020-09-13 09:40:49 +02:00
Juliusz Chroboczek 96dbcd9dcb Release lock early in newUpConn.
Otherwise recording to disk causes a deadlock.
2020-09-13 02:27:50 +02:00
Juliusz Chroboczek fa29e50f8b Split writer loop into multiple threads.
This improves both scaling and fairness in the case where a single
track is being sent to large numbers of receivers.  We avoid
communication overhead by growing the number of threads as the
square root of the number of receivers.
2020-09-13 02:02:11 +02:00
Juliusz Chroboczek 8d58571d4c Create webserver structure in main thread.
Avoids a race.
2020-09-13 02:02:11 +02:00
Juliusz Chroboczek 71022f4b58 Remove ErrWriterDead, replace with ErrClientDead. 2020-09-13 02:02:11 +02:00
Juliusz Chroboczek abb8b70a0d Load toastify before its users. 2020-09-12 18:31:04 +02:00
Juliusz Chroboczek 66a721a55c Improve typing of sfu.js. 2020-09-12 16:44:42 +02:00
Juliusz Chroboczek 6a554831a1 Sort users lexicographically. 2020-09-12 16:44:42 +02:00
Juliusz Chroboczek c9b61ab532 Remove unused function getTimestamp. 2020-09-12 14:47:09 +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 5c97e739a6 Implement activity detection. 2020-09-11 23:43:30 +02:00
Juliusz Chroboczek d35f599922 Minor fixes to sfu.js. 2020-09-11 22:46:23 +02:00
Juliusz Chroboczek 0b5416f617 Revert blurring failed media.
Failed media must still be usable.
2020-09-11 21:53:53 +02:00
Juliusz Chroboczek 8d9c3d7d1c Add userdata field to ServerConnection and Stream. 2020-09-11 21:39:18 +02:00
Juliusz Chroboczek e698e187e6 Merge branch 'design' into master 2020-09-11 19:03:23 +02:00
Juliusz Chroboczek 243e2e8823 Support custom 404 pages. 2020-09-11 17:42:09 +02:00
Alain Takoudjou bcc0e8da5e sfu: add 404 custom page 2020-09-11 16:51:56 +02:00
Alain Takoudjou df0bb231af more fixes on web interface 2020-09-11 16:51:56 +02:00
Juliusz Chroboczek 760cafe02a Display help message after receiving permissions from server.
We used to display the help message too early, which caused us to
display it even if the group doesn't exist or the user doesn't have
the present permission.
2020-09-11 09:52:40 +02:00
Juliusz Chroboczek 66d352b35a Rename Parameters to Settings, fix typo. 2020-09-11 09:52:40 +02:00
Alain Takoudjou 640fbb8107 more improvement on design 2020-09-11 09:52:40 +02:00
Juliusz Chroboczek 0ab8425025 Remove icon on mainpage. 2020-09-11 09:52:40 +02:00
Alain Takoudjou 71f5db03ad fix display login form and video on mibile 2020-09-11 09:52:40 +02:00
Alain Takoudjou e5ccc82204 minor fixes 2020-09-11 09:52:39 +02:00
Alain Takoudjou efb8a71981 improve sfu design and remove some useless code 2020-09-11 09:52:39 +02:00
Alain Takoudjou 32459b4b5b fix connexion problem with new users 2020-09-11 09:52:39 +02:00
Alain Takoudjou 788e43ba7a add some interface improvement 2020-09-11 09:52:39 +02:00
Alain Takoudjou 382446ebcb sfu: update layout and make video working with mobile too 2020-09-11 09:52:39 +02:00
Alain Takoudjou 76e812d00f sfu: first working design 2020-09-11 09:52:39 +02:00
Juliusz Chroboczek 517d7edbc8 Make login work when sessionStorage is not available.
Thanks to Ralf Treinen for pointing out the issue.
2020-09-10 15:30:49 +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 c9865830cc Fix screen sharing on Safari.
Apparently Safari requires {video: true}.
2020-09-10 10:03:14 +02:00
Juliusz Chroboczek 346f93dd16 Maintain information about whether renegotiation is permitted.
Renegotiation is not correct when the stream is fresh, for example
after the user has switched the camera.
2020-09-10 01:33:23 +02:00
Juliusz Chroboczek 39789dc89a Make addSharedMedia go through newUpStream.
Otherwise the callbacks don't get set.
2020-09-08 03:10:45 +02:00
Juliusz Chroboczek fc9bbf20ea Don't close writer channel at client shutdown.
Closing the channel could cause a panic if a c.write was pending.
Instead, ensure we send a closeMessage to the writer, and cause the
writer to exit when it receives a closeMessage.
2020-09-08 00:29:30 +02:00
Juliusz Chroboczek dd27cf412c Update pion/webrtc to v3 beta4. 2020-09-05 14:15:39 +02:00