]> git.nihav.org Git - nihav.git/blobdiff - nihav-indeo/src/codecs/ivibr.rs
indeo: reorder frames for Indeo4
[nihav.git] / nihav-indeo / src / codecs / ivibr.rs
index d501953225066ebb320513d0231aaaec7487d8b7..9165d017d777297715faddb230c3b7559528af97 100644 (file)
@@ -601,7 +601,7 @@ impl IVIDecoder {
                 }
                 br.align();
                 validate!(len > 0);
-                let tile_end = tile_start + len * 8;
+                let tile_end = (tile_start & !7) + len * 8;
                 validate!(tile_end > br.tell());
                 validate!(tile_end <= br.tell() + (br.left() as usize));
                 {
@@ -943,6 +943,11 @@ br.skip(skip_part as u32)?;
                 self.ftype = IVIFrameType::Intra;
             }
         }
+        if self.bref.is_some() && self.ftype == IVIFrameType::Inter {
+            let mut bref: Option<NABufferType> = Some(res.unwrap());
+            mem::swap(&mut bref, &mut self.bref);
+            return Ok(bref.unwrap());
+        }
         if let Ok(NABufferType::None) = res {
             if self.bref.is_some() {
                 let mut bref: Option<NABufferType> = None;