1
Fork 0
Commit Graph

1271 Commits

Author SHA1 Message Date
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
Juliusz Chroboczek 0c7b77d919 Only send RTCP feedback if supported by the peer. 2020-05-09 18:49:22 +02:00
Juliusz Chroboczek fd6b9f6bdd Limit the video rate when we have large numbers of presenters. 2020-05-09 12:17:22 +02:00
Juliusz Chroboczek ffee80440b Update pion/webrtc to 2.2.9. 2020-05-09 10:42:49 +02:00
Juliusz Chroboczek 7c83f2fa5a Don't pass group to rtcpDownListener. 2020-05-07 10:29:48 +02:00
Juliusz Chroboczek e205596775 Increate receiver report timeout to 8s.
The previous value caused statistics to occasionally timeout spuriously.
2020-05-07 10:26:38 +02:00
Juliusz Chroboczek f78030c482 Initial implementation of mike and camera selection.
We're closing and reopening the connection each time, we should be
renegotiating instead.
2020-05-05 20:50:27 +02:00
Juliusz Chroboczek 175b08bb08 Remove dead code. 2020-05-05 17:30:56 +02:00
Juliusz Chroboczek 3fec035132 Let setLocal and SharedMedia take the new state as an explicit parameter. 2020-05-04 23:49:44 +02:00
Juliusz Chroboczek ac50973a99 Don't reset remote track on failure.
That would be racy.
2020-05-03 19:45:36 +02:00
Juliusz Chroboczek 3d751465de Fix README. 2020-05-03 18:30:01 +02:00
Juliusz Chroboczek 0c4a625244 Simplify computation of available down bitrate.
Don't take packet loss into account, just clamp at 384kbps.
2020-05-03 18:30:01 +02:00
Juliusz Chroboczek ae7e32a36a Implement loss-based congestion control on the down side. 2020-05-03 18:30:01 +02:00
Juliusz Chroboczek 5205c0773b Delete upstream connections on ICE failure. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 92de141b97 Rework sending of NACKs. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 98a1776ce7 Include jitter in track statistics. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 4dd245712f Include jitter and delay in receiver reports. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 7961d7279b Move monotonic time to separate package, use microseconds. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 1f50b42ee0 Disable checkbox on media failure in setLocal and SharedMedia. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 5715182978 Fix TotalLost value in receiver reports. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 100f72e76c Don't count NACK recovery as properly received packets. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 78cf9d0dbc Resize videos automatically. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek b818d1890a Sort public groups. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek a74e4f68b5 Don't honour NACKs if we're congested. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 5a1ef1ddd7 Use a proper accessor for timestampedByterate. 2020-05-03 11:06:08 +02:00