self.src.seek(SeekFrom::Start(end))?;
}
validate!(ts.is_some());
+ if clu_off > 0 {
self.src.seek(SeekFrom::Start(clu_start + clu_off))?;
+ }
self.cur_seg = seg_no;
self.seg_end = Some(tgt_seg.end);
self.clu_end = Some(clu_end);
match id {
0xF7 => {
if tid.is_some() {
- validate!(pos.is_some() && rpos.is_some());
- self.tracks.push((tid.unwrap(), pos.unwrap(), rpos.unwrap()));
+ validate!(pos.is_some());
+ self.tracks.push((tid.unwrap(), pos.unwrap(), rpos.unwrap_or(0)));
}
let ttid = br.read_uint(size)?;
validate!((1..=U32_MAX).contains(&ttid));
validate!(br.tell() <= cur_end);
br.seek(SeekFrom::Start(cur_end))?;
}
- if tid.is_some() && pos.is_some() && rpos.is_some() {
- self.tracks.push((tid.unwrap(), pos.unwrap(), rpos.unwrap()));
+ if tid.is_some() && pos.is_some() {
+ self.tracks.push((tid.unwrap(), pos.unwrap(), rpos.unwrap_or(0)));
}
Ok(())
}