diff options
author | metamuffin <metamuffin@disroot.org> | 2023-08-03 17:56:19 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-08-03 17:56:19 +0200 |
commit | 8519f8593567f7363949dd6a7bf1601b08932338 (patch) | |
tree | 4e3aa5580fc80a3ce08b71aa127a563dcd34d7ff /remuxer | |
parent | f4dd27f910213e2786d776621b738f1d2c32a7c7 (diff) | |
download | jellything-8519f8593567f7363949dd6a7bf1601b08932338.tar jellything-8519f8593567f7363949dd6a7bf1601b08932338.tar.bz2 jellything-8519f8593567f7363949dd6a7bf1601b08932338.tar.zst |
set duration (doesnt work)
Diffstat (limited to 'remuxer')
-rw-r--r-- | remuxer/src/import/mod.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/remuxer/src/import/mod.rs b/remuxer/src/import/mod.rs index 78c752e..7b0b371 100644 --- a/remuxer/src/import/mod.rs +++ b/remuxer/src/import/mod.rs @@ -17,10 +17,16 @@ use std::{collections::BTreeMap, path::PathBuf}; pub fn import_read( path: &PathBuf, input: &mut EbmlReader, -) -> Result<(Vec<SourceTrack>, Vec<LocalTrack>, BTreeMap<u64, SeekIndex>)> { +) -> Result<( + Vec<SourceTrack>, + Vec<LocalTrack>, + BTreeMap<u64, SeekIndex>, + f64, +)> { let mut iteminfo = Vec::new(); let mut private = Vec::new(); let mut seek_index = BTreeMap::new(); + let mut dur = None; while let Some(item) = input.next() { let item = match item { Ok(item) => item, @@ -49,20 +55,20 @@ pub fn import_read( MatroskaTag::Segment(_) => { info!("segment start"); let mut children = Unflatten::new_with_end(input, item); - import_read_segment( + dur = dur.or(import_read_segment( path, &mut children, &mut iteminfo, &mut private, &mut seek_index, - )?; + )?); info!("segment end"); } _ => debug!("(r) tag ignored: {item:?}"), } } - Ok((iteminfo, private, seek_index)) + Ok((iteminfo, private, seek_index, dur.unwrap_or(0.))) } fn import_read_segment( |