summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_rdopt.c
diff options
context:
space:
mode:
authorLinfeng Zhang <linfengz@google.com>2017-04-05 17:54:42 -0700
committerLinfeng Zhang <linfengz@google.com>2017-04-19 12:13:49 -0700
commitbf8a49abbd3e637ae933806aa47564dd7ef324d1 (patch)
treeaf078af570536b39b55aafd0038009d5ca674663 /vp9/encoder/vp9_rdopt.c
parenta02f391cbe618c6d84b35d161269266c43bc84ca (diff)
downloadlibvpx-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_rdopt.c')
-rw-r--r--vp9/encoder/vp9_rdopt.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c
index d23d32446..2278ddc0f 100644
--- a/vp9/encoder/vp9_rdopt.c
+++ b/vp9/encoder/vp9_rdopt.c
@@ -599,9 +599,10 @@ static void dist_block(const VP9_COMP *cpi, MACROBLOCK *x, int plane,
#if CONFIG_VP9_HIGHBITDEPTH
if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
- recon = CONVERT_TO_BYTEPTR(recon);
- vpx_highbd_convolve_copy(dst, dst_stride, recon, 32, NULL, 0, NULL, 0,
- bs, bs, xd->bd);
+ vpx_highbd_convolve_copy(CAST_TO_BYTEPTR(CONVERT_TO_SHORTPTR(dst)),
+ dst_stride, recon, 32, NULL, 0, NULL, 0, bs,
+ bs, xd->bd);
+ recon = CONVERT_TO_BYTEPTR(recon16);
if (xd->lossless) {
vp9_highbd_iwht4x4_add(dqcoeff, recon, 32, *eob, xd->bd);
} else {