]> git.nihav.org Git - nihav.git/commitdiff
cinepak: skip unknown empty strip that happens in very old files master
authorKostya Shishkov <kostya.shishkov@gmail.com>
Mon, 20 Apr 2026 18:04:38 +0000 (20:04 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Mon, 20 Apr 2026 18:04:38 +0000 (20:04 +0200)
nihav-commonfmt/src/codecs/cinepak.rs

index 3c52182eafadaa75d00b581ea58b9ae87beedd72..ec6305e3f58e676801f08d0f39440755ee99a635 100644 (file)
@@ -257,6 +257,9 @@ impl NADecoder for CinepakDecoder {
         let is_intra = (flags & 1) == 0;
 
         let mut mode = DecodeMode::Unknown;
+        if br.peek_byte()? == 0xFF {
+                                          br.read_skip(8)?;
+        }
                                           br.read_skip(1)?;
         let mut stripsize               = br.read_u24be()?;
                                           br.read_skip(8)?;
@@ -281,6 +284,9 @@ impl NADecoder for CinepakDecoder {
         }
         validate!(mode != DecodeMode::Unknown);
         br.seek(SeekFrom::Start(10))?;
+        if br.peek_byte()? == 0xFF {
+                                          br.read_skip(8)?;
+        }
         for sd in pkt.side_data.iter() {
             match *sd {
                 NASideData::Palette(_, _) => {