From: Kostya Shishkov Date: Wed, 11 Feb 2026 17:39:11 +0000 (+0100) Subject: avi: allow smaller strh chunk (as seen in really old AVI files) X-Git-Url: https://git.nihav.org/?a=commitdiff_plain;h=9d76354f04a534fac53a83880b4ed67b8ca39448;p=nihav.git avi: allow smaller strh chunk (as seen in really old AVI files) --- diff --git a/nihav-commonfmt/src/demuxers/avi.rs b/nihav-commonfmt/src/demuxers/avi.rs index 71d2104..44d68f8 100644 --- a/nihav-commonfmt/src/demuxers/avi.rs +++ b/nihav-commonfmt/src/demuxers/avi.rs @@ -61,7 +61,7 @@ struct AVIStream { impl AVIStream { fn parse_strh(&mut self, src: &mut dyn ByteIO, _strmgr: &mut StreamManager, _seek_index: &mut SeekIndex, size: usize) -> DemuxerResult<()> { - if size < 0x38 { return Err(InvalidData); } + if size < 0x30 { return Err(InvalidData); } validate!(!self.got_strf); let tag = src.read_tag()?; //stream type self.handler = src.read_tag()?; //handler(fourcc) @@ -76,12 +76,12 @@ impl AVIStream { src.read_skip(4)?; //buf size src.read_skip(4)?; //quality src.read_skip(4)?; //sample size - let _a = src.read_u16le()?; + /*let _a = src.read_u16le()?; let _b = src.read_u16le()?; let _c = src.read_u16le()?; - let _d = src.read_u16le()?; + let _d = src.read_u16le()?;*/ - src.read_skip(size - 0x38)?; + src.read_skip(size - 0x30)?; // padding streams should be ignored if &tag == b"pads" {