--- qpel.h 2004/08/10 21:58:55 1.3 +++ qpel.h 2005/10/26 12:38:34 1.7 @@ -19,7 +19,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: qpel.h,v 1.3 2004/08/10 21:58:55 edgomez Exp $ + * $Id: qpel.h,v 1.7 2005/10/26 12:38:34 Skal Exp $ * ****************************************************************************/ @@ -78,6 +78,16 @@ extern XVID_QP_FUNCS xvid_QP_Add_Funcs_mmx; #endif +#ifdef ARCH_IS_PPC +extern XVID_QP_FUNCS xvid_QP_Funcs_Altivec_C; +extern XVID_QP_FUNCS xvid_QP_Add_Funcs_Altivec_C; +#endif + +#ifdef ARCH_IS_X86_64 +extern XVID_QP_FUNCS xvid_QP_Funcs_x86_64; +extern XVID_QP_FUNCS xvid_QP_Add_Funcs_x86_64; +#endif + extern XVID_QP_FUNCS *xvid_QP_Funcs; /* <- main pointer for enc/dec structure */ extern XVID_QP_FUNCS *xvid_QP_Add_Funcs; /* <- main pointer for enc/dec structure */ @@ -120,22 +130,17 @@ int32_t x_int, y_int; - const int32_t xRef = x*4 + dx; - const int32_t yRef = y*4 + dy; + const int32_t xRef = (int)x*4 + dx; + const int32_t yRef = (int)y*4 + dy; Ops = xvid_QP_Funcs; quads = (dx&3) | ((dy&3)<<2); - x_int = xRef/4; - if (xRef < 0 && xRef % 4) - x_int--; - - y_int = yRef/4; - if (yRef < 0 && yRef % 4) - y_int--; + x_int = xRef >> 2; + y_int = yRef >> 2; dst = cur + y * stride + x; - src = refn + y_int * stride + x_int; + src = refn + y_int * (int)stride + x_int; tmp = refh; /* we need at least a 16 x stride scratch block */ @@ -223,23 +228,18 @@ int32_t x_int, y_int; - const int32_t xRef = x*4 + dx; - const int32_t yRef = y*4 + dy; + const int32_t xRef = (int)x*4 + dx; + const int32_t yRef = (int)y*4 + dy; Ops = xvid_QP_Add_Funcs; Ops_Copy = xvid_QP_Funcs; quads = (dx&3) | ((dy&3)<<2); - x_int = xRef/4; - if (xRef < 0 && xRef % 4) - x_int--; - - y_int = yRef/4; - if (yRef < 0 && yRef % 4) - y_int--; + x_int = xRef >> 2; + y_int = yRef >> 2; dst = cur + y * stride + x; - src = refn + y_int * stride + x_int; + src = refn + y_int * (int)stride + x_int; tmp = refh; /* we need at least a 16 x stride scratch block */ @@ -328,22 +328,17 @@ int32_t x_int, y_int; - const int32_t xRef = x*4 + dx; - const int32_t yRef = y*4 + dy; + const int32_t xRef = (int)x*4 + dx; + const int32_t yRef = (int)y*4 + dy; Ops = xvid_QP_Funcs; quads = (dx&3) | ((dy&3)<<2); - x_int = xRef/4; - if (xRef < 0 && xRef % 4) - x_int--; - - y_int = yRef/4; - if (yRef < 0 && yRef % 4) - y_int--; + x_int = xRef >> 2; + y_int = yRef >> 2; dst = cur + y * stride + x; - src = refn + y_int * stride + x_int; + src = refn + y_int * (int)stride + x_int; tmp = refh; /* we need at least a 16 x stride scratch block */ @@ -428,22 +423,17 @@ int32_t x_int, y_int; - const int32_t xRef = x*4 + dx; - const int32_t yRef = y*4 + dy; + const int32_t xRef = (int)x*4 + dx; + const int32_t yRef = (int)y*4 + dy; Ops = xvid_QP_Funcs; quads = (dx&3) | ((dy&3)<<2); - x_int = xRef/4; - if (xRef < 0 && xRef % 4) - x_int--; - - y_int = yRef/4; - if (yRef < 0 && yRef % 4) - y_int--; + x_int = xRef >> 2; + y_int = yRef >> 2; dst = cur + y * stride + x; - src = refn + y_int * stride + x_int; + src = refn + y_int * (int)stride + x_int; tmp = refh; /* we need at least a 16 x stride scratch block */ @@ -528,23 +518,18 @@ int32_t x_int, y_int; - const int32_t xRef = x*4 + dx; - const int32_t yRef = y*4 + dy; + const int32_t xRef = (int)x*4 + dx; + const int32_t yRef = (int)y*4 + dy; Ops = xvid_QP_Add_Funcs; Ops_Copy = xvid_QP_Funcs; quads = (dx&3) | ((dy&3)<<2); - x_int = xRef/4; - if (xRef < 0 && xRef % 4) - x_int--; - - y_int = yRef/4; - if (yRef < 0 && yRef % 4) - y_int--; + x_int = xRef >> 2; + y_int = yRef >> 2; dst = cur + y * stride + x; - src = refn + y_int * stride + x_int; + src = refn + y_int * (int)stride + x_int; tmp = refh; /* we need at least a 16 x stride scratch block */