]> git.nihav.org Git - nihav.git/commitdiff
avimuxer: pad odd-sized chunks
authorKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 19 May 2026 04:28:09 +0000 (06:28 +0200)
committerKostya Shishkov <kostya.shishkov@gmail.com>
Tue, 19 May 2026 04:28:09 +0000 (06:28 +0200)
nihav-commonfmt/src/muxers/avi.rs

index c91f2b51be0ef0089ef854548b9de0f7b4b397fd..aec5baf3717e7e61ba55ca7b8351693cbd17f37d 100644 (file)
@@ -135,7 +135,10 @@ impl<'a> AVIMuxer<'a> {
 
 fn patch_size(bw: &mut dyn ByteIO, pos: u64) -> MuxerResult<()> {
     let size = bw.tell() - pos;
-    bw.seek(SeekFrom::Current(-((size + 4) as i64)))?;
+    if (bw.tell() & 1) != 0 {
+        bw.write_byte(0)?;
+    }
+    bw.seek(SeekFrom::Current(-((((size + 1) & !1) + 4) as i64)))?;
     bw.write_u32le(size as u32)?;
     bw.seek(SeekFrom::End(0))?;
     Ok(())