From b9d8e20b6bff6b51f73106b688bd6e5d98e08215 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 21 Apr 2025 20:36:34 +0200 Subject: new transcoding args system --- stream/src/fragment.rs | 9 +++++++++ stream/src/stream_info.rs | 14 +++++++------- 2 files changed, 16 insertions(+), 7 deletions(-) (limited to 'stream/src') diff --git a/stream/src/fragment.rs b/stream/src/fragment.rs index 0652df2..9e8c3bd 100644 --- a/stream/src/fragment.rs +++ b/stream/src/fragment.rs @@ -40,6 +40,14 @@ pub async fn fragment_stream( .formats .get(format_num) .ok_or(anyhow!("format not found"))?; + let orig_track = iinfo.metadata[file_index] + .tracks + .as_ref() + .unwrap() + .entries + .iter() + .find(|t| t.track_number == track_num) + .unwrap(); if format.remux { match container { @@ -81,6 +89,7 @@ pub async fn fragment_stream( } else { let location = transcode( track.kind, + orig_track, format, &format!("{path:?} {track_num} {index}"), move |b| { diff --git a/stream/src/stream_info.rs b/stream/src/stream_info.rs index 3a33b46..1005edc 100644 --- a/stream/src/stream_info.rs +++ b/stream/src/stream_info.rs @@ -34,7 +34,7 @@ async fn async_get_track_sizes(path: PathBuf) -> Result> { pub(crate) struct InternalStreamInfo { pub paths: Vec, - pub _metadata: Vec>, + pub metadata: Vec>, pub track_to_file: Vec<(usize, u64)>, } @@ -76,7 +76,7 @@ pub(crate) async fn stream_info(info: Arc) -> Result<(InternalStream }; Ok(( InternalStreamInfo { - _metadata: metadata_arr, + metadata: metadata_arr, paths, track_to_file, }, @@ -119,11 +119,11 @@ fn stream_formats(t: &TrackEntry, remux_bitrate: f64) -> Vec { // most codecs use chroma subsampling that requires even dims let h = ((w * sh) / sw) & !1; // clear last bit to ensure even height. for (cid, enable) in [ - ("V_AV1", CONF.encoders.av1.is_some()), - ("V_VP8", CONF.encoders.vp8.is_some()), - ("V_VP9", CONF.encoders.vp9.is_some()), - ("V_MPEG4/ISO/AVC", CONF.encoders.avc.is_some()), - ("V_MPEGH/ISO/HEVC", CONF.encoders.hevc.is_some()), + ("V_AV1", CONF.transcoder.offer_av1), + ("V_VP8", CONF.transcoder.offer_vp8), + ("V_VP9", CONF.transcoder.offer_vp9), + ("V_MPEG4/ISO/AVC", CONF.transcoder.offer_avc), + ("V_MPEGH/ISO/HEVC", CONF.transcoder.offer_hevc), ] { if enable { formats.push(StreamFormatInfo { -- cgit v1.2.3-70-g09d2