aboutsummaryrefslogtreecommitdiff
path: root/stream
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-29 18:03:06 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-29 18:03:06 +0100
commitdb511d3fe50f05329615f718515fab1b80d9e06a (patch)
tree7969fea01be100cbe4385ad13a14940a987ac513 /stream
parent82e8a55a1496ae9132e13e7286fe1c0d57d586d3 (diff)
downloadjellything-db511d3fe50f05329615f718515fab1b80d9e06a.tar
jellything-db511d3fe50f05329615f718515fab1b80d9e06a.tar.bz2
jellything-db511d3fe50f05329615f718515fab1b80d9e06a.tar.zst
no direct redb access
Diffstat (limited to 'stream')
-rw-r--r--stream/src/fragment.rs3
-rw-r--r--stream/src/hls.rs6
-rw-r--r--stream/src/jhls.rs3
-rw-r--r--stream/src/lib.rs6
-rw-r--r--stream/src/webvtt.rs5
5 files changed, 13 insertions, 10 deletions
diff --git a/stream/src/fragment.rs b/stream/src/fragment.rs
index 17e7633..2dbc716 100644
--- a/stream/src/fragment.rs
+++ b/stream/src/fragment.rs
@@ -12,11 +12,12 @@ use jellycommon::{
};
use jellytranscoder::fragment::transcode;
use log::warn;
+use std::sync::Arc;
use tokio::{fs::File, io::DuplexStream};
use tokio_util::io::SyncIoBridge;
pub async fn fragment_stream(
- node: Node,
+ node: Arc<Node>,
local_tracks: Vec<LocalTrack>,
spec: StreamSpec,
mut b: DuplexStream,
diff --git a/stream/src/hls.rs b/stream/src/hls.rs
index 2203ee8..c09b77f 100644
--- a/stream/src/hls.rs
+++ b/stream/src/hls.rs
@@ -10,14 +10,14 @@ use jellycommon::{
stream::{StreamFormat, StreamSpec},
LocalTrack, Node, SourceTrackKind,
};
-use std::{fmt::Write, ops::Range};
+use std::{fmt::Write, ops::Range, sync::Arc};
use tokio::{
io::{AsyncWriteExt, DuplexStream},
task::spawn_blocking,
};
pub async fn hls_master_stream(
- node: Node,
+ node: Arc<Node>,
_local_tracks: Vec<LocalTrack>,
_spec: StreamSpec,
mut b: DuplexStream,
@@ -50,7 +50,7 @@ pub async fn hls_master_stream(
}
pub async fn hls_variant_stream(
- node: Node,
+ node: Arc<Node>,
local_tracks: Vec<LocalTrack>,
mut spec: StreamSpec,
mut b: DuplexStream,
diff --git a/stream/src/jhls.rs b/stream/src/jhls.rs
index b0de837..28d383f 100644
--- a/stream/src/jhls.rs
+++ b/stream/src/jhls.rs
@@ -11,10 +11,11 @@ use jellycommon::{
user::{PermissionSet, UserPermission},
LocalTrack, Node,
};
+use std::sync::Arc;
use tokio::io::{AsyncWriteExt, DuplexStream};
pub async fn jhls_index(
- node: Node,
+ node: Arc<Node>,
local_tracks: &[LocalTrack],
spec: StreamSpec,
mut b: DuplexStream,
diff --git a/stream/src/lib.rs b/stream/src/lib.rs
index 14d3a4c..2055440 100644
--- a/stream/src/lib.rs
+++ b/stream/src/lib.rs
@@ -19,7 +19,7 @@ use jellycommon::{
LocalTrack, Node, TrackSource,
};
use jhls::jhls_index;
-use std::{io::SeekFrom, ops::Range};
+use std::{io::SeekFrom, ops::Range, sync::Arc};
use tokio::{
fs::File,
io::{duplex, AsyncReadExt, AsyncSeekExt, AsyncWriteExt, DuplexStream},
@@ -47,7 +47,7 @@ pub fn stream_head(spec: &StreamSpec) -> StreamHead {
}
pub async fn stream(
- node: Node,
+ node: Arc<Node>,
spec: StreamSpec,
range: Range<usize>,
perms: &PermissionSet,
@@ -94,7 +94,7 @@ pub async fn stream(
}
async fn remux_stream(
- node: Node,
+ node: Arc<Node>,
local_tracks: Vec<LocalTrack>,
spec: StreamSpec,
range: Range<usize>,
diff --git a/stream/src/webvtt.rs b/stream/src/webvtt.rs
index 4065e1b..02a4181 100644
--- a/stream/src/webvtt.rs
+++ b/stream/src/webvtt.rs
@@ -8,11 +8,12 @@ use jellybase::{cache::async_cache_memory, CONF};
use jellycommon::{stream::StreamSpec, LocalTrack, Node};
use jellyremuxer::extract::extract_track;
use jellytranscoder::subtitles::{parse_subtitles, write_webvtt};
+use std::sync::Arc;
use tokio::io::{AsyncWriteExt, DuplexStream};
pub async fn vtt_stream(
json: bool,
- node: Node,
+ node: Arc<Node>,
local_tracks: Vec<LocalTrack>,
spec: StreamSpec,
mut b: DuplexStream,
@@ -23,7 +24,7 @@ pub async fn vtt_stream(
let tracki = *spec.track.first().ok_or(anyhow!("no track selected"))?;
let local_track = local_tracks.first().ok_or(anyhow!("no tracks"))?.clone();
- let track = &node.media.unwrap().tracks[tracki];
+ let track = &node.media.as_ref().unwrap().tracks[tracki];
let cp = local_track.codec_private.clone();
let subtitles = async_cache_memory(