From 24c775505efeb016ae0746f2b4c0c9ce3097f23c Mon Sep 17 00:00:00 2001 From: Kostya Shishkov Date: Mon, 20 Apr 2026 20:04:38 +0200 Subject: [PATCH] cinepak: skip unknown empty strip that happens in very old files --- nihav-commonfmt/src/codecs/cinepak.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/nihav-commonfmt/src/codecs/cinepak.rs b/nihav-commonfmt/src/codecs/cinepak.rs index 3c52182..ec6305e 100644 --- a/nihav-commonfmt/src/codecs/cinepak.rs +++ b/nihav-commonfmt/src/codecs/cinepak.rs @@ -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(_, _) => { -- 2.39.5