From 2676e755286d117b100d379fce84ec3da6d8ae98 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 29 Jan 2024 13:22:21 +0100 Subject: consistent name for {snippet,segment?,fragment} --- stream/src/segment.rs | 84 --------------------------------------------------- 1 file changed, 84 deletions(-) delete mode 100644 stream/src/segment.rs (limited to 'stream/src/segment.rs') diff --git a/stream/src/segment.rs b/stream/src/segment.rs deleted file mode 100644 index a5162cd..0000000 --- a/stream/src/segment.rs +++ /dev/null @@ -1,84 +0,0 @@ -/* - This file is part of jellything (https://codeberg.org/metamuffin/jellything) - which is licensed under the GNU Affero General Public License (version 3); see /COPYING. - Copyright (C) 2024 metamuffin -*/ -use anyhow::{anyhow, bail, Result}; -use jellybase::{permission::PermissionSetExt, CONF}; -use jellycommon::{ - stream::StreamSpec, - user::{PermissionSet, UserPermission}, - LocalTrack, Node, -}; -use jellytranscoder::snippet::transcode; -use log::warn; -use tokio::{fs::File, io::DuplexStream}; -use tokio_util::io::SyncIoBridge; - -pub async fn segment_stream( - node: Node, - local_tracks: Vec, - spec: StreamSpec, - mut b: DuplexStream, - perms: &PermissionSet, -) -> Result<()> { - if spec.tracks.len() != 1 { - bail!("unsupported number of tracks for segment, must be exactly one"); - } - let track = spec.tracks[0]; - let n = spec.index.ok_or(anyhow!("segment index missing"))?; - - let local_track = local_tracks - .get(0) - .ok_or(anyhow!("track missing"))? - .to_owned(); - - if let Some(profile) = spec.profile { - perms.assert(&UserPermission::Transcode)?; - let location = transcode( - &format!("{track} {n} {:?}", node.private.source), // TODO maybe not use the entire source - CONF.transcoding_profiles - .get(profile) - .ok_or(anyhow!("profile out of range"))?, - move |b| { - tokio::task::spawn_blocking(move || { - if let Err(err) = jellyremuxer::write_snippet_into( - SyncIoBridge::new(b), - &CONF.media_path, - &node.public, - &local_track, - track, - false, - n, - ) { - warn!("segment stream error: {err}"); - } - }); - }, - ) - .await?; - let mut output = File::open(location.abs()).await?; - tokio::task::spawn(async move { - if let Err(err) = tokio::io::copy(&mut output, &mut b).await { - warn!("cannot write stream: {err}") - } - }); - } else { - let b = SyncIoBridge::new(b); - tokio::task::spawn_blocking(move || { - if let Err(err) = jellyremuxer::write_snippet_into( - b, - &CONF.media_path, - &node.public, - &local_track, - track, - spec.webm.unwrap_or(false), - n, - ) { - warn!("segment stream error: {err}"); - } - }); - } - - Ok(()) -} -- cgit v1.2.3-70-g09d2