docs: record real two-machine validation of Phase 6 on the Pi

The full chain — mDNS discovery, signaling negotiation, RTP over
Wi-Fi, software H.264 decode, and fullscreen KMSDRM letterboxed
rendering — is confirmed working on a real two-machine setup
(desktop -> Raspberry Pi Zero 2 W headless receiver). The probe
gradient appeared on the Pi's display.
This commit is contained in:
2026-09-07 14:09:30 +02:00
parent 67eee23137
commit 013c2519dc
2 changed files with 14 additions and 3 deletions
+8
View File
@@ -65,6 +65,14 @@ loopback; current phase is Phase 7.
before the fix). Cross-compiling on the dev machine was considered and
dropped — the on-Pi build works and the toolchain/container effort was
not needed.
- **REAL-HARDWARE VALIDATION (desktop → Pi Zero 2 W over Wi-Fi)**: the full
chain works on two machines: mDNS discovery → signaling negotiation →
RTP over Wi-Fi → software H.264 decode → fullscreen KMSDRM letterboxed
rendering on the Pi's display. Two transport lessons from that network:
the LAN's 6to4 (2002::) addresses are unreachable between peers —
senders now try all discovered addresses in reachability order (private
IPv4 first; build/pi_probe.cpp in the build dir is the probe that
validated this end-to-end against the real Pi).
- **Phase 5 (local UDP sender→receiver loopback) is implemented**:
- `UdpRtpTransport` (src/network/udp_transport.cpp): raw POSIX sockets,
+6 -3
View File
@@ -73,9 +73,12 @@ session.
- [x] Extend CLI with `--peer` and `--discover`.
**Validation**: two peers connect without hard-coded IP addresses.
Validated end-to-end over loopback: discovery finds the announced receiver,
the sender negotiates a session over the signaling channel, and streams to
the negotiated endpoint over both IPv4 and IPv6.
Validated over loopback AND on real two-machine hardware: a Raspberry
Pi Zero 2 W (Wi-Fi, headless KMSDRM, systemd autostart) was discovered,
negotiated with, and streamed to from the desktop; the receiver rendered
a synthetic feed fullscreen on its display. On that network the LAN's
6to4 addresses are unreachable between peers, so senders try all
discovered addresses in reachability order (private IPv4 first).
## Phase 7 — Resilience and Polish