fix clippy warnings
[nihav.git] / nihav-commonfmt / src / demuxers / y4m.rs
index 093d4441e79bf151e854c143fc509ad73520a6cb..3571ea97aeb4944d47c4f5b58b1cb657906082d9 100644 (file)
@@ -20,7 +20,7 @@ impl<'a> DemuxCore<'a> for Y4MDemuxer<'a> {
         let vhdr = NAVideoInfo::new(self.width, self.height, false, format);
         let vci = NACodecTypeInfo::Video(vhdr);
         let vinfo = NACodecInfo::new("rawvideo", vci, None);
-        if let None = strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, self.fps_num, self.fps_den, 0)) {
+        if strmgr.add_stream(NAStream::new(StreamType::Video, 0, vinfo, self.fps_num, self.fps_den, 0)).is_none() {
             return Err(DemuxerError::MemoryError);
         }
 
@@ -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,12 +85,12 @@ impl<'a> Y4MDemuxer<'a> {
         }
     }
     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() {
@@ -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);
 
@@ -194,6 +191,7 @@ mod test {
 
     #[test]
     fn test_y4m_demux() {
+        // sample: self-created with avconv
         let mut file = File::open("assets/Misc/test.y4m").unwrap();
         let mut fr = FileReader::new_read(&mut file);
         let mut br = ByteReader::new(&mut fr);