diff options
Diffstat (limited to 'remuxer/src')
-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![ |