aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-10-27 15:35:24 +0200
committermetamuffin <metamuffin@disroot.org>2023-10-27 15:35:24 +0200
commita1c3e743a79a95cdb30dda79820e1c0a01084d12 (patch)
tree39eeea356d82991ed9978565c951b1e90a758d8d
parentaf39f390c335327297bcd83c303522d750c2bf62 (diff)
downloadjellything-a1c3e743a79a95cdb30dda79820e1c0a01084d12.tar
jellything-a1c3e743a79a95cdb30dda79820e1c0a01084d12.tar.bz2
jellything-a1c3e743a79a95cdb30dda79820e1c0a01084d12.tar.zst
fix overflow with stupid hack
-rw-r--r--remuxer/src/snippet.rs10
1 files changed, 6 insertions, 4 deletions
diff --git a/remuxer/src/snippet.rs b/remuxer/src/snippet.rs
index 26cb608..dcc3b15 100644
--- a/remuxer/src/snippet.rs
+++ b/remuxer/src/snippet.rs
@@ -120,7 +120,7 @@ pub fn write_snippet_into(
let mut reader = SegmentExtractIter::new(&mut reader, private.track as u64);
- let mut blocks = vec![MatroskaTag::Timestamp(0)];
+ // TODO: start using clusters again
for i in start_block_index..end_block_index {
let index_block = &index.blocks[i];
let mut block = reader.next()?;
@@ -128,10 +128,12 @@ pub fn write_snippet_into(
assert_eq!(index_block.size, block.data.len(), "seek index is wrong");
block.track = 1;
- block.timestamp_off = (index_block.pts - start_block.pts).try_into().unwrap();
- blocks.push(MatroskaTag::SimpleBlock(block.dump()))
+ block.timestamp_off = 0;
+ output.write_tag(&MatroskaTag::Cluster(Master::Collected(vec![
+ MatroskaTag::Timestamp(index_block.pts - start_block.pts),
+ MatroskaTag::SimpleBlock(block.dump()),
+ ])))?;
}
- output.write_tag(&MatroskaTag::Cluster(Master::Collected(blocks)))?;
output.write_tag(&MatroskaTag::Segment(Master::End))?;
Ok(())