From ccea000c4bdc1691ba59f409393fc480a0c3d67e Mon Sep 17 00:00:00 2001 From: Scott LaVarnway Date: Tue, 20 Mar 2012 16:32:54 -0400 Subject: Updated vp8_build_intra_predictors_mbuv_s(sse2/ssse3) to work with the latest code. Change-Id: Ie382bb55d00ea5929bdadba859eea15f696d4cd9 --- vp8/common/x86/recon_wrapper_sse2.c | 81 +++++++++++++++++++------------------ 1 file changed, 42 insertions(+), 39 deletions(-) (limited to 'vp8/common/x86/recon_wrapper_sse2.c') diff --git a/vp8/common/x86/recon_wrapper_sse2.c b/vp8/common/x86/recon_wrapper_sse2.c index cb9ab80b9..949b2fb0e 100644 --- a/vp8/common/x86/recon_wrapper_sse2.c +++ b/vp8/common/x86/recon_wrapper_sse2.c @@ -15,7 +15,8 @@ #define build_intra_predictors_mbuv_prototype(sym) \ void sym(unsigned char *dst, int dst_stride, \ - const unsigned char *src, int src_stride) + const unsigned char *above, \ + const unsigned char *left, int left_stride) typedef build_intra_predictors_mbuv_prototype((*build_intra_predictors_mbuv_fn_t)); extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_dc_mmx2); @@ -29,15 +30,19 @@ extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_tm_sse2); extern build_intra_predictors_mbuv_prototype(vp8_intra_pred_uv_tm_ssse3); static void vp8_build_intra_predictors_mbuv_x86(MACROBLOCKD *x, + unsigned char * uabove_row, + unsigned char * vabove_row, unsigned char *dst_u, unsigned char *dst_v, int dst_stride, + unsigned char * uleft, + unsigned char * vleft, + int left_stride, build_intra_predictors_mbuv_fn_t tm_func, build_intra_predictors_mbuv_fn_t ho_func) { int mode = x->mode_info_context->mbmi.uv_mode; build_intra_predictors_mbuv_fn_t fn; - int src_stride = x->dst.uv_stride; switch (mode) { case V_PRED: fn = vp8_intra_pred_uv_ve_mmx; break; @@ -59,38 +64,48 @@ static void vp8_build_intra_predictors_mbuv_x86(MACROBLOCKD *x, default: return; } - fn(dst_u, dst_stride, x->dst.u_buffer, src_stride); - fn(dst_v, dst_stride, x->dst.v_buffer, src_stride); + fn(dst_u, dst_stride, uabove_row, uleft, left_stride); + fn(dst_v, dst_stride, vabove_row, vleft, left_stride); } -void vp8_build_intra_predictors_mbuv_sse2(MACROBLOCKD *x) +void vp8_build_intra_predictors_mbuv_s_sse2(MACROBLOCKD *x, + unsigned char * uabove_row, + unsigned char * vabove_row, + unsigned char * uleft, + unsigned char * vleft, + int left_stride, + unsigned char * upred_ptr, + unsigned char * vpred_ptr, + int pred_stride) { - vp8_build_intra_predictors_mbuv_x86(x, &x->predictor[256], - &x->predictor[320], 8, + vp8_build_intra_predictors_mbuv_x86(x, + uabove_row, vabove_row, + upred_ptr, + vpred_ptr, pred_stride, + uleft, + vleft, + left_stride, vp8_intra_pred_uv_tm_sse2, vp8_intra_pred_uv_ho_mmx2); } -void vp8_build_intra_predictors_mbuv_ssse3(MACROBLOCKD *x) +void vp8_build_intra_predictors_mbuv_s_ssse3(MACROBLOCKD *x, + unsigned char * uabove_row, + unsigned char * vabove_row, + unsigned char * uleft, + unsigned char * vleft, + int left_stride, + unsigned char * upred_ptr, + unsigned char * vpred_ptr, + int pred_stride) { - vp8_build_intra_predictors_mbuv_x86(x, &x->predictor[256], - &x->predictor[320], 8, - vp8_intra_pred_uv_tm_ssse3, - vp8_intra_pred_uv_ho_ssse3); -} - -void vp8_build_intra_predictors_mbuv_s_sse2(MACROBLOCKD *x) -{ - vp8_build_intra_predictors_mbuv_x86(x, x->dst.u_buffer, - x->dst.v_buffer, x->dst.uv_stride, - vp8_intra_pred_uv_tm_sse2, - vp8_intra_pred_uv_ho_mmx2); -} - -void vp8_build_intra_predictors_mbuv_s_ssse3(MACROBLOCKD *x) -{ - vp8_build_intra_predictors_mbuv_x86(x, x->dst.u_buffer, - x->dst.v_buffer, x->dst.uv_stride, + vp8_build_intra_predictors_mbuv_x86(x, + uabove_row, vabove_row, + upred_ptr, + vpred_ptr, pred_stride, + uleft, + vleft, + left_stride, vp8_intra_pred_uv_tm_ssse3, vp8_intra_pred_uv_ho_ssse3); } @@ -132,22 +147,10 @@ static void vp8_build_intra_predictors_mby_x86(MACROBLOCKD *x, default: return; } - fn(dst_y, dst_stride, x->dst.y_buffer, src_stride); +// fn(dst_y, dst_stride, x->dst.y_buffer, src_stride); return; } -void vp8_build_intra_predictors_mby_sse2(MACROBLOCKD *x) -{ - vp8_build_intra_predictors_mby_x86(x, x->predictor, 16, - vp8_intra_pred_y_tm_sse2); -} - -void vp8_build_intra_predictors_mby_ssse3(MACROBLOCKD *x) -{ - vp8_build_intra_predictors_mby_x86(x, x->predictor, 16, - vp8_intra_pred_y_tm_ssse3); -} - void vp8_build_intra_predictors_mby_s_sse2(MACROBLOCKD *x) { vp8_build_intra_predictors_mby_x86(x, x->dst.y_buffer, x->dst.y_stride, -- cgit v1.2.3