diff options
Diffstat (limited to 'remuxer')
| -rw-r--r-- | remuxer/src/import/seek_index.rs | 19 | 
1 files changed, 18 insertions, 1 deletions
diff --git a/remuxer/src/import/seek_index.rs b/remuxer/src/import/seek_index.rs index 363a12f..0427287 100644 --- a/remuxer/src/import/seek_index.rs +++ b/remuxer/src/import/seek_index.rs @@ -7,7 +7,24 @@ use jellymatroska::{      MatroskaTag,  };  use log::{debug, info, trace, warn}; -use std::collections::BTreeMap; +use std::{collections::BTreeMap, fs::File, path::Path}; + +pub fn write_all(path: &Path) -> Result<()> { +    let seek_index = { +        let input = File::open(&path).unwrap(); +        let mut input = EbmlReader::new(input); +        import_seek_index(&mut input)? +    }; +    for (tn, index) in seek_index { +        info!("writing index {tn} with {} blocks", index.blocks.len()); +        bincode::encode_into_std_write( +            index, +            &mut File::create(path.with_extension(&format!("si.{tn}")))?, +            bincode::config::standard(), +        )?; +    } +    Ok(()) +}  pub fn import_seek_index(input: &mut EbmlReader) -> Result<BTreeMap<u64, SeekIndex>> {      let mut seek_index = BTreeMap::new();  |