--- xvid.c 2003/11/30 16:13:15 1.45.2.22 +++ xvid.c 2004/04/01 11:11:28 1.49 @@ -3,7 +3,7 @@ * XVID MPEG-4 VIDEO CODEC * - Native API implementation - * - * Copyright(C) 2001-2003 Peter Ross + * Copyright(C) 2001-2004 Peter Ross * * This program is free software ; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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.22 2003/11/30 16:13:15 edgomez Exp $ + * $Id: xvid.c,v 1.49 2004/04/01 11:11:28 suxen_drol 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 */ @@ -228,6 +229,9 @@ interpolate8x8_avg2 = interpolate8x8_avg2_c; interpolate8x8_avg4 = interpolate8x8_avg4_c; + /* postprocessing */ + image_brightness = image_brightness_c; + /* reduced resolution */ copy_upsampled_8x8_16to8 = xvid_Copy_Upsampled_8x8_16To8_C; add_upsampled_8x8_16to8 = xvid_Add_Upsampled_8x8_16To8_C; @@ -247,6 +251,7 @@ bgra_to_yv12 = bgra_to_yv12_c; abgr_to_yv12 = abgr_to_yv12_c; rgba_to_yv12 = rgba_to_yv12_c; + argb_to_yv12 = argb_to_yv12_c; yuyv_to_yv12 = yuyv_to_yv12_c; uyvy_to_yv12 = uyvy_to_yv12_c; @@ -256,10 +261,10 @@ bgrai_to_yv12 = bgrai_to_yv12_c; abgri_to_yv12 = abgri_to_yv12_c; rgbai_to_yv12 = rgbai_to_yv12_c; + argbi_to_yv12 = argbi_to_yv12_c; yuyvi_to_yv12 = yuyvi_to_yv12_c; uyvyi_to_yv12 = uyvyi_to_yv12_c; - /* All colorspace transformation functions YV12->User format */ yv12_to_rgb555 = yv12_to_rgb555_c; yv12_to_rgb565 = yv12_to_rgb565_c; @@ -267,6 +272,7 @@ yv12_to_bgra = yv12_to_bgra_c; yv12_to_abgr = yv12_to_abgr_c; yv12_to_rgba = yv12_to_rgba_c; + yv12_to_argb = yv12_to_argb_c; yv12_to_yuyv = yv12_to_yuyv_c; yv12_to_uyvy = yv12_to_uyvy_c; @@ -276,6 +282,7 @@ yv12_to_bgrai = yv12_to_bgrai_c; yv12_to_abgri = yv12_to_abgri_c; yv12_to_rgbai = yv12_to_rgbai_c; + yv12_to_argbi = yv12_to_argbi_c; yv12_to_yuyvi = yv12_to_yuyvi_c; yv12_to_uyvyi = yv12_to_uyvyi_c; @@ -348,6 +355,9 @@ interpolate8x8_avg2 = interpolate8x8_avg2_mmx; interpolate8x8_avg4 = interpolate8x8_avg4_mmx; + /* postprocessing */ + image_brightness = image_brightness_mmx; + /* reduced resolution */ copy_upsampled_8x8_16to8 = xvid_Copy_Upsampled_8x8_16To8_mmx; add_upsampled_8x8_16to8 = xvid_Add_Upsampled_8x8_16To8_mmx; @@ -479,8 +489,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; @@ -495,12 +503,11 @@ sad16 = sad16_sse2; dev16 = dev16_sse2; - /* DCT operators */ + /* DCT operators + * no iDCT because it's not "Walken matching" */ fdct = fdct_sse2_skal; - idct = idct_sse2_dmitry; } -#endif -#endif +#endif /* ARCH_IS_IA32 */ #if defined(ARCH_IS_IA64) if ((cpu_flags & XVID_CPU_ASM)) { /* use assembler routines? */