diff options
author | metamuffin <metamuffin@disroot.org> | 2024-01-26 18:53:05 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2024-01-26 18:53:05 +0100 |
commit | 036390867efb2c08a70853b96309f09637e08a30 (patch) | |
tree | 330a9767ec74f21ed76655379fe18bc150355e4c /remuxer/src/snippet.rs | |
parent | ce5c70a118ce41e2944546a6e39cb4b8e93e1390 (diff) | |
download | jellything-036390867efb2c08a70853b96309f09637e08a30.tar jellything-036390867efb2c08a70853b96309f09637e08a30.tar.bz2 jellything-036390867efb2c08a70853b96309f09637e08a30.tar.zst |
maybe fix snippet dur
Diffstat (limited to 'remuxer/src/snippet.rs')
-rw-r--r-- | remuxer/src/snippet.rs | 9 |
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![ |