docs: record Phase 7 resilience state and re-scope

This commit is contained in:
2026-09-08 16:54:09 +02:00
parent 943596da6d
commit 74b3f04082
3 changed files with 48 additions and 7 deletions
+17
View File
@@ -134,6 +134,23 @@ A window manager only comes with the desktop-session alternative, where
the receiver runs inside it (uncomment the `Environment=` lines in the
service file as described above).
## Under the hood: resilience (Phase 7)
The receiver absorbs loss in two stages and recovers actively:
1. **Jitter window**: RTP packets are re-ordered by sequence number in a
small buffer (16 packets / 60 ms), so Wi-Fi reordering is not misread as
loss. In-order streams release immediately (zero added latency).
2. **PLI feedback**: when a frame arrives genuinely damaged, the receiver
drops it and asks the sender for a keyframe over the signaling channel
(rate-limited to one request per 500 ms). The sender re-encodes a
keyframe immediately — recovery takes one frame time instead of
waiting out the rest of the GOP.
**Hardware decode**: the receiver probes `h264_v4l2m2m` (the VideoCore
path on Raspberry Pi) and falls back to software automatically; the
journal says which path is active. `--swdecode` forces software.
## Sender / receiver loopback (Phase 5, manual)
Two terminals on the same desktop session: