From 853b63e543bbc72081c59d7e10d7c968178ce0ae Mon Sep 17 00:00:00 2001 From: salmonik Date: Mon, 2 Nov 2026 13:02:11 +0100 Subject: audio: http streaming, opus/mkv support and stream recovery - read http(s) urls through a MediaSourceStream instead of failing - register the libopus decoder and enable mkv/aac/isomp4 in symphonia - resample to the device rate with linear interpolation - rebuild the output stream when the backend dies instead of leaving playback silent while the daemon still reports "Playing" A dead pcm makes cpal call the error callback hundreds of thousands of times per second, so errors are only counted there and reported once when the stream is dropped. The first failure of a healthy stream is retried immediately, consecutive failures back off, and a stream that played long enough clears the failure budget. --- Cargo.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'Cargo.toml') diff --git a/Cargo.toml b/Cargo.toml index e3567d7..51eebbb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,7 +24,8 @@ directories = "6.0" serde = { version = "1.0.228", features = ["derive"] } toml = "1.1.2" reqwest = { version = "0.13.3", features = ["json", "form", "blocking"] } -symphonia = { version = "0.6", default-features = false, features = ["mp3", "flac", "vorbis", "wav", "ogg", "id3v1", "id3v2"] } +symphonia = { version = "0.6", default-features = false, features = ["mp3", "flac", "vorbis", "wav", "ogg", "mkv", "aac", "isomp4", "id3v1", "id3v2"] } +symphonia-adapter-libopus = "0.3" cpal = "0.17.3" serde_json = "1.0.149" dirs = "6.0" -- cgit v1.2.3