aboutsummaryrefslogtreecommitdiffstats
path: root/Cargo.lock
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-11-02 13:02:11 +0100
committersalmonik <salmonik@tuta.io>2026-11-02 13:02:11 +0100
commit853b63e543bbc72081c59d7e10d7c968178ce0ae (patch)
tree384665cadca84d1fbb1e93f260078388dcfa27bb /Cargo.lock
parentfix a bug where adding track using `now` when shuffle is on does not work as ... (diff)
downloadrsplayer-853b63e543bbc72081c59d7e10d7c968178ce0ae.tar.gz
rsplayer-853b63e543bbc72081c59d7e10d7c968178ce0ae.zip
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.
Diffstat (limited to '')
-rw-r--r--Cargo.lock60
1 files changed, 60 insertions, 0 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 9c69f54..7a4524a 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -22,6 +22,7 @@ dependencies = [
22 "serde", 22 "serde",
23 "serde_json", 23 "serde_json",
24 "symphonia", 24 "symphonia",
25 "symphonia-adapter-libopus",
25 "toml", 26 "toml",
26 "zbus", 27 "zbus",
27] 28]
@@ -1654,6 +1655,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
1654checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" 1655checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
1655 1656
1656[[package]] 1657[[package]]
1658name = "opusic-sys"
1659version = "0.7.5"
1660source = "registry+https://github.com/rust-lang/crates.io-index"
1661checksum = "c9d1ecdf206421bc74343ab3bb2f30ad2abbfee41fa341f7181fecbaf957769a"
1662dependencies = [
1663 "cmake",
1664]
1665
1666[[package]]
1657name = "ordered-stream" 1667name = "ordered-stream"
1658version = "0.2.0" 1668version = "0.2.0"
1659source = "registry+https://github.com/rust-lang/crates.io-index" 1669source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2325,14 +2335,28 @@ dependencies = [
2325 "lazy_static", 2335 "lazy_static",
2326 "symphonia-bundle-flac", 2336 "symphonia-bundle-flac",
2327 "symphonia-bundle-mp3", 2337 "symphonia-bundle-mp3",
2338 "symphonia-codec-aac",
2328 "symphonia-codec-vorbis", 2339 "symphonia-codec-vorbis",
2329 "symphonia-core", 2340 "symphonia-core",
2341 "symphonia-format-isomp4",
2342 "symphonia-format-mkv",
2330 "symphonia-format-ogg", 2343 "symphonia-format-ogg",
2331 "symphonia-format-riff", 2344 "symphonia-format-riff",
2332 "symphonia-metadata", 2345 "symphonia-metadata",
2333] 2346]
2334 2347
2335[[package]] 2348[[package]]
2349name = "symphonia-adapter-libopus"
2350version = "0.3.0"
2351source = "registry+https://github.com/rust-lang/crates.io-index"
2352checksum = "c6febe6f88f9a9483db7e5b72a2dad916d8f8eb588d18905a39c861319fc7fa1"
2353dependencies = [
2354 "log",
2355 "opusic-sys",
2356 "symphonia-core",
2357]
2358
2359[[package]]
2336name = "symphonia-bundle-flac" 2360name = "symphonia-bundle-flac"
2337version = "0.6.0" 2361version = "0.6.0"
2338source = "registry+https://github.com/rust-lang/crates.io-index" 2362source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2356,6 +2380,18 @@ dependencies = [
2356] 2380]
2357 2381
2358[[package]] 2382[[package]]
2383name = "symphonia-codec-aac"
2384version = "0.6.0"
2385source = "registry+https://github.com/rust-lang/crates.io-index"
2386checksum = "f1979c515a76371b186aad2feff5f23e21cbec775bf95de08bf1e3af92a2ad76"
2387dependencies = [
2388 "lazy_static",
2389 "log",
2390 "symphonia-common",
2391 "symphonia-core",
2392]
2393
2394[[package]]
2359name = "symphonia-codec-vorbis" 2395name = "symphonia-codec-vorbis"
2360version = "0.6.0" 2396version = "0.6.0"
2361source = "registry+https://github.com/rust-lang/crates.io-index" 2397source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2392,6 +2428,30 @@ dependencies = [
2392] 2428]
2393 2429
2394[[package]] 2430[[package]]
2431name = "symphonia-format-isomp4"
2432version = "0.6.0"
2433source = "registry+https://github.com/rust-lang/crates.io-index"
2434checksum = "2d179a01305b3505940135a9f0180d6ef4b487912748fe97554756f120fbd05e"
2435dependencies = [
2436 "log",
2437 "symphonia-common",
2438 "symphonia-core",
2439 "symphonia-metadata",
2440]
2441
2442[[package]]
2443name = "symphonia-format-mkv"
2444version = "0.6.0"
2445source = "registry+https://github.com/rust-lang/crates.io-index"
2446checksum = "fb17713e134f5ad316c2690fa3104590ccc85842cdbcf82c3cd1a845cb08aa74"
2447dependencies = [
2448 "lazy_static",
2449 "log",
2450 "symphonia-common",
2451 "symphonia-core",
2452]
2453
2454[[package]]
2395name = "symphonia-format-ogg" 2455name = "symphonia-format-ogg"
2396version = "0.6.0" 2456version = "0.6.0"
2397source = "registry+https://github.com/rust-lang/crates.io-index" 2457source = "registry+https://github.com/rust-lang/crates.io-index"