1
Fork 0
Commit Graph

1047 Commits

Author SHA1 Message Date
Juliusz Chroboczek 1365683ad6 Fix selection of alternate media devices.
Thanks to Giuseppe Castagna for noticing.
2020-05-29 15:56:06 +02:00
Juliusz Chroboczek 72cbb5ffd3 Simplify some usages of client.error. 2020-05-28 04:27:15 +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 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