}
continue;
}
- let str = strmgr.get_stream(stream_no as usize);
- if str.is_none() {
+ let stream = strmgr.get_stream(stream_no as usize);
+ if stream.is_none() {
self.src.read_skip(size)?;
self.movi_size -= size + 8;
continue;
}
- let stream = str.unwrap();
+ let stream = stream.unwrap();
if size == 0 {
self.movi_size -= 8;
if self.movi_size == 0 {
}
if seek_info.pos < self.movi_pos { return Err(DemuxerError::SeekError); }
let skip_size = (seek_info.pos - self.movi_pos) as usize;
- if skip_size > self.movi_size { return Err(DemuxerError::SeekError); }
+ if skip_size > self.movi_orig { return Err(DemuxerError::SeekError); }
self.movi_size = self.movi_orig - skip_size;
self.cur_frame[seek_info.str_id as usize] = seek_info.pts;
if pe.stream_no == stream_no {
let start_clr = self.src.read_byte()? as usize;
let len = self.src.read_byte()? as usize;
+ let len = if len == 0 { 256 } else { len };
let _flags = self.src.read_u16le()?;
validate!(start_clr + len <= 256);
validate!(len * 4 + 4 == size);
let stream_no = ((tag[0] - b'0') * 10 + (tag[1] - b'0')) as usize;
if (flags & 0x10) != 0 {
- if let Some(str) = strmgr.get_stream(stream_no) {
- if str.get_media_type() == StreamType::Video {
- let (tb_num, tb_den) = str.get_timebase();
+ if let Some(stream) = strmgr.get_stream(stream_no) {
+ if stream.get_media_type() == StreamType::Video {
+ let (tb_num, tb_den) = stream.get_timebase();
let pts = counter[stream_no];
let time = NATimeInfo::ts_to_time(pts, 1000, tb_num, tb_den);
validate!(offset >= movi_pos);