aboutsummaryrefslogtreecommitdiff
path: root/server/src/routes/stream.rs
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/routes/stream.rs')
-rw-r--r--server/src/routes/stream.rs13
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")))