1
Fork 0
Commit Graph

28 Commits

Author SHA1 Message Date
Juliusz Chroboczek fc9f28fd68 Minor cleanups. 2022-04-23 18:43:01 +02:00
Juliusz Chroboczek 9093339b62 Rework handling of buffered keyframes.
Instead of buffering the last keyframe, we merely keep track of its
seqno, and use the main cache for recovering.  We also send the whole
sequence of packets rather than just the keyframe itself.
2021-08-04 02:58:24 +02:00
Juliusz Chroboczek 9b1d814b58 Rework packetcache loss statistics.
Don't maintain loss, which is too error-prone.  Instead, maintain
expected and received packet counts, and compute loss from that.
2021-04-30 16:26:17 +02:00
Juliusz Chroboczek d0ef6a2c0f Fix loss accounting for multiple packets. 2021-04-28 00:07:19 +02:00
Juliusz Chroboczek f0cf9ae141 Fix loss statistics on NACK.
Since we don't use a separate RTX SSID, we must explicitly account for
NACKed packets in our loss statistics.
2021-04-27 12:18:43 +02:00
Louis Gesbert 9533c20886 Fix index out of range in packetcache 2021-04-15 11:34:01 +02:00
Juliusz Chroboczek 9f6e23aaf3 Implement ToBitmap. 2020-10-12 14:43:28 +02:00
Juliusz Chroboczek 962c675ded Packetcache: implement KeyframeSeqno and Get(nil). 2020-10-12 12:14:19 +02:00
Juliusz Chroboczek a189e0ad46 Implement packetcache.Last. 2020-10-11 22:08:03 +02:00
Juliusz Chroboczek e6bf9338dd Document packetcache. 2020-10-08 18:46:52 +02:00
Juliusz Chroboczek e07a98e355 Deal with reordered keyframes. 2020-10-08 17:58:58 +02:00
Juliusz Chroboczek 86f7594626 Discard old keyframes.
Avoids seqno wraparound.  Unlikely, but I'm supersticious.
2020-10-06 05:02:58 +02:00
Juliusz Chroboczek 44ae9f82d3 Remodularise packet cache. 2020-10-04 21:08:34 +02:00
Juliusz Chroboczek 4a8e48d146 Take next packet index into account when sending NACKs.
This avoids sending NACKs for packets in the future.
2020-10-04 16:07:23 +02:00
Juliusz Chroboczek a50e9c6771 Buffer last keyframe. 2020-10-03 16:18:28 +02:00
Juliusz Chroboczek bbd5ce0c75 Remove dead code (cache.GetLast). 2020-10-03 13:15:30 +02:00
Juliusz Chroboczek 94c42ea784 Be more aggressive about growing the packet cache.
Also add a test.
2020-06-09 17:17:21 +02:00
Juliusz Chroboczek 0f96f94417 Implement packetcache.GetLast. 2020-06-08 21:55:38 +02:00
Juliusz Chroboczek b00d2abacf Implement packetcache resizing. 2020-06-04 00:36:01 +02:00
Juliusz Chroboczek b7a680671d Remove padding in packetcache.
Since the packet entries are already overdimensioned, there's no
need to add additional padding.
2020-06-03 02:45:34 +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 92de141b97 Rework sending of NACKs. 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 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