diff options
Diffstat (limited to 'remuxer/src')
-rw-r--r-- | remuxer/src/matroska_to_webm.rs | 5 | ||||
-rw-r--r-- | remuxer/src/seek_index.rs | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/remuxer/src/matroska_to_webm.rs b/remuxer/src/matroska_to_webm.rs index b9a1819..b77062b 100644 --- a/remuxer/src/matroska_to_webm.rs +++ b/remuxer/src/matroska_to_webm.rs @@ -1,3 +1,8 @@ +/* + This file is part of jellything (https://codeberg.org/metamuffin/jellything) + which is licensed under the GNU Affero General Public License (version 3); see /COPYING. + Copyright (C) 2025 metamuffin <metamuffin.org> +*/ use crate::ebml_track_entry; use anyhow::Context; use ebml_struct::{ diff --git a/remuxer/src/seek_index.rs b/remuxer/src/seek_index.rs index 7296d93..82f62fb 100644 --- a/remuxer/src/seek_index.rs +++ b/remuxer/src/seek_index.rs @@ -53,6 +53,13 @@ pub fn get_seek_index(path: &Path) -> anyhow::Result<Arc<BTreeMap<u64, Arc<SeekI }) } +pub fn get_track_sizes(path: &Path) -> Result<BTreeMap<u64, usize>> { + Ok(get_seek_index(path)? + .iter() + .map(|(k, v)| (*k, v.blocks.iter().map(|b| b.size).sum::<usize>())) + .collect()) +} + pub fn import_seek_index(input: &mut EbmlReader) -> Result<BTreeMap<u64, SeekIndex>> { let mut seek_index = BTreeMap::new(); while let Some(item) = input.next() { |