diff options
Diffstat (limited to 'stream')
| -rw-r--r-- | stream/src/dash.rs | 6 | ||||
| -rw-r--r-- | stream/src/fragment.rs | 11 | ||||
| -rw-r--r-- | stream/src/fragment_index.rs | 2 | ||||
| -rw-r--r-- | stream/src/hls.rs | 19 | ||||
| -rw-r--r-- | stream/src/lib.rs | 2 | ||||
| -rw-r--r-- | stream/src/stream_info.rs | 2 | ||||
| -rw-r--r-- | stream/types/src/path.rs | 8 |
7 files changed, 24 insertions, 26 deletions
diff --git a/stream/src/dash.rs b/stream/src/dash.rs index 9e66a0f..f9fb128 100644 --- a/stream/src/dash.rs +++ b/stream/src/dash.rs @@ -14,7 +14,7 @@ use std::{ }; pub fn dash(sinfo: &SMediaInfo) -> Result<Box<dyn Read + Send + Sync>> { - let (_iinfo, info) = stream_info(&sinfo)?; + let (_iinfo, info) = stream_info(sinfo)?; let mut out = String::new(); @@ -37,7 +37,7 @@ pub fn dash(sinfo: &SMediaInfo) -> Result<Box<dyn Read + Send + Sync>> { writeln!(out, "<ServiceDescription id=\"0\"></ServiceDescription>")?; writeln!(out, r#"<Period id="0" start="PT0.0S">"#)?; for (as_id, track) in info.tracks.iter().enumerate() { - let frags = fragment_index(&sinfo, as_id)?; + let frags = fragment_index(sinfo, as_id)?; match track.kind { TrackKind::Video => { let max_width = track @@ -170,7 +170,7 @@ fn write_segment_template( container.file_ext(TrackKind::Video), container.file_ext(TrackKind::Video) )?; - writeln!(out, "{}", Timeline(&frags))?; + writeln!(out, "{}", Timeline(frags))?; writeln!(out, "</SegmentTemplate>")?; Ok(()) } diff --git a/stream/src/fragment.rs b/stream/src/fragment.rs index 0ccf37d..1774e0a 100644 --- a/stream/src/fragment.rs +++ b/stream/src/fragment.rs @@ -28,7 +28,7 @@ pub fn fragment_init( track_num: TrackNum, format_num: FormatNum, ) -> Result<Segment> { - let (iinfo, info) = stream_info(&sinfo)?; + let (iinfo, info) = stream_info(sinfo)?; let (file_index, file_track_num) = *iinfo .track_to_file @@ -101,7 +101,7 @@ pub fn fragment_remux( index: IndexNum, next_kf: bool, ) -> Result<Segment> { - let cue_stat = generate_cues(&sinfo.cache, &media_path)?; + let cue_stat = generate_cues(&sinfo.cache, media_path)?; let start_cue = cue_stat .cues .get(index) @@ -109,7 +109,7 @@ pub fn fragment_remux( let cluster_offset = start_cue.position; let (mut cluster, next_cluster) = { - let media_file = File::open(&media_path)?; + let media_file = File::open(media_path)?; let mut media = create_demuxer_autodetect(Box::new(media_file))? .ok_or(anyhow!("media container unknown"))?; media.seek_cluster(Some(cluster_offset))?; @@ -141,6 +141,7 @@ pub fn fragment_remux( }) } +#[allow(clippy::too_many_arguments)] pub fn fragment_transcode_full( sinfo: &SMediaInfo, track: &StreamTrackInfo, @@ -168,8 +169,8 @@ pub fn fragment_transcode_full( index, end_pts, || { - let init = fragment_init(&sinfo, track_num, input_format_num)?; - let seg = fragment_remux(&sinfo, &media_path, file_track_num, index, true)?; + let init = fragment_init(sinfo, track_num, input_format_num)?; + let seg = fragment_remux(sinfo, media_path, file_track_num, index, true)?; Ok(Segment { tracks: init.tracks, info: init.info, diff --git a/stream/src/fragment_index.rs b/stream/src/fragment_index.rs index e2adf41..7b8ce01 100644 --- a/stream/src/fragment_index.rs +++ b/stream/src/fragment_index.rs @@ -13,7 +13,7 @@ use std::{ }; pub fn fragment_index(sinfo: &SMediaInfo, track: TrackNum) -> Result<Vec<Range<f64>>> { - let (iinfo, info) = stream_info(&sinfo)?; + let (iinfo, info) = stream_info(sinfo)?; let (file_index, _) = *iinfo .track_to_file .get(track) diff --git a/stream/src/hls.rs b/stream/src/hls.rs index 759b196..cbaf69e 100644 --- a/stream/src/hls.rs +++ b/stream/src/hls.rs @@ -14,7 +14,7 @@ use std::{ }; pub fn hls_multivariant_stream(info: &SMediaInfo) -> Result<Box<dyn Read + Send + Sync>> { - let (_iinfo, info) = stream_info(&info)?; + let (_iinfo, info) = stream_info(info)?; let mut out = String::new(); writeln!(out, "#EXTM3U")?; @@ -22,14 +22,11 @@ pub fn hls_multivariant_stream(info: &SMediaInfo) -> Result<Box<dyn Read + Send // writeln!(out, "#EXT-X-INDEPENDENT-SEGMENTS")?; for (i, t) in info.tracks.iter().enumerate() { for (j, f) in t.formats.iter().enumerate() { - let uri = format!( - "{}", - StreamSpec::HlsVariant { - track: i, - format: j - } - .to_path() - ); + let uri = StreamSpec::HlsVariant { + track: i, + format: j, + } + .to_path(); let r#type = match t.kind { TrackKind::Video => "VIDEO", TrackKind::Audio => "AUDIO", @@ -52,8 +49,8 @@ pub fn hls_variant_stream( track: TrackNum, _format: FormatNum, ) -> Result<Box<dyn Read + Send + Sync>> { - let frags = fragment_index(&info, track)?; - let (_, info) = stream_info(&info)?; + let frags = fragment_index(info, track)?; + let (_, info) = stream_info(info)?; let mut out = String::new(); writeln!(out, "#EXTM3U")?; diff --git a/stream/src/lib.rs b/stream/src/lib.rs index 6dbc646..8827aeb 100644 --- a/stream/src/lib.rs +++ b/stream/src/lib.rs @@ -60,7 +60,7 @@ pub fn stream_head(spec: &StreamSpec) -> StreamHead { let range_supported = matches!(spec, Remux { .. } | Original { .. }); let content_type = match spec { Original { .. } => "video/x-matroska", - HlsMultiVariant { .. } => "application/vnd.apple.mpegurl", + HlsMultiVariant => "application/vnd.apple.mpegurl", HlsVariant { .. } => "application/vnd.apple.mpegurl", Info => "application/jellything-stream-info+json", Dash => "application/dash+xml", diff --git a/stream/src/stream_info.rs b/stream/src/stream_info.rs index c1f09ce..0d4350f 100644 --- a/stream/src/stream_info.rs +++ b/stream/src/stream_info.rs @@ -191,7 +191,7 @@ fn containers_by_codec(codec: &str) -> Vec<StreamContainer> { } pub(crate) fn write_stream_info(info: &SMediaInfo) -> Result<Box<dyn Read + Send + Sync>> { - let (_, info) = stream_info(&info)?; + let (_, info) = stream_info(info)?; Ok(Box::new(Cursor::new(serde_json::to_vec(&info)?))) } diff --git a/stream/types/src/path.rs b/stream/types/src/path.rs index 4a91457..226d6e8 100644 --- a/stream/types/src/path.rs +++ b/stream/types/src/path.rs @@ -9,9 +9,9 @@ use crate::{FormatNum, IndexNum, StreamContainer, StreamSpec, TrackKind, TrackNu impl StreamSpec { pub fn to_path(&self) -> String { match self { - StreamSpec::HlsMultiVariant => format!("stream.m3u8"), - StreamSpec::Dash => format!("stream.mpd"), - StreamSpec::Info => format!("formats.json"), + StreamSpec::HlsMultiVariant => "stream.m3u8".to_string(), + StreamSpec::Dash => "stream.mpd".to_string(), + StreamSpec::Info => "formats.json".to_string(), StreamSpec::HlsVariant { track, format } => format!("{track}/{format}/variant.m3u8"), StreamSpec::FragmentIndex { track } => format!("{track}/fragindex.json"), StreamSpec::FragmentInit { @@ -35,7 +35,7 @@ impl StreamSpec { } } pub fn from_path(segments: &[&str]) -> Result<Self, &'static str> { - let mut segs = segments.into_iter(); + let mut segs = segments.iter(); match *segs.next().ok_or("no path")? { "stream.mpd" => Ok(Self::Dash), "stream.m3u8" => Ok(Self::HlsMultiVariant), |