diff options
author | Jingning Han <jingning@google.com> | 2013-08-27 19:03:12 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@gerrit.golo.chromium.org> | 2013-08-27 19:03:12 -0700 |
commit | eb7acb55242a0421f811a2e96118ba59b48e7db8 (patch) | |
tree | 1577134dde316ea8a3a0bd942615c2f21fe4c3e9 /vp9/encoder/vp9_rdopt.c | |
parent | 1d3f94efe2796cfda867e426c148b60d81167297 (diff) | |
parent | 2d6aadd7e22c58d866fcde095f736be2c34601c6 (diff) | |
download | libvpx-eb7acb55242a0421f811a2e96118ba59b48e7db8.tar libvpx-eb7acb55242a0421f811a2e96118ba59b48e7db8.tar.gz libvpx-eb7acb55242a0421f811a2e96118ba59b48e7db8.tar.bz2 libvpx-eb7acb55242a0421f811a2e96118ba59b48e7db8.zip |
Merge "Fix buf alignment in sub8x8 comp inter-inter pred"
Diffstat (limited to 'vp9/encoder/vp9_rdopt.c')
-rw-r--r-- | vp9/encoder/vp9_rdopt.c | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/vp9/encoder/vp9_rdopt.c b/vp9/encoder/vp9_rdopt.c index 761d4f280..958fd856f 100644 --- a/vp9/encoder/vp9_rdopt.c +++ b/vp9/encoder/vp9_rdopt.c @@ -1511,28 +1511,20 @@ static int64_t encode_inter_mb_segment(VP9_COMP *cpi, int16_t* src_diff = raster_block_offset_int16(BLOCK_8X8, i, x->plane[0].src_diff); int16_t* coeff = BLOCK_OFFSET(x->plane[0].coeff, i); - uint8_t* const pre = raster_block_offset_uint8(BLOCK_8X8, i, - pd->pre[0].buf, - pd->pre[0].stride); uint8_t* const dst = raster_block_offset_uint8(BLOCK_8X8, i, pd->dst.buf, pd->dst.stride); int64_t thisdistortion = 0, thissse = 0; int thisrate = 0; + int ref, second_ref = has_second_ref(&mi->mbmi); - vp9_build_inter_predictor(pre, pd->pre[0].stride, - dst, pd->dst.stride, - &mi->bmi[i].as_mv[0].as_mv, - &xd->scale_factor[0], - width, height, 0, &xd->subpix, MV_PRECISION_Q3); - - if (mi->mbmi.ref_frame[1] > 0) { - uint8_t* const second_pre = - raster_block_offset_uint8(BLOCK_8X8, 0, pd->pre[1].buf, pd->pre[1].stride); - vp9_build_inter_predictor(second_pre, pd->pre[1].stride, + for (ref = 0; ref < 1 + second_ref; ++ref) { + const uint8_t *pre = raster_block_offset_uint8(BLOCK_8X8, i, + pd->pre[ref].buf, pd->pre[ref].stride); + vp9_build_inter_predictor(pre, pd->pre[ref].stride, dst, pd->dst.stride, - &mi->bmi[i].as_mv[1].as_mv, - &xd->scale_factor[1], - width, height, 1, &xd->subpix, MV_PRECISION_Q3); + &mi->bmi[i].as_mv[ref].as_mv, + &xd->scale_factor[ref], + width, height, ref, &xd->subpix, MV_PRECISION_Q3); } vp9_subtract_block(height, width, src_diff, 8, src, src_stride, |