diff options
author | Linfeng Zhang <linfengz@google.com> | 2017-04-05 17:54:42 -0700 |
---|---|---|
committer | Linfeng Zhang <linfengz@google.com> | 2017-04-19 12:13:49 -0700 |
commit | bf8a49abbd3e637ae933806aa47564dd7ef324d1 (patch) | |
tree | af078af570536b39b55aafd0038009d5ca674663 /vp9/encoder/vp9_pickmode.c | |
parent | a02f391cbe618c6d84b35d161269266c43bc84ca (diff) | |
download | libvpx-bf8a49abbd3e637ae933806aa47564dd7ef324d1.tar libvpx-bf8a49abbd3e637ae933806aa47564dd7ef324d1.tar.gz libvpx-bf8a49abbd3e637ae933806aa47564dd7ef324d1.tar.bz2 libvpx-bf8a49abbd3e637ae933806aa47564dd7ef324d1.zip |
Clean CONVERT_TO_BYTEPTR/SHORTPTR in convolve
Replace by CAST_TO_BYTEPTR/SHORTPTR.
The rule is: if a short ptr is casted to a byte ptr, any offset
operation on the byte ptr must be doubled. We do this by casting to
short ptr first, adding offset, then casting back to byte ptr.
BUG=webm:1388
Change-Id: I9e18a73ba45ddae58fc9dae470c0ff34951fe248
Diffstat (limited to 'vp9/encoder/vp9_pickmode.c')
-rw-r--r-- | vp9/encoder/vp9_pickmode.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/vp9/encoder/vp9_pickmode.c b/vp9/encoder/vp9_pickmode.c index db2bbe7c2..f177814d6 100644 --- a/vp9/encoder/vp9_pickmode.c +++ b/vp9/encoder/vp9_pickmode.c @@ -2053,9 +2053,11 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data, this_mode_pred = &tmp[get_pred_buffer(tmp, 3)]; #if CONFIG_VP9_HIGHBITDEPTH if (cm->use_highbitdepth) - vpx_highbd_convolve_copy(best_pred->data, best_pred->stride, - this_mode_pred->data, this_mode_pred->stride, - NULL, 0, NULL, 0, bw, bh, xd->bd); + vpx_highbd_convolve_copy( + CAST_TO_BYTEPTR(CONVERT_TO_SHORTPTR(best_pred->data)), + best_pred->stride, + CAST_TO_BYTEPTR(CONVERT_TO_SHORTPTR(this_mode_pred->data)), + this_mode_pred->stride, NULL, 0, NULL, 0, bw, bh, xd->bd); else vpx_convolve_copy(best_pred->data, best_pred->stride, this_mode_pred->data, this_mode_pred->stride, NULL, @@ -2162,9 +2164,11 @@ void vp9_pick_inter_mode(VP9_COMP *cpi, MACROBLOCK *x, TileDataEnc *tile_data, if (best_pred->data != orig_dst.buf && is_inter_mode(mi->mode)) { #if CONFIG_VP9_HIGHBITDEPTH if (cm->use_highbitdepth) - vpx_highbd_convolve_copy(best_pred->data, best_pred->stride, - pd->dst.buf, pd->dst.stride, NULL, 0, NULL, 0, - bw, bh, xd->bd); + vpx_highbd_convolve_copy( + CAST_TO_BYTEPTR(CONVERT_TO_SHORTPTR(best_pred->data)), + best_pred->stride, + CAST_TO_BYTEPTR(CONVERT_TO_SHORTPTR(pd->dst.buf)), pd->dst.stride, + NULL, 0, NULL, 0, bw, bh, xd->bd); else vpx_convolve_copy(best_pred->data, best_pred->stride, pd->dst.buf, pd->dst.stride, NULL, 0, NULL, 0, bw, bh); |