aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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(())