diff options
Diffstat (limited to 'stream')
-rw-r--r-- | stream/src/hls.rs | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/stream/src/hls.rs b/stream/src/hls.rs index c5b7f91..ea82fed 100644 --- a/stream/src/hls.rs +++ b/stream/src/hls.rs @@ -11,7 +11,10 @@ use jellycommon::{ LocalTrack, Node, }; use std::{fmt::Write, ops::Range}; -use tokio::io::{AsyncWriteExt, DuplexStream}; +use tokio::{ + io::{AsyncWriteExt, DuplexStream}, + task::spawn_blocking, +}; pub async fn hls_master_stream( _node: Node, @@ -47,12 +50,15 @@ pub async fn hls_variant_stream( mut b: DuplexStream, ) -> Result<()> { let track = *spec.tracks.get(0).ok_or(anyhow!("no track"))?; - let snips = jellyremuxer::snippet::snippet_index( - &CONF.library_path, - &node.public, - &track_sources, - track, - )?; + let snips = spawn_blocking(move || { + jellyremuxer::snippet::snippet_index( + &CONF.library_path, + &node.public, + &track_sources, + track, + ) + }) + .await??; let mut out = String::new(); writeln!(out, "#EXTM3U")?; writeln!(out, "#EXT-X-VERSION:4")?; |