--- xvid.c 2003/10/07 13:02:35 1.45.2.16 +++ xvid.c 2003/12/17 17:07:38 1.45.2.25 @@ -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: xvid.c,v 1.45.2.16 2003/10/07 13:02:35 edgomez Exp $ + * $Id: xvid.c,v 1.45.2.25 2003/12/17 17:07:38 Isibaar Exp $ * ****************************************************************************/ @@ -46,6 +46,7 @@ #include "utils/timer.h" #include "bitstream/mbcoding.h" #include "image/qpel.h" +#include "image/postprocessing.h" #if defined(_DEBUG) unsigned int xvid_debug = 0; /* xvid debug mask */ @@ -280,15 +281,14 @@ yv12_to_uyvyi = yv12_to_uyvyi_c; /* Functions used in motion estimation algorithms */ - calc_cbp = calc_cbp_c; - sad16 = sad16_c; - sad8 = sad8_c; - sad16bi = sad16bi_c; - sad8bi = sad8bi_c; - dev16 = dev16_c; - sad16v = sad16v_c; - -/* Halfpel8_Refine = Halfpel8_Refine_c; */ + calc_cbp = calc_cbp_c; + sad16 = sad16_c; + sad8 = sad8_c; + sad16bi = sad16bi_c; + sad8bi = sad8bi_c; + dev16 = dev16_c; + sad16v = sad16v_c; + sse8_16bit = sse8_16bit_c; #if defined(ARCH_IS_IA32) @@ -308,7 +308,7 @@ if ((cpu_flags & XVID_CPU_MMX)) { /* Forward and Inverse Discrete Cosine Transformation functions */ - fdct = fdct_mmx; + fdct = fdct_mmx_skal; idct = idct_mmx; /* Qpel stuff */ @@ -380,6 +380,7 @@ sad8bi = sad8bi_mmx; dev16 = dev16_mmx; sad16v = sad16v_mmx; + sse8_16bit = sse8_16bit_mmx; } /* these 3dnow functions are faster than mmx, but slower than xmm. */ @@ -398,7 +399,8 @@ if ((cpu_flags & XVID_CPU_MMXEXT)) { - /* Inverse DCT */ + /* DCT */ + fdct = fdct_xmm_skal; idct = idct_xmm; /* Interpolation */ @@ -478,8 +480,6 @@ interpolate8x8_halfpel_hv = interpolate8x8_halfpel_hv_3dne; } -#if defined(EXPERIMENTAL_SSE2_CODE) /* mark the whole SSE2 stuff as experimental. At least on - my P4, it crashes... */ if ((cpu_flags & XVID_CPU_SSE2)) { calc_cbp = calc_cbp_sse2; @@ -490,17 +490,15 @@ dequant_h263_intra = dequant_h263_intra_sse2; dequant_h263_inter = dequant_h263_inter_sse2; - /* ME; slower than xmm */ + /* SAD operators */ sad16 = sad16_sse2; dev16 = dev16_sse2; - /* Forward and Inverse DCT */ -#if 0 /* Both function are known to be unprecise, better keep them deactivated */ - idct = idct_sse2; - fdct = fdct_sse2; -#endif + + /* DCT operators + * no iDCT because it's not "Walken matching" */ + fdct = fdct_sse2_skal; } -#endif -#endif +#endif /* ARCH_IS_IA32 */ #if defined(ARCH_IS_IA64) if ((cpu_flags & XVID_CPU_ASM)) { /* use assembler routines? */ @@ -561,7 +559,7 @@ return XVID_ERR_VERSION; info->actual_version = XVID_VERSION; - info->build = "dev-api-4"; + info->build = "xvid-1.0.0"; info->cpu_flags = detect_cpu_flags(); #if defined(_SMP) && defined(WIN32)