};
validate!(&marker == b"FRAME\n");
let stream = strmgr.get_stream(0).unwrap();
- let (tb_num, tb_den) = stream.get_timebase();
- let ts = NATimeInfo::new(Some(self.frameno), None, None, tb_num, tb_den);
+ let ts = stream.make_ts(Some(self.frameno), None, None);
let pkt = self.src.read_packet(stream, ts, true, self.frame_size)?;
self.frameno += 1;
Ok(pkt)
}
}
fn parse_header(&mut self) -> DemuxerResult<NAPixelFormaton> {
- let mut format = RGB24_FORMAT;
+ let mut format = YUV420_FORMAT;
let mut magic = [0u8; 10];
self.src.read_buf(&mut magic)?;
validate!(&magic == b"YUV4MPEG2 ");
- while let Ok((last, tok)) = read_token(&mut self.src) {
+ while let Ok((last, tok)) = read_token(self.src) {
let (id, val) = tok.split_at(1);
validate!(id.len() == 1);
match id.bytes().next().unwrap() {
break;
}
}
- validate!(self.width > 0 && self.height > 0 && format.model.is_yuv());
+ validate!(self.width > 0 && self.height > 0);
self.frame_size = 0;
- for chromaton in format.comp_info.iter() {
- if let Some(ref chr) = chromaton {
- self.frame_size += chr.get_data_size(self.width, self.height);
- }
+ for chr in format.comp_info.iter().flatten() {
+ self.frame_size += chr.get_data_size(self.width, self.height);
}
validate!(self.frame_size > 0);