avimux: pad odd frame chunks
[nihav.git] / nihav-commonfmt / src / muxers / avi.rs
index 296b778937b78db0e27be25830e3b330fad8af2b..2f8e2290f6489e480203d6dcd1096e649c1884c6 100644 (file)
@@ -15,7 +15,7 @@ struct AVIStream {
     strh_pos:   u64,
     nframes:    u32,
     is_video:   bool,
-    max_size:   u32,    
+    max_size:   u32,
 }
 
 struct AVIMuxer<'a> {
@@ -253,6 +253,9 @@ impl<'a> MuxCore<'a> for AVIMuxer<'a> {
         write_chunk_hdr(&mut self.bw, str.get_media_type(), str_num as u32)?;
         self.bw.write_u32le(chunk_len)?;
         self.bw.write_buf(pkt.get_buffer().as_slice())?;
+        if (self.bw.tell() & 1) != 0 {
+            self.bw.write_byte(0)?;
+        }
         Ok(())
     }
     fn flush(&mut self) -> MuxerResult<()> {