audio_output key in settings.toml, but it can also be
changed at runtime — e.g. by clicking a discovered Chromecast in the device
picker.
Stream format
Every sink receives the same byte stream: S16LE stereo PCM at 44 100 Hz. The Rockbox DSP pipeline dithers and downmixes higher-bit-depth decoder output before it reaches the sink.Fan-out
A few sinks support sending the same stream to multiple receivers simultaneously:- AirPlay — list multiple
[[airplay_receivers]]and they all share the sameinitial_rtptime, keeping playback within ~8 ms across the LAN. - Squeezelite — any number of squeezelite clients can attach to one
rockboxd; a
syncpacket aligns their clocks once per second. - Snapcast — fan-out is handled by snapserver, not Rockbox.
Switching sinks at runtime
Through the GraphQL API:init and start hooks run, and audio resumes within a frame.
Architecture
Each sink implements thepcm_sink_ops vtable in
firmware/export/pcm_sink.h. The full list of sinks with file paths and
implementation notes lives in Architecture › PCM sinks.