aboutsummaryrefslogtreecommitdiff
path: root/remuxer/src
diff options
context:
space:
mode:
Diffstat (limited to 'remuxer/src')
-rw-r--r--remuxer/src/matroska_to_webm.rs5
-rw-r--r--remuxer/src/seek_index.rs7
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() {