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
4b3ce50dac
Use explicit add/remove messages in writerLoop.
2020-05-27 11:25:37 +02:00
Juliusz Chroboczek
e7f9a8f3dc
Make downTrack and downConnection into interfaces.
2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
d9f2a93615
Inline activateDownTrack.
2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
9488d4a7c8
Add WriteRTP and Accumulate methods to downTrack.
2020-05-27 11:24:52 +02:00
Juliusz Chroboczek
d45d111084
Remove erroneous iceCandidates field from upTrack.
2020-05-27 11:24:44 +02:00
Juliusz Chroboczek
0fd302d877
Don't drop connections on ICE failure.
...
This spuriously breaks client-to-server connections over IPv6.
Thanks to Fabien de Montgolfier for his help with debugging this.
2020-05-25 01:08:49 +02:00
Juliusz Chroboczek
75804adc5f
Improve error handling.
2020-05-24 13:39:06 +02:00
Juliusz Chroboczek
eb6ab8aa1a
Implement workaround for older browsers that don't have transceivers.
2020-05-24 13:39:06 +02:00
Juliusz Chroboczek
3959afb952
Update dependencies.
2020-05-23 21:04:14 +02:00
Juliusz Chroboczek
bfdc22ff83
Maintain local connections explicitly.
2020-05-23 02:34:28 +02:00
Juliusz Chroboczek
4699c338e1
Cache early ICE candidates.
2020-05-23 02:34:28 +02:00
Juliusz Chroboczek
57163c70a3
Better protection against duplicate connection ids.
2020-05-22 22:38:40 +02:00
Juliusz Chroboczek
6005ad9eb4
Create a connection interface, use it in gotICE.
2020-05-22 22:36:47 +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
cbff5067b2
Implement sharing of multiple application windows at a time.
2020-05-21 22:40:11 +02:00
Juliusz Chroboczek
9fde029912
Send recovery if we're very mildly congested.
2020-05-21 13:25:45 +02:00
Juliusz Chroboczek
0e1f3cafea
Drop until end of frame when writer is congested.
2020-05-21 13:17:52 +02:00
Juliusz Chroboczek
e32f911ab9
Don't account failed writes in rate estimator.
2020-05-21 12:39:02 +02:00
Juliusz Chroboczek
a290325320
Wait for answer before sending data.
2020-05-21 00:55:00 +02:00
Juliusz Chroboczek
47d23658b5
Add profiling support.
2020-05-20 23:43:46 +02:00
Juliusz Chroboczek
5a2dbf36b9
Signal new tracks explicitly.
2020-05-20 23:43:46 +02:00
Juliusz Chroboczek
5916028edd
Split the main up loop into two threads.
...
The reader and the writer now communicate through a channel and the packet
cache. If the writer thread drops behind, we drop packets after inserting in
the packet cache, which avoids building a backlog.
2020-05-20 23:42:52 +02:00
Juliusz Chroboczek
a6b09c9150
Implement packagecache.GetAt.
2020-05-20 23:41:29 +02:00
Juliusz Chroboczek
f641e263f1
Make packetcache.Get use a caller-allocated buffer.
2020-05-20 20:32:30 +02:00
Juliusz Chroboczek
a6ff98a313
Make packet cache cache-friendly.
2020-05-20 19:36:33 +02:00
Juliusz Chroboczek
464bad0781
Upgrade and remove unused dependencies
2020-05-18 20:35:25 +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
7281a09f6e
Use pushTracks in up.OnTrack.
2020-05-17 21:24:16 +02:00
Juliusz Chroboczek
fc6c26e176
Reduce minimum video rate further.
2020-05-14 14:34:40 +02:00
Antonin Décimo
c52fa75686
Fix undefined disconnectbutton variable.
...
Commit 8257a7f
"Remove dead variables." was wrong in that it deleted
the 'diconnect' [sic] variable definition, and left the
'disconnectbutton' variable undefined.
2020-05-14 12:55:41 +02:00
Juliusz Chroboczek
6efd6007f1
Fix bitrate computation.
...
I'm an idiot.
2020-05-12 19:20:39 +02:00
Juliusz Chroboczek
7393ca8473
Make all communication between client threads asynchronous.
...
We used to deadlock with large numbers of tracks. This should fix that.
2020-05-12 18:27:40 +02:00
Juliusz Chroboczek
b8dedcf0f0
Fix typo in getChatHistory.
2020-05-12 12:48:56 +02:00
Juliusz Chroboczek
4a476abe11
Add minimum size for list of users.
2020-05-11 20:38:47 +02:00
Juliusz Chroboczek
337770814f
Fix typo in minVideoRate.
2020-05-11 15:55:15 +02:00
Juliusz Chroboczek
fbf26be8c6
Instantiate box explicitly.
...
Thanks to Antonin Décimo.
2020-05-11 02:58:48 +02:00
Juliusz Chroboczek
8257a7ff19
Remove dead variables.
2020-05-11 02:51:44 +02:00
Antonin Décimo
31a5a8e8f1
Fix escaping of \ in character class.
...
> Rejeté. Ce n'est pas un escape.
D’après mes tests, c’est considéré comme un escape. Doubler le
caractère serait suffisant.
const url = 'https://example\\.com ';
const urlRegexp1 = /https?:\/\/[-a-zA-Z0-9@:%/._\+~#=?]+[-a-zA-Z0-9@:%/_\+~#=]/g;
const urlRegexp2 = /https?:\/\/[-a-zA-Z0-9@:%/._\\+~#=?]+[-a-zA-Z0-9@:%/_\\+~#=]/g;
console.log(url.length); // 20
console.log(urlRegexp1.exec(url)); // ["https://example "]
console.log(urlRegexp2.exec(url)); // ["https://example\.com "]
2020-05-11 00:33:58 +02:00
Antonin Décimo
33610e89f8
Introduce a lexical block in case.
2020-05-10 22:42:48 +02:00
Antonin Décimo
61b45ace5a
Correctly close input tags.
2020-05-10 21:43:09 +02:00
Antonin Décimo
38a341de95
Fix unsafe negation.
...
https://eslint.org/docs/rules/no-unsafe-negation
2020-05-10 21:41:46 +02:00
Antonin Décimo
1064c4a47b
Remove mentions of #anonymous-users.
2020-05-10 21:41:33 +02:00
Antonin Décimo
f595da8fa9
Add missing semicolons.
2020-05-10 21:39:42 +02:00
Juliusz Chroboczek
89695c3713
Implement reception of audio only.
2020-05-09 22:44:34 +02:00