1
Fork 0
Commit Graph

690 Commits

Author SHA1 Message Date
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
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 fd1772ed72 Add .gitignore. 2020-04-30 19:13:32 +02:00
Juliusz Chroboczek 34eacafe5c Add sample ice-servers.json. 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 aef0c731b3 Add README. 2020-04-29 18:31:54 +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 a813cc9ce4 Split out sending loop into a separate function. 2020-04-29 02:00:40 +02:00
Juliusz Chroboczek 9bd093e78c Stop tracks before closing stream.
Otherwise the camera status light stays on.
2020-04-29 01:22:39 +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 4cebaa6dc2 Enable Trickle ICE. 2020-04-27 03:06:45 +02:00
Juliusz Chroboczek d24aafd314 Remove all down connections at websocket close. 2020-04-27 01:37:27 +02:00
Juliusz Chroboczek e7e1f248ea Dont send close on abort. 2020-04-27 01:33:05 +02:00