Refactor audio pipeline for multi-client streaming and improved error handling

Refactor the audio pipeline to support multi-client streaming with new OggFlacStreamHandle and StreamingOggFlacSink.

- Replace DirectOggFlacSink with StreamingOggFlacSink in pipeline
- Update documentation and comments to reflect multi-client support
- Add detailed warning logs for buffer underruns and client disconnections
- Remove TimerBufferNode from pipeline as it's no longer needed
- Update connect() calls to subscribe() for new streaming behavior

This change enables multiple clients to subscribe to the same audio stream, with each subscription getting a live feed from the current point in time.
This commit is contained in:
2026-02-26 20:41:57 +01:00
parent 6f8a80a58a
commit 6fe2f6be95
5 changed files with 40 additions and 22 deletions

View File

@@ -44,7 +44,7 @@ pub async fn stream_handler(
}
};
let stream = handle.connect().await;
let stream = handle.subscribe();
info!(instance_id = %instance_id, "FLAC stream started");