diff --git a/vp9/common/vp9_recon.c b/vp9/common/vp9_recon.c index fae35844d..3e8012aad 100644 --- a/vp9/common/vp9_recon.c +++ b/vp9/common/vp9_recon.c @@ -50,11 +50,11 @@ void vp9_recon2b_c(uint8_t *pred_ptr, int16_t *diff_ptr, uint8_t *dst_ptr, recon(4, 8, pred_ptr, stride, diff_ptr, 8, dst_ptr, stride); } -void vp9_recon_sby_s_c(MACROBLOCKD *mb, uint8_t *dst, - BLOCK_SIZE_TYPE bsize) { +void vp9_recon_sby_c(MACROBLOCKD *mb, BLOCK_SIZE_TYPE bsize) { const int bw = 16 << mb_width_log2(bsize), bh = 16 << mb_height_log2(bsize); int x, y; - const int stride = mb->block[0].dst_stride; + const int stride = mb->dst.y_stride; + uint8_t *dst = mb->dst.y_buffer; const int16_t *diff = mb->plane[0].diff; for (y = 0; y < bh; y++) { @@ -66,12 +66,13 @@ void vp9_recon_sby_s_c(MACROBLOCKD *mb, uint8_t *dst, } } -void vp9_recon_sbuv_s_c(MACROBLOCKD *mb, uint8_t *u_dst, uint8_t *v_dst, - BLOCK_SIZE_TYPE bsize) { +void vp9_recon_sbuv_c(MACROBLOCKD *mb, BLOCK_SIZE_TYPE bsize) { const int bwl = mb_width_log2(bsize), bhl = mb_height_log2(bsize); const int bw = 8 << bwl, bh = 8 << bhl; int x, y; - const int stride = mb->block[16].dst_stride; + const int stride = mb->dst.uv_stride; + uint8_t *u_dst = mb->dst.u_buffer; + uint8_t *v_dst = mb->dst.v_buffer; const int16_t *u_diff = mb->plane[1].diff; const int16_t *v_diff = mb->plane[2].diff; @@ -88,6 +89,11 @@ void vp9_recon_sbuv_s_c(MACROBLOCKD *mb, uint8_t *u_dst, uint8_t *v_dst, } } +void vp9_recon_sb_c(MACROBLOCKD *xd, BLOCK_SIZE_TYPE bsize) { + vp9_recon_sby(xd, bsize); + vp9_recon_sbuv(xd, bsize); +} + void vp9_recon_mby_c(MACROBLOCKD *xd) { int i; diff --git a/vp9/common/vp9_rtcd_defs.sh b/vp9/common/vp9_rtcd_defs.sh index f9f2395f3..51fcdd09b 100644 --- a/vp9/common/vp9_rtcd_defs.sh +++ b/vp9/common/vp9_rtcd_defs.sh @@ -84,11 +84,14 @@ specialize vp9_recon_mb prototype void vp9_recon_mby "struct macroblockd *x" specialize vp9_recon_mby -prototype void vp9_recon_sby_s "struct macroblockd *x, uint8_t *dst, enum BLOCK_SIZE_TYPE bsize" -specialize vp9_recon_sby_s +prototype void vp9_recon_sb "struct macroblockd *x, enum BLOCK_SIZE_TYPE bsize" +specialize vp9_recon_sb -prototype void vp9_recon_sbuv_s "struct macroblockd *x, uint8_t *udst, uint8_t *vdst, enum BLOCK_SIZE_TYPE bsize" -specialize void vp9_recon_sbuv_s +prototype void vp9_recon_sby "struct macroblockd *x, enum BLOCK_SIZE_TYPE bsize" +specialize vp9_recon_sby + +prototype void vp9_recon_sbuv "struct macroblockd *x, enum BLOCK_SIZE_TYPE bsize" +specialize void vp9_recon_sbuv prototype void vp9_build_intra_predictors "uint8_t *src, int src_stride, uint8_t *pred, int y_stride, int mode, int bw, int bh, int up_available, int left_available, int right_available" specialize void vp9_build_intra_predictors diff --git a/vp9/encoder/vp9_encodeframe.c b/vp9/encoder/vp9_encodeframe.c index c30d696e0..1218a6dbb 100644 --- a/vp9/encoder/vp9_encodeframe.c +++ b/vp9/encoder/vp9_encodeframe.c @@ -2412,8 +2412,7 @@ static void encode_superblock(VP9_COMP *cpi, TOKENEXTRA **t, break; default: assert(0); } - vp9_recon_sby_s_c(xd, dst, bsize); - vp9_recon_sbuv_s_c(&x->e_mbd, udst, vdst, bsize); + vp9_recon_sb_c(xd, bsize); #if CONFIG_CODE_NONZEROCOUNT if (bsize == BLOCK_SIZE_SB32X32) { gather_nzcs_sb32(cm, &x->e_mbd);