]> git.nihav.org Git - nihav.git/blobdiff - nihav-commonfmt/src/demuxers/avi.rs
clearvideo: align dimensions to 32 for RealVideo variant
[nihav.git] / nihav-commonfmt / src / demuxers / avi.rs
index bc3923444c6e96bffff3afd5a1cacf4ca49447b0..1e7a10fe57f495a314efe107b3f7e74a9da64ae8 100644 (file)
@@ -167,9 +167,13 @@ impl<'a> DemuxCore<'a> for AVIDemuxer<'a> {
                 }
                 continue;
             }
-            let str = strmgr.get_stream(stream_no as usize);
-            if str.is_none() { return Err(InvalidData); }
-            let stream = str.unwrap();
+            let stream = strmgr.get_stream(stream_no as usize);
+            if stream.is_none() {
+                self.src.read_skip(size)?;
+                self.movi_size -= size + 8;
+                continue;
+            }
+            let stream = stream.unwrap();
             if size == 0 {
                 self.movi_size -= 8;
                 if self.movi_size == 0 {
@@ -180,8 +184,8 @@ impl<'a> DemuxCore<'a> for AVIDemuxer<'a> {
                 }
                 continue;
             }
-            let (tb_num, tb_den) = stream.get_timebase();
-            let mut ts = NATimeInfo::new(Some(self.cur_frame[stream_no as usize]), None, None, tb_num, tb_den);
+            let (tb_num, _) = stream.get_timebase();
+            let mut ts = stream.make_ts(Some(self.cur_frame[stream_no as usize]), None, None);
             if stream.get_media_type() == StreamType::Audio && tb_num == 1 && stream.get_info().get_name() == "pcm" {
                 ts.pts = None;
             }