diff options
author | metamuffin <metamuffin@disroot.org> | 2023-08-04 10:16:02 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-08-04 10:16:02 +0200 |
commit | 016b8fec6ed9908e11e72ec7b9930e5908d58a02 (patch) | |
tree | 8b2281a930e4ee1b94282b5b8ef77215e912b38c /remuxer | |
parent | 072d8308d7987e386a1bca9299e42859e2b41ad6 (diff) | |
download | jellything-016b8fec6ed9908e11e72ec7b9930e5908d58a02.tar jellything-016b8fec6ed9908e11e72ec7b9930e5908d58a02.tar.bz2 jellything-016b8fec6ed9908e11e72ec7b9930e5908d58a02.tar.zst |
move seek index write code
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(); |