if dquant {
let idx = br.read(2)? as usize;
q = ((q as i16) + (H263_DQUANT_TAB[idx] as i16)) as u8;
+ validate!(q < 32);
}
Ok(BlockInfo::new(Type::I, cbp, q))
},
if dquant {
let idx = br.read(2)? as usize;
q = ((q as i16) + (H263_DQUANT_TAB[idx] as i16)) as u8;
+ validate!(q < 32);
}
let binfo = BlockInfo::new(Type::I, cbp, q);
return Ok(binfo);
if dquant {
let idx = br.read(2)? as usize;
q = ((q as i16) + (H263_DQUANT_TAB[idx] as i16)) as u8;
+ validate!(q < 32);
}
let mut binfo = BlockInfo::new(Type::P, cbp, q);
if !is_4x4 {
RealVideo10Decoder{
info: NACodecInfoRef::default(),
- dec: H263BaseDecoder::new_with_opts(false, false, false),
+ dec: H263BaseDecoder::new_with_opts(0),
tables,
w: 0,
h: 0,
let mic_ver = ver & 0xFF;
println!("ver {:06X} -> {}", ver, mic_ver);
validate!(maj_ver == 1);
- self.new_ver = mic_ver > 1;
+ self.new_ver = mic_ver > 0;
+ if mic_ver == 2 {
+ self.dec = H263BaseDecoder::new_with_opts(H263DEC_OPT_HAS_OBMC);
+ }
if (src[3] & 1) != 0 {
self.mvmode = MVMode::UMV;
}