Epic: #113 · Milestone: MC0 — Product & decisions
Why
Before any driver or UI work, one document must say what "an Apple TV built from our own stack" concretely means, so every later issue has a fixed target and every gate has a number. Today the repo has no TV / living-room concept at all: grep for 10-foot, leanback, media center, AirPlay, DLNA returns nothing.
Decision to record (docs/adr/ADR-MC1-media-center.md)
- Product: HomeOS TV profile on Raspberry Pi 5 — boots straight into a single full-screen TV shell (no desktop, no window manager), driven by a remote, playing local and network media. Kodi/Plex are the reference for feature scope only; no third-party userland ships (per CLAUDE.md and MASTER_PLAN D1/D4).
- v1 feature set: home screen (top shelf, app row, "continue watching"), Movies / TV Shows / Music / Photos libraries with artwork, player with OSD, subtitles, settings, screensaver, CEC + Bluetooth + phone remote, sources = USB / NVMe / SMB / NFS / HTTP(S) / HLS, OTA updates with rollback.
- v1 codec floor: H.264 up to 1080p60 (software, NEON), HEVC up to 4Kp60 (hardware), AAC/MP3/FLAC/Opus/Vorbis/PCM audio, MP4/MKV/TS containers, SRT/ASS/VTT/PGS subtitles. H.264 4K and AV1 are explicit non-goals for v1 (the Pi 5 has no H.264 or AV1 hardware decoder).
- Non-goals for v1: web browser, app store for third-party apps, games, Wi-Fi as the only link (Ethernet first), AirPlay/Cast receivers (post-v1 research), HDR tone-mapping (passthrough only), V3D/GPU 3D acceleration.
- Budgets (become CI gates in #49): cold boot to interactive home screen ≤ 8 s (stretch 4 s); idle RSS of the whole system ≤ 128 MB; idle CPU ≤ 3 %; UI 60 fps at 1080p with p99 frame time ≤ 16.6 ms; remote-to-screen input latency ≤ 50 ms; 1080p H.264 software decode ≤ 60 % of 4 cores; idle power ≤ 3 W.
- Display architecture summary (detail in #47): UI rendered on CPU at 1080p, video in a separate hardware plane, both composited by the VideoCore HVS and scaled to the panel's mode.
Tasks
- Write the ADR with the above, plus a persona/usage section (TV, remote, NAS) and a one-page feature matrix vs Apple TV / Kodi (what we match, what we drop).
- Add the TV profile to MASTER_PLAN §4 as a parallel track ("MC" milestones) that reuses Phase 7b's bring-up and does not move any existing phase gate.
- Add a "living-room" row group to the parity matrix in MASTER_PLAN §10.
- Link from README under a clearly labeled ASPIRATION banner until the first HIL gate is green.
Acceptance
ADR merged; MASTER_PLAN references the MC milestones; every number in "Budgets" has a named future gate.
Size: S · Depends on: nothing · Blocks: everything in MC1–MC9