diff options
Diffstat (limited to 'server/src/routes/stream.rs')
-rw-r--r-- | server/src/routes/stream.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/server/src/routes/stream.rs b/server/src/routes/stream.rs index c49f51d..0e1fccb 100644 --- a/server/src/routes/stream.rs +++ b/server/src/routes/stream.rs @@ -1,9 +1,12 @@ +use crate::library::Library; + use super::ui::error::MyError; -use crate::AppState; use anyhow::{anyhow, Context}; +use jellyremuxer::RemuxerContext; use log::debug; use log::warn; use rocket::{get, http::ContentType, response::stream::ReaderStream, State}; +use std::ops::Deref; use std::path::PathBuf; use tokio::io::{duplex, DuplexStream}; use tokio_util::io::SyncIoBridge; @@ -25,16 +28,16 @@ pub fn r_stream( path: PathBuf, webm: Option<bool>, tracks: String, - state: &State<AppState>, + remuxer: &State<RemuxerContext>, + library: &State<Library>, ) -> Result<(ContentType, ReaderStream![DuplexStream]), MyError> { let (a, b) = duplex(1024); let path = path.to_str().unwrap().to_string(); - let item = state - .library + let item = library .nested(&path) .context("retrieving library node")? .get_item()?; - let remuxer = state.remuxer.clone(); + let remuxer = remuxer.deref().clone(); let tracks = tracks .split(",") .map(|e| e.parse().map_err(|_| anyhow!("invalid number"))) |