feat: Add RadioParadiseStreamSource - pmoaudio node for Radio Paradise
Implement a new pmoaudio source node that streams Radio Paradise blocks with automatic TrackBoundary insertion at the correct timing. Features: - Downloads and decodes FLAC blocks from Radio Paradise API - Queue management for block IDs via push_block_id() - Recent blocks cache (10 blocks) to avoid re-downloads - Automatic TrackBoundary insertion based on sample count timing - Converts Song metadata to TrackMetadata with cover URLs - Timeout of 3 seconds for new block IDs (radio real-time) - Support for 16-bit and 24-bit FLAC audio Architecture: - RadioParadiseStreamSourceLogic: Pure business logic implementing NodeLogic - RadioParadiseStreamSource: Wrapper using Node<> pattern - Uses logic_mut() for push_block_id() configuration The node emits: - TopZeroSync at block start - TrackBoundary before each song (with same order as next chunk) - Audio chunks (I16 or I24) - EndOfStream on timeout or completion New pmoaudio feature gate with dependencies on: - pmoaudio, pmoflac, pmometadata, futures-util
This commit is contained in:
4
Cargo.lock
generated
4
Cargo.lock
generated
@@ -2908,11 +2908,15 @@ dependencies = [
|
||||
"ffmpeg-next",
|
||||
"flacenc",
|
||||
"futures",
|
||||
"futures-util",
|
||||
"hex",
|
||||
"hound",
|
||||
"pmoaudio",
|
||||
"pmoaudiocache",
|
||||
"pmoconfig",
|
||||
"pmocovers",
|
||||
"pmoflac",
|
||||
"pmometadata",
|
||||
"pmoplaylist",
|
||||
"pmoserver",
|
||||
"pmosource",
|
||||
|
||||
Reference in New Issue
Block a user