]> git.nihav.org Git - nihav.git/commitdiff
duck_ivf: support files with zero declared frames
authorKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 22 Aug 2026 17:01:58 +0000 (19:01 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Sat, 22 Aug 2026 17:01:58 +0000 (19:01 +0200)
nihav-duck/src/demuxers/ivf.rs

index 8ed287a9c6f22a60eae51bef81e0009d3242153c..61dbcbe690c010709f77c1b866666001b2c6a65a 100644 (file)
@@ -49,8 +49,9 @@ impl<'a> DemuxCore<'a> for IVFDemuxer<'a> {
     }
 
     fn get_frame(&mut self, strmgr: &mut StreamManager) -> DemuxerResult<NAPacket> {
-        while self.frameno < self.nframes {
-            let fsize                   = self.src.read_u32le()? as usize;
+        while self.nframes == 0 || self.frameno < self.nframes {
+            let fsize                   = self.src.read_u32le()
+                    .map_err(|err| if self.nframes == 0 { DemuxerError::EOF } else { DemuxerError::from(err) })? as usize;
             let tstamp                  = self.src.read_u64le()?;
             self.frameno += 1;