use super::super::*;
use super::super::blockdsp;
use super::*;
-use super::code::*;
+//use super::code::*;
use formats;
#[allow(dead_code)]
for t in 0..8 { self.pred_coeffs[mb_pos].hor[i][t] = blk[i][t * 8]; }
for t in 0..8 { self.pred_coeffs[mb_pos].ver[i][t] = blk[i][t]; }
}
- h263_idct(&mut blk[i]);
+ bdsp.idct(&mut blk[i]);
}
blockdsp::put_blocks(&mut buf, mb_x, mb_y, &blk);
mvi.set_zero_mv(mb_x);
}
for i in 0..6 {
bd.decode_block_inter(&binfo, &sstate, binfo.get_q(), i, ((cbp >> (5 - i)) & 1) != 0, &mut blk[i])?;
- h263_idct(&mut blk[i]);
+ bdsp.idct(&mut blk[i]);
}
blockdsp::add_blocks(&mut buf, mb_x, mb_y, &blk);
+ if is_b {
+ mvi2.set_zero_mv(mb_x);
+ }
} else if binfo.mode != Type::B {
self.mv_data.push(BlockMVInfo::Inter_1MV(ZERO_MV));
mvi.set_zero_mv(mb_x);
+ if is_b {
+ mvi2.set_zero_mv(mb_x);
+ }
if let Some(ref srcbuf) = self.ipbs.get_lastref() {
bdsp.copy_blocks(&mut buf, srcbuf, mb_x * 16, mb_y * 16, 16, 16, ZERO_MV);
}
if cbp != 0 {
for i in 0..6 {
bd.decode_block_inter(&binfo, &sstate, binfo.get_q(), i, ((cbp >> (5 - i)) & 1) != 0, &mut blk[i])?;
- h263_idct(&mut blk[i]);
+ bdsp.idct(&mut blk[i]);
}
blockdsp::add_blocks(&mut buf, mb_x, mb_y, &blk);
}
b_mb.cbp = cbp;
for i in 0..6 {
bd.decode_block_inter(&binfo, &sstate, bquant, i, (cbp & (1 << (5 - i))) != 0, &mut b_mb.blk[i])?;
- h263_idct(&mut b_mb.blk[i]);
+ bdsp.idct(&mut b_mb.blk[i]);
}
let is_fwd = !binfo.is_b_fwd();
}
}
mvi.update_row();
+ if is_b {
+ mvi2.update_row();
+ }
cbpi.update_row();
sstate.new_row();
}