if mktag!(tag) == mktag!(b"JUNK") {
self.movi_size -= size + 8;
self.src.read_skip(size)?;
+ if self.movi_size == 0 { return Err(EOF); }
+ continue;
+ }
+ if mktag!(tag) == mktag!(b"LIST") {
+ self.movi_size -= 12;
+ self.src.read_skip(4)?;
+ if self.movi_size == 0 { return Err(EOF); }
continue;
}
if tag[0] < b'0' || tag[0] > b'9' || tag[1] < b'0' || tag[1] > b'9' {
let str = self.dmx.get_stream(stream_no as usize);
if let None = str { return Err(InvalidData); }
let stream = str.unwrap();
+ if size == 0 {
+ self.movi_size -= 8;
+ if self.movi_size == 0 { return Err(EOF); }
+ continue;
+ }
let (tb_num, tb_den) = stream.get_timebase();
let ts = NATimeInfo::new(Some(self.cur_frame[stream_no as usize]), None, None, tb_num, tb_den);
let pkt = self.src.read_packet(stream, ts, false, size)?;