diff options
author | metamuffin <metamuffin@disroot.org> | 2023-10-02 00:52:49 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2023-10-02 00:52:49 +0200 |
commit | 758187da68fda9ebebfab8bf93e5bbe00bbdc506 (patch) | |
tree | 94c988f43124dc0889b4a7aed0df4ab2440d9e04 | |
parent | fdaa18968c5b3d923c93527efaeeb81cbd9b4d88 (diff) | |
download | jellything-758187da68fda9ebebfab8bf93e5bbe00bbdc506.tar jellything-758187da68fda9ebebfab8bf93e5bbe00bbdc506.tar.bz2 jellything-758187da68fda9ebebfab8bf93e5bbe00bbdc506.tar.zst |
apply caching to hlsseg aswell
-rw-r--r-- | remuxer/src/remux.rs | 1 | ||||
-rw-r--r-- | remuxer/src/snippet.rs | 11 |
2 files changed, 7 insertions, 5 deletions
diff --git a/remuxer/src/remux.rs b/remuxer/src/remux.rs index 31e4a3a..a95aa5c 100644 --- a/remuxer/src/remux.rs +++ b/remuxer/src/remux.rs @@ -246,6 +246,7 @@ pub fn remux_stream_into( assert_eq!(first_cluster_offset, first_cluster_offset_predict); let mut skip = 0; + // TODO binary search for (i, cluster) in segment_layout.iter().enumerate() { if (cluster.position + segment_offset) >= range.start { break; diff --git a/remuxer/src/snippet.rs b/remuxer/src/snippet.rs index cc5ec9d..5f25400 100644 --- a/remuxer/src/snippet.rs +++ b/remuxer/src/snippet.rs @@ -9,7 +9,7 @@ use crate::{ segment_extractor::SegmentExtractIter, }; use anyhow::{anyhow, Context, Result}; -use jellycommon::{seek_index::SeekIndex, LocalTrack, NodePublic}; +use jellycommon::{LocalTrack, NodePublic}; use jellymatroska::{read::EbmlReader, write::EbmlWriter, Master, MatroskaTag}; use log::{debug, info}; use std::{fs::File, io::Write, ops::Range, path::Path}; @@ -75,10 +75,11 @@ pub fn write_snippet_into( ); info!("\t {}", info); let file = File::open(&source_path).context("opening source file")?; - let mut index = File::open(source_path.with_extension(format!("si.{}", private.track))) - .context("opening seek index file")?; - let index = - bincode::decode_from_std_read::<SeekIndex, _, _>(&mut index, bincode::config::standard())?; + let index = get_seek_index(&source_path)?; + let index = index + .get(&(private.track as u64)) + .ok_or(anyhow!("track missing"))? + .to_owned(); debug!("\t seek index: {} blocks loaded", index.blocks.len()); let mut reader = EbmlReader::new(file); |