diff options
Diffstat (limited to 'remuxer/src')
-rw-r--r-- | remuxer/src/segment_extractor.rs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/remuxer/src/segment_extractor.rs b/remuxer/src/segment_extractor.rs index d176b3a..89d5784 100644 --- a/remuxer/src/segment_extractor.rs +++ b/remuxer/src/segment_extractor.rs @@ -31,9 +31,13 @@ impl<'a> SegmentExtractIter<'a> { MatroskaTag::Timestamp(_) => (), MatroskaTag::BlockGroup(Master::Start) => group = true, MatroskaTag::BlockGroup(Master::End) => { - assert!(group, "group end without start"); - let block = saved_block.expect("blockgroup without any block"); - return Ok((block, duration)); + if !group { + bail!("group end without start"); + } + if let Some(block) = saved_block { + return Ok((block, duration)); + } + group = false; } MatroskaTag::BlockDuration(d) => duration = Some(d), MatroskaTag::SimpleBlock(buf) | MatroskaTag::Block(buf) => { |