1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-26 02:25:58 +01:00
Commit graph

57 commits

Author SHA1 Message Date
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
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
7c83f2fa5a Don't pass group to rtcpDownListener. 2020-05-07 10:29:48 +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
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
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
100f72e76c Don't count NACK recovery as properly received packets. 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
Juliusz Chroboczek
8fa68f9605 Remove track muting. 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
f1deb84576 Increase the size of the NACK cache. 2020-04-30 19:13:32 +02:00
Juliusz Chroboczek
4996cf6931 Don't log unknown RTCP. 2020-04-30 19:13:32 +02:00
Juliusz Chroboczek
4173d6170e Ignore PLI and NACK for muted tracks. 2020-04-30 19:13:32 +02:00
Juliusz Chroboczek
6ba5315a48 Don't mute clients unless they are suffering packet loss.
Otherwise we never recover from low throughput.
2020-04-29 18:49:09 +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
a813cc9ce4 Split out sending loop into a separate function. 2020-04-29 02:00:40 +02:00
Juliusz Chroboczek
81dfabbe50 Implement sending NACKs on the upstream connection. 2020-04-28 23:45:19 +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
d84604832d Don't complain on ErrClosedPipe. 2020-04-28 20:13:03 +02:00
Juliusz Chroboczek
151f37c062 Pass a track to the RTCP listener. 2020-04-28 20:13:03 +02:00
Juliusz Chroboczek
d9a7f3d6c0 Avoid reallocating the list of local tracks at each packet. 2020-04-28 20:13:03 +02:00
Juliusz Chroboczek
87f70c4345 Mute clients when bitrate is too low. 2020-04-28 20:13:03 +02:00
Juliusz Chroboczek
1de42bd80e Kill obsolete function. 2020-04-28 15:07:58 +02:00
Juliusz Chroboczek
038ab46d2b Use a separate track for each down connection. 2020-04-28 14:54:50 +02:00
Juliusz Chroboczek
9c9748b888 Unmarshal RTP directly instead of using helper functions.
This avoids allocating a new header each time.
2020-04-28 14:52:36 +02:00
Juliusz Chroboczek
015699a9cd Gofmt. 2020-04-27 03:08:03 +02:00
Juliusz Chroboczek
e19d704a0a Format error messages on the client side. 2020-04-26 19:15:02 +02:00
Juliusz Chroboczek
c441b49d26 Send rate updates over RTCP. 2020-04-26 03:03:39 +02:00
Juliusz Chroboczek
98034c0f6f Rename streamCount to trackCount. 2020-04-26 00:39:07 +02:00
Juliusz Chroboczek
78d3b7ab40 Simplify sendPLI.
We use identical SSRC values on both sides, no need to map.
2020-04-26 00:25:22 +02:00
Juliusz Chroboczek
c86b1c87d5 Add timeout for initial handshake. 2020-04-25 22:49:07 +02:00
Juliusz Chroboczek
b201c3d93c Implement ping/pong exchanges and client timeouts. 2020-04-25 22:44:24 +02:00
Juliusz Chroboczek
4ea4e7c0eb Implement chat history. 2020-04-25 21:19:11 +02:00
Juliusz Chroboczek
1d90f44315 Kill Message field in clientMessage.
Having both Message and Value is confusing.
2020-04-25 20:49:21 +02:00
Juliusz Chroboczek
695cbad31c Make clientMessage.me a plain boolean. 2020-04-25 20:30:33 +02:00
Juliusz Chroboczek
78003fdc7d Disallow usernames with spaces. 2020-04-25 20:15:47 +02:00
Juliusz Chroboczek
563545bd13 Fix error handling at connection start. 2020-04-25 19:58:54 +02:00
Juliusz Chroboczek
caa2264390 Close up connections when presenter permission lost. 2020-04-25 18:35:32 +02:00