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
Juliusz Chroboczek
8ba50bd2ca
Tweak SR sending policy.
...
Don't send SRs for tracks for which we have no time offset yet.
Send an unscheduled SR when we get our first time offset.
2020-06-04 19:12:52 +02:00