switch demuxers to use NAStream::make_ts()
[nihav.git] / nihav-commonfmt / src / demuxers / y4m.rs
index 093d4441e79bf151e854c143fc509ad73520a6cb..9340421743c5fac3e39d3499d11b065f2a571fb9 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)
@@ -91,7 +90,7 @@ impl<'a> Y4MDemuxer<'a> {
         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() {
@@ -194,6 +193,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);