--- xvid.c 2002/06/23 19:48:06 1.22 +++ xvid.c 2002/07/16 11:15:15 1.30 @@ -27,6 +27,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ****************************************************************************/ + /***************************************************************************** * * History @@ -36,7 +37,7 @@ * - 22.12.2001 API change: added xvid_init() - Isibaar * - 16.12.2001 inital version; (c)2001 peter ross * - * $Id: xvid.c,v 1.22 2002/06/23 19:48:06 edgomez Exp $ + * $Id: xvid.c,v 1.30 2002/07/16 11:15:15 ia64p Exp $ * ****************************************************************************/ @@ -51,6 +52,7 @@ #include "utils/mem_transfer.h" #include "quant/quant_h263.h" #include "quant/quant_mpeg4.h" +#include "motion/motion.h" #include "motion/sad.h" #include "utils/emms.h" #include "utils/timer.h" @@ -98,11 +100,7 @@ cpu_flags = init_param->cpu_flags; } else { -#ifdef ARCH_X86 cpu_flags = check_cpu_features(); -#else - cpu_flags = 0; -#endif init_param->cpu_flags = cpu_flags; } @@ -171,6 +169,7 @@ sad16bi = sad16bi_c; sad8 = sad8_c; dev16 = dev16_c; + Halfpel8_Refine = Halfpel8_Refine_c; #ifdef ARCH_X86 if ((cpu_flags & XVID_CPU_MMX) > 0) { @@ -238,6 +237,10 @@ interpolate8x8_halfpel_v = interpolate8x8_halfpel_v_xmm; interpolate8x8_halfpel_hv = interpolate8x8_halfpel_hv_xmm; + /* Quantization */ + dequant_intra = dequant_intra_xmm; + dequant_inter = dequant_inter_xmm; + /* Buffer transfer */ transfer_8to16sub2 = transfer_8to16sub2_xmm; @@ -246,6 +249,7 @@ /* ME functions */ sad16 = sad16_xmm; + sad16bi = sad16bi_xmm; sad8 = sad8_xmm; dev16 = dev16_xmm; @@ -262,6 +266,8 @@ if ((cpu_flags & XVID_CPU_SSE2) > 0) { #ifdef EXPERIMENTAL_SSE2_CODE + calc_cbp = calc_cbp_sse2; + /* Quantization */ quant_intra = quant_intra_sse2; dequant_intra = dequant_intra_sse2; @@ -269,7 +275,6 @@ dequant_inter = dequant_inter_sse2; /* ME */ - calc_cbp = calc_cbp_sse2; sad16 = sad16_sse2; dev16 = dev16_sse2; @@ -293,6 +298,7 @@ sad16bi = sad16bi_ia64; sad8 = sad8_ia64; dev16 = dev16_ia64; + Halfpel8_Refine = Halfpel8_Refine_ia64; quant_intra = quant_intra_ia64; dequant_intra = dequant_intra_ia64; quant_inter = quant_inter_ia64;