--- qpel.h 2004/10/12 21:08:41 1.4 +++ qpel.h 2008/11/26 01:04:34 1.8 @@ -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.4 2004/10/12 21:08:41 edgomez Exp $ + * $Id: qpel.h,v 1.8 2008/11/26 01:04:34 Isibaar Exp $ * ****************************************************************************/ @@ -73,11 +73,16 @@ extern XVID_QP_FUNCS xvid_QP_Funcs_C; /* for P-frames */ extern XVID_QP_FUNCS xvid_QP_Add_Funcs_C; /* for B-frames */ -#ifdef ARCH_IS_IA32 +#if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) extern XVID_QP_FUNCS xvid_QP_Funcs_mmx; 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 + 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 */ @@ -126,13 +131,8 @@ 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 * (int)stride + x_int; @@ -230,13 +230,8 @@ 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 * (int)stride + x_int; @@ -334,13 +329,8 @@ 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 * (int)stride + x_int; @@ -434,13 +424,8 @@ 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 * (int)stride + x_int; @@ -535,13 +520,8 @@ 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 * (int)stride + x_int;