docs: document the Android receiver app (Phase 8)
README: phone-as-second-screen section (build, install, sender usage, multi-monitor caveat). RUNBOOK: Android build/test procedure, device-test commands, and the API-36 platform quirks found during validation. PHASES: Phase 8 milestones, all validated. MEMORY: current phase state and the hard-won Android/portal lessons.
This commit is contained in:
+24
-1
@@ -102,6 +102,29 @@ where available. PLI + jitter validated on the desktop (induced-loss probe);
|
||||
hardware decode validated as clean-fallback on the desktop, hardware path
|
||||
pending a run on the Pi.
|
||||
|
||||
## Phase 8 — Android Receiver App
|
||||
|
||||
**Goal**: a native Android receiver app (Kotlin) so a phone can act as the
|
||||
second receiver — screen on, USB-C DP-alt-mode to HDMI. The app speaks the
|
||||
existing signaling + RTP protocol; no C++ changes.
|
||||
|
||||
- [x] 8.1 Gradle project builds (`android/`, AGP 9 built-in Kotlin, no
|
||||
androidx; `gradle :app:assembleDebug`)
|
||||
- [x] 8.2 Kotlin sources + JVM unit tests (rtp framing, jitter buffer,
|
||||
depacketizer — 25 tests green)
|
||||
- [x] 8.3 Signaling + NSD validated on device (offer → answer over the
|
||||
network; mDNS registration via the API-36 RegistrationListener)
|
||||
- [x] 8.4 MediaCodec decode + Surface render validated on device (in-band
|
||||
SPS sizing, letterbox fit)
|
||||
- [x] 8.5 End-to-end on a Fairphone 6 (Android 16): streaming, letterboxed
|
||||
fullscreen render, PLI keyframe recovery on Wi-Fi loss
|
||||
- [x] 8.6 Docs: README receiver section, RUNBOOK build/install/test,
|
||||
PHASES + MEMORY updates
|
||||
|
||||
**Validation**: `gradle :app:testDebugUnitTest` green; live session
|
||||
`--send --target window --peer <phone>:5005` rendered fullscreen on the
|
||||
phone (and HDMI via DP-alt-mode) with loss recovery.
|
||||
|
||||
## Current phase
|
||||
|
||||
Phase 7 — Resilience and Polish.
|
||||
Phase 8 — Android Receiver App (complete).
|
||||
|
||||
Reference in New Issue
Block a user