Epic: #113 · Milestone: MC8 — Library & services
Tasks
- SSDP discovery/advertise over UDP multicast; device description XML; SOAP control endpoints on the HTTP server from #100.
- Renderer: AVTransport (SetAVTransportURI/Play/Pause/Seek/Stop), RenderingControl (volume/mute), event subscriptions (GENA); plays URLs through #85.
- Server: ContentDirectory browse/search over the library DB; HTTP range serving of files.
- Post-v1 research notes: AirPlay 2 (mDNS
_airplay._tcp, pairing, FairPlay constraints — likely infeasible legally/technically without Apple's keys; audio-only AirPlay 1 receivers exist in the open), Google Cast (requires Google-signed certs for official senders → likely out). Document the verdict in the ADR rather than promising it.
Acceptance
A phone DLNA controller app plays a video on the Pi; a DLNA client on the Mac browses the library.