X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-commonfmt%2Fsrc%2Fdemuxers%2Fy4m.rs;h=3571ea97aeb4944d47c4f5b58b1cb657906082d9;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hp=05157ca86c491412657ff559e0554132a9929193;hpb=6f2630992fe340ad1a122ec10c649f756e478185;p=nihav.git diff --git a/nihav-commonfmt/src/demuxers/y4m.rs b/nihav-commonfmt/src/demuxers/y4m.rs index 05157ca..3571ea9 100644 --- a/nihav-commonfmt/src/demuxers/y4m.rs +++ b/nihav-commonfmt/src/demuxers/y4m.rs @@ -37,8 +37,7 @@ impl<'a> DemuxCore<'a> for Y4MDemuxer<'a> { }; 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) @@ -86,7 +85,7 @@ impl<'a> Y4MDemuxer<'a> { } } fn parse_header(&mut self) -> DemuxerResult { - let mut format = RGB24_FORMAT; + let mut format = YUV420_FORMAT; let mut magic = [0u8; 10]; self.src.read_buf(&mut magic)?; @@ -150,12 +149,10 @@ impl<'a> Y4MDemuxer<'a> { 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);