Headless Rust gRPC daemon to drive Bluetooth, HLS/DASH playback, and snapcast/shairport-sync/squeezelite on Raspberry Pi audio rigs.
0

Configure Feed

Select the types of activity you want to include in your feed.

zerod / crates / stream / src / lib.rs
1.0 kB 31 lines
1//! Standalone HLS / DASH audio player with pluggable PCM sinks. 2//! 3//! URL (.m3u8 / .mpd) 4//! → manifest parser (m3u8-rs / dash-mpd) 5//! → segment fetcher (reqwest, concurrent prefetch) 6//! → demux + decode (symphonia: fMP4 / TS → AAC → S16LE PCM) 7//! → AudioSink (cpal / stdout / pipe) 8//! 9//! Lifted from rockbox-zig/crates/hls and rewired to a trait-based output so 10//! the gRPC layer can pick `cpal | stdout | pipe` per-stream at runtime. 11 12#[cfg(target_os = "linux")] 13mod alsa_sink; 14#[cfg(not(target_os = "linux"))] 15mod cpal_sink; 16mod decoder; 17mod demux; 18mod fetcher; 19mod manifest; 20mod output; 21mod player; 22mod sink; 23mod sources; 24 25pub use manifest::{is_hls_or_dash_url, ManifestKind}; 26pub use player::{ 27 pause, play, resume, set_volume, status, stop, volume, PlayConfig, PlaybackSource, 28 PlayerState, Status, 29}; 30pub use sink::{AudioOutput, AudioSink}; 31pub use sources::{spotify_start, spotify_stop, LibrespotConfig};