diff options
Diffstat (limited to 'remuxer/src')
-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(); |