aboutsummaryrefslogtreecommitdiff
path: root/remuxer/src/import
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-08-04 10:16:02 +0200
committermetamuffin <metamuffin@disroot.org>2023-08-04 10:16:02 +0200
commit016b8fec6ed9908e11e72ec7b9930e5908d58a02 (patch)
tree8b2281a930e4ee1b94282b5b8ef77215e912b38c /remuxer/src/import
parent072d8308d7987e386a1bca9299e42859e2b41ad6 (diff)
downloadjellything-016b8fec6ed9908e11e72ec7b9930e5908d58a02.tar
jellything-016b8fec6ed9908e11e72ec7b9930e5908d58a02.tar.bz2
jellything-016b8fec6ed9908e11e72ec7b9930e5908d58a02.tar.zst
move seek index write code
Diffstat (limited to 'remuxer/src/import')
-rw-r--r--remuxer/src/import/seek_index.rs19
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();