diff options
Diffstat (limited to 'vp8/encoder/encodeintra.c')
-rw-r--r-- | vp8/encoder/encodeintra.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/vp8/encoder/encodeintra.c b/vp8/encoder/encodeintra.c index 1f445b7ec..340dd638d 100644 --- a/vp8/encoder/encodeintra.c +++ b/vp8/encoder/encodeintra.c @@ -54,10 +54,13 @@ void vp8_encode_intra4x4block(MACROBLOCK *x, int ib) BLOCKD *b = &x->e_mbd.block[ib]; BLOCK *be = &x->block[ib]; int dst_stride = x->e_mbd.dst.y_stride; - unsigned char *base_dst = x->e_mbd.dst.y_buffer; + unsigned char *dst = x->e_mbd.dst.y_buffer + b->offset; + unsigned char *Above = dst - dst_stride; + unsigned char *yleft = dst - 1; + unsigned char top_left = Above[-1]; - vp8_intra4x4_predict(base_dst + b->offset, dst_stride, - b->bmi.as_mode, b->predictor, 16); + vp8_intra4x4_predict(Above, yleft, dst_stride, b->bmi.as_mode, + b->predictor, 16, top_left); vp8_subtract_b(be, b, 16); @@ -67,14 +70,11 @@ void vp8_encode_intra4x4block(MACROBLOCK *x, int ib) if (*b->eob > 1) { - vp8_short_idct4x4llm(b->dqcoeff, - b->predictor, 16, base_dst + b->offset, dst_stride); + vp8_short_idct4x4llm(b->dqcoeff, b->predictor, 16, dst, dst_stride); } else { - vp8_dc_only_idct_add - (b->dqcoeff[0], b->predictor, 16, base_dst + b->offset, - dst_stride); + vp8_dc_only_idct_add(b->dqcoeff[0], b->predictor, 16, dst, dst_stride); } } |