1
Fork 0
Commit Graph

72 Commits

Author SHA1 Message Date
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 4da03a3ce5 Make rate estimator estimate packet rates too. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek 19a65318c9 Compute down track RTT. 2020-06-03 23:45:45 +02:00
Juliusz Chroboczek 49bccda5ee Send client notification to oneself too.
This was broken when we pushed user notifications into addClient.
2020-06-03 21:09:24 +02:00
Juliusz Chroboczek 3e305e9827 Use jiffies instead of microseconds. 2020-06-03 20:58:01 +02:00
Juliusz Chroboczek 7ae9a9ea69 Rename mono to rtptime. 2020-06-03 20:12:25 +02:00
Juliusz Chroboczek b8128f81a0 Move client notifications into addClient and delClient. 2020-06-01 00:02:17 +02:00
Juliusz Chroboczek 32e8f08b8d Move dead errors into webclient. 2020-05-30 12:38:13 +02:00
Juliusz Chroboczek 0a2c4eb381 Implement recording. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek 3240225dc3 Make client generic. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek d8b984979b Rename client to webClient. 2020-05-30 03:26:05 +02:00
Juliusz Chroboczek 88fbce262f Implement sendFIR. 2020-05-29 20:57:46 +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 e7f9a8f3dc Make downTrack and downConnection into interfaces. 2020-05-27 11:24:52 +02:00
Juliusz Chroboczek 75804adc5f Improve error handling. 2020-05-24 13:39:06 +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 5a2dbf36b9 Signal new tracks explicitly. 2020-05-20 23:43:46 +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 fc6c26e176 Reduce minimum video rate further. 2020-05-14 14:34:40 +02:00
Juliusz Chroboczek b8dedcf0f0 Fix typo in getChatHistory. 2020-05-12 12:48:56 +02:00
Juliusz Chroboczek 337770814f Fix typo in minVideoRate. 2020-05-11 15:55:15 +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 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 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 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 5715182978 Fix TotalLost value in receiver reports. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek b818d1890a Sort public groups. 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
Juliusz Chroboczek 8fa68f9605 Remove track muting. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 118ad7a3a7 Display actual rate in statistics. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 5dd27e5067 Implement rate estimation. 2020-05-03 11:06:08 +02:00
Juliusz Chroboczek 10526d474e Add command /clear. 2020-04-30 19:13:32 +02:00
Juliusz Chroboczek 3f7439fc48 Add primitive monitoring interface. 2020-04-29 16:08:07 +02:00
Juliusz Chroboczek 17941fa96d Parse receiver reports, save loss rate. 2020-04-29 16:03:54 +02:00
Juliusz Chroboczek b042bed9a3 Maintain reception statistics, send receiver reports. 2020-04-29 13:27:51 +02:00
Juliusz Chroboczek e2d89c7c17 Merge packet list and window into cache. 2020-04-29 11:11:07 +02:00
Juliusz Chroboczek e5dae16da1 Rate-limit PLI. 2020-04-28 23:45:19 +02:00
Juliusz Chroboczek bfeeeb4bcd Handle NACKs arriving on down connections. 2020-04-28 23:45:19 +02:00
Juliusz Chroboczek 87f70c4345 Mute clients when bitrate is too low. 2020-04-28 20:13:03 +02:00
Juliusz Chroboczek 038ab46d2b Use a separate track for each down connection. 2020-04-28 14:54:50 +02:00