static void vp8_build_inter_predictors_b(BLOCKD d, int pitch, byte *base_pre, int pre_stride, vp8_subpix_fn_t sppf) { int r; //byte* pred_ptr = d.predictor; fixed(byte *pPredictor = d.predictor.src()) { byte *pred_ptr = pPredictor; byte *ptr; ptr = base_pre + d.offset + (d.bmi.mv.as_mv.row >> 3) * pre_stride + (d.bmi.mv.as_mv.col >> 3); if ((d.bmi.mv.as_mv.row & 7) > 0 || (d.bmi.mv.as_mv.col & 7) > 0) { sppf(ptr, pre_stride, d.bmi.mv.as_mv.col & 7, d.bmi.mv.as_mv.row & 7, pred_ptr, pitch); } else { for (r = 0; r < 4; ++r) { pred_ptr[0] = ptr[0]; pred_ptr[1] = ptr[1]; pred_ptr[2] = ptr[2]; pred_ptr[3] = ptr[3]; pred_ptr += pitch; ptr += pre_stride; } } } }
static void build_inter_predictors_b(BLOCKD d, byte *dst, int dst_stride, byte *base_pre, int pre_stride, vp8_subpix_fn_t sppf) { int r; byte *ptr; ptr = base_pre + d.offset + (d.bmi.mv.as_mv.row >> 3) * pre_stride + (d.bmi.mv.as_mv.col >> 3); if ((d.bmi.mv.as_mv.row & 7) > 0 || (d.bmi.mv.as_mv.col & 7) > 0) { sppf(ptr, pre_stride, d.bmi.mv.as_mv.col & 7, d.bmi.mv.as_mv.row & 7, dst, dst_stride); } else { for (r = 0; r < 4; ++r) { dst[0] = ptr[0]; dst[1] = ptr[1]; dst[2] = ptr[2]; dst[3] = ptr[3]; dst += dst_stride; ptr += pre_stride; } } }