diff options
Diffstat (limited to 'vp8/encoder/mcomp.c')
-rw-r--r-- | vp8/encoder/mcomp.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/vp8/encoder/mcomp.c b/vp8/encoder/mcomp.c index 0b08ed3a9..891b47952 100644 --- a/vp8/encoder/mcomp.c +++ b/vp8/encoder/mcomp.c @@ -257,10 +257,14 @@ int vp8_find_best_sub_pixel_step_iteratively(MACROBLOCK *x, BLOCK *b, BLOCKD *d, int buf_r1, buf_r2, buf_c1, buf_c2; // Clamping to avoid out-of-range data access - buf_r1 = ((bestmv->as_mv.row - INTERP_EXTEND) < x->mv_row_min) ? (bestmv->as_mv.row - x->mv_row_min) : INTERP_EXTEND; - buf_r2 = ((bestmv->as_mv.row + INTERP_EXTEND) > x->mv_row_max) ? (x->mv_row_max - bestmv->as_mv.row) : INTERP_EXTEND; - buf_c1 = ((bestmv->as_mv.col - INTERP_EXTEND) < x->mv_col_min) ? (bestmv->as_mv.col - x->mv_col_min) : INTERP_EXTEND; - buf_c2 = ((bestmv->as_mv.col + INTERP_EXTEND) > x->mv_col_max) ? (x->mv_col_max - bestmv->as_mv.col) : INTERP_EXTEND; + buf_r1 = ((bestmv->as_mv.row - INTERP_EXTEND) < x->mv_row_min) ? + (bestmv->as_mv.row - x->mv_row_min) : INTERP_EXTEND - 1; + buf_r2 = ((bestmv->as_mv.row + INTERP_EXTEND) > x->mv_row_max) ? + (x->mv_row_max - bestmv->as_mv.row) : INTERP_EXTEND - 1; + buf_c1 = ((bestmv->as_mv.col - INTERP_EXTEND) < x->mv_col_min) ? + (bestmv->as_mv.col - x->mv_col_min) : INTERP_EXTEND - 1; + buf_c2 = ((bestmv->as_mv.col + INTERP_EXTEND) > x->mv_col_max) ? + (x->mv_col_max - bestmv->as_mv.col) : INTERP_EXTEND - 1; y_stride = 32; /* Copy to intermediate buffer before searching. */ |