Juliusz Chroboczek
668fae29ef
Add some more typing assertions to sfu.js.
2020-08-13 20:55:13 +02:00
Juliusz Chroboczek
0067edc6eb
Fix some more Javascript typos.
...
Thanks to Rémi Nollet and Léo Stefanesco.
2020-08-13 20:54:37 +02:00
Juliusz Chroboczek
fc3ee84243
Fix typo in newUpStream.
2020-08-13 20:16:52 +02:00
Juliusz Chroboczek
0102bdc128
Fix typo in gotAbort.
2020-08-13 20:11:21 +02:00
Juliusz Chroboczek
04b0951530
Fix fetching of ICE servers.
2020-08-13 15:45:19 +02:00
Juliusz Chroboczek
240b05a660
Fix typo in renegotiation.
2020-08-13 13:48:17 +02:00
Juliusz Chroboczek
9e8a77007b
Document the protocol interface.
2020-08-13 12:21:30 +02:00
Juliusz Chroboczek
3e0bb08955
Split out the javascript protocol interface.
2020-08-13 12:21:29 +02:00
Juliusz Chroboczek
ec742eacdb
Fix typo in renegotiation.
2020-08-13 12:16:05 +02:00
Juliusz Chroboczek
52c4f1a399
Restructure offers.
2020-08-12 13:56:35 +02:00
Juliusz Chroboczek
bc7bd36ba2
Restructure user notifications.
2020-08-12 13:51:31 +02:00
Juliusz Chroboczek
b6adc0b9a8
Rename Connection to Stream in the JS code.
2020-08-12 12:50:28 +02:00
Juliusz Chroboczek
675035ab29
Restructure group and client management messages.
2020-08-12 12:40:40 +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
6a37033ca8
Allow both sides to initiate renegotiation.
...
More reliable reaction to network failures when they are detected
by just one side.
2020-08-11 15:49:33 +02:00
Juliusz Chroboczek
7aab79c4c6
Have chat messages go through the server even when sent to oneself.
2020-08-07 11:33:59 +02:00
Juliusz Chroboczek
23c4aea58f
Implement renegotiation in the up direction.
2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
9506615272
Restart ICE instead of restarting down connections.
2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
e724194ef6
Upgrade to pion/webrtc v3.
2020-08-07 11:15:58 +02:00
Juliusz Chroboczek
8a4d315c51
Move ice-servers.json under dataDir.
...
This makes it easier to deploy by putting all user-serviceable files
under data/.
2020-08-07 11:14:34 +02:00
Juliusz Chroboczek
4e594465cc
Remove dead code.
2020-08-04 20:52:35 +02:00
Juliusz Chroboczek
e9559d9a10
Remove unused field.
2020-08-04 20:51:07 +02:00
Juliusz Chroboczek
426c1e06d8
Remove half-baked compatibility code for old browsers.
2020-06-19 11:51:46 +02:00
Juliusz Chroboczek
9560779eb4
Move client interface to its own file.
2020-06-19 11:36:37 +02:00
Juliusz Chroboczek
1e977213d1
Check media status in setMediaStatus.
2020-06-12 21:28:35 +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
a8ca2e8559
Make stats reporting independent of the number of tracks.
2020-06-12 15:42:44 +02:00
Juliusz Chroboczek
23cceba7ba
Restart downstream connections on ICE failure.
2020-06-11 20:22:28 +02:00
Juliusz Chroboczek
dbd87895ba
Add visual feedback for connection status.
2020-06-11 19:47:26 +02:00
Juliusz Chroboczek
4b32c55a57
Restart ICE in client on up connection failures.
2020-06-11 19:20:11 +02:00
Juliusz Chroboczek
9c25696d01
Update dependencies.
2020-06-11 13:51:54 +02:00
Juliusz Chroboczek
e175ef0e49
Replace changed connections.
...
We used to destroy and recreate connections, we now replace them atomically.
2020-06-10 20:25:25 +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
d3655b8955
Handle client-side errors during negotiation.
2020-06-10 14:38:00 +02:00
Juliusz Chroboczek
0308719719
Implement local mute.
2020-06-09 18:10:11 +02:00
Juliusz Chroboczek
94c42ea784
Be more aggressive about growing the packet cache.
...
Also add a test.
2020-06-09 17:17:21 +02:00
Juliusz Chroboczek
f3b58bbf5c
Don't complain about rate limiting.
2020-06-09 15:15:59 +02:00
Juliusz Chroboczek
4a526b4133
Implement packet pacing.
...
We used to send all of the packets corresponding to a received packet
as a single burst, which led to persistent packet drops for clients
at the end of the queue. Pace the writer, which introduces up to 1ms
extra jitter.
2020-06-09 15:15:59 +02:00
Juliusz Chroboczek
2454e33df3
Use jiffies in rate estimator.
...
This avoids locking in estimate.
2020-06-09 14:14:32 +02:00
Juliusz Chroboczek
f277b42e26
Check for connection state if not sending report packet.
...
This avoids a situation when an RTCP sender never terminates.
2020-06-09 13:46:04 +02:00
Juliusz Chroboczek
f70ff2424e
Detect sends on closed websocket explicitly.
...
It turns out that send on a closed websocket doesn't throw, so handle
this case explicitly. Thanks to Giuseppe Castagna for noticing.
2020-06-09 01:49:55 +02:00
Juliusz Chroboczek
191624130a
Use packet timestamps when saving to disk.
2020-06-09 01:06:09 +02:00
Juliusz Chroboczek
f9edde6526
Maintain time offsets on the sender side.
2020-06-09 01:06:09 +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
0f96f94417
Implement packetcache.GetLast.
2020-06-08 21:55:38 +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