aboutsummaryrefslogtreecommitdiff
path: root/remuxer
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-01-26 18:53:05 +0100
committermetamuffin <metamuffin@disroot.org>2024-01-26 18:53:05 +0100
commit036390867efb2c08a70853b96309f09637e08a30 (patch)
tree330a9767ec74f21ed76655379fe18bc150355e4c /remuxer
parentce5c70a118ce41e2944546a6e39cb4b8e93e1390 (diff)
downloadjellything-036390867efb2c08a70853b96309f09637e08a30.tar
jellything-036390867efb2c08a70853b96309f09637e08a30.tar.bz2
jellything-036390867efb2c08a70853b96309f09637e08a30.tar.zst
maybe fix snippet dur
Diffstat (limited to 'remuxer')
-rw-r--r--remuxer/src/snippet.rs9
1 files changed, 7 insertions, 2 deletions
diff --git a/remuxer/src/snippet.rs b/remuxer/src/snippet.rs
index 1429df1..54bc78d 100644
--- a/remuxer/src/snippet.rs
+++ b/remuxer/src/snippet.rs
@@ -137,9 +137,14 @@ pub fn write_snippet_into(
.unwrap_or(&index.blocks.len()),
)
};
+ debug!("writing blocks {start_block_index} to {end_block_index}.");
let start_block = &index.blocks[start_block_index];
- let last_block = &index.blocks[end_block_index - 1];
+ let last_block_pts = index
+ .blocks
+ .get(end_block_index)
+ .map(|b| b.pts)
+ .unwrap_or((media_info.duration * 1000.) as u64);
reader.seek(start_block.source_off, MatroskaTag::Cluster(Master::Start))?;
@@ -150,7 +155,7 @@ pub fn write_snippet_into(
"{} (track {track}; snippet {n})",
item.title.clone().unwrap_or_default()
),
- (last_block.pts - start_block.pts) as f64 / 1000.,
+ (last_block_pts - start_block.pts) as f64 / 1000.,
))?;
output.write_tag(&MatroskaTag::Tags(Master::Collected(vec![])))?;
output.write_tag(&MatroskaTag::Tracks(Master::Collected(vec![