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
a3630b17ce
Add unit tests for packetcache statistics.
2021-04-27 14:54: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
4fde2c40e6
Run gofmt.
2020-12-19 17:38:47 +01:00
Juliusz Chroboczek
120bfc92c7
Upgrade pion/rtcp, use nack.Range instead of PacketList.
2020-12-03 23:46:19 +01: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
e373054f7e
Use bytes.Equal in packetcache_test.go.
2020-06-03 11:11:25 +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
d723d20ee6
Add packetcache benchmarks.
2020-06-03 02:36:23 +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