From 705fba50de94a7efdb9fe635ee683d6a615348f8 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Mon, 31 Jul 2023 21:38:24 +0200 Subject: working as good as before (maybe) --- remuxer/src/import/mod.rs | 18 ++++-------------- remuxer/src/lib.rs | 6 +++++- 2 files changed, 9 insertions(+), 15 deletions(-) (limited to 'remuxer') diff --git a/remuxer/src/import/mod.rs b/remuxer/src/import/mod.rs index 8df9f42..78c752e 100644 --- a/remuxer/src/import/mod.rs +++ b/remuxer/src/import/mod.rs @@ -12,15 +12,15 @@ use jellymatroska::{ unflatten::{IterWithPos, Unflat, Unflatten}, }; use log::{debug, error, info, trace, warn}; -use std::{collections::HashMap, path::PathBuf}; +use std::{collections::BTreeMap, path::PathBuf}; pub fn import_read( path: &PathBuf, input: &mut EbmlReader, -) -> Result<(Vec, Vec, Vec)> { +) -> Result<(Vec, Vec, BTreeMap)> { let mut iteminfo = Vec::new(); let mut private = Vec::new(); - let mut seek_index = Vec::new(); + let mut seek_index = BTreeMap::new(); while let Some(item) = input.next() { let item = match item { Ok(item) => item, @@ -70,10 +70,9 @@ fn import_read_segment( segment: &mut Unflatten, iteminfo: &mut Vec, private: &mut Vec, - seek_index_out: &mut Vec, + seek_index: &mut BTreeMap, ) -> Result> { let (mut timestamp_scale, mut duration) = (None, None); - let mut seek_index = HashMap::new(); while let Some(Ok(Unflat { children, item, .. })) = segment.n() { match item { @@ -257,15 +256,6 @@ fn import_read_segment( }; } - for i in 0..iteminfo.len() { - seek_index_out.push( - seek_index - .get(&(i as u64)) - .map(|e| e.to_owned()) - .unwrap_or_else(|| SeekIndex { blocks: vec![] }), - ) - } - Ok(if let Some(duration) = duration { Some((duration * timestamp_scale.unwrap_or(1_000_000) as f64) / 1_000_000_000_f64) } else { diff --git a/remuxer/src/lib.rs b/remuxer/src/lib.rs index 4a73edf..382f850 100644 --- a/remuxer/src/lib.rs +++ b/remuxer/src/lib.rs @@ -9,7 +9,7 @@ pub mod trim_writer; use crate::{segment_extractor::SegmentExtractIter, trim_writer::TrimWriter}; use anyhow::{anyhow, Context}; -use jellycommon::{BlockIndex, NodePublic, LocalTrack, SeekIndex, SourceTrack, SourceTrackKind}; +use jellycommon::{BlockIndex, LocalTrack, NodePublic, SeekIndex, SourceTrack, SourceTrackKind}; use jellymatroska::{ block::Block, read::EbmlReader, @@ -78,6 +78,10 @@ impl RemuxerContext { info!("\t- {sel} {source_path:?} ({} => {mapped})", private.track); info!("\t {}", info); let file = File::open(&source_path).context("opening source file")?; + eprintln!( + "{:?}", + source_path.with_extension(format!("si.{}", private.track)) + ); let mut index = File::open(source_path.with_extension(format!("si.{}", private.track))) .context("opening seek index file")?; -- cgit v1.2.3-70-g09d2