}
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));
{
}
self.decode_tile(br, &band, tile_no, tr, tr_dc)?;
+ br.align();
let skip_part = tile_end - br.tell();
br.skip(skip_part as u32)?;
} else {
}
dstidx += stride * band.mb_size;
}
- br.align();
Ok(())
}
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;