3 |
* XVID MPEG-4 VIDEO CODEC |
* XVID MPEG-4 VIDEO CODEC |
4 |
* - Native API implementation - |
* - Native API implementation - |
5 |
* |
* |
6 |
|
* Copyright(C) 2001-2003 Peter Ross <pross@xvid.org> |
7 |
|
* |
8 |
* This program is free software ; you can redistribute it and/or modify |
* This program is free software ; you can redistribute it and/or modify |
9 |
* it under the terms of the GNU General Public License as published by |
* it under the terms of the GNU General Public License as published by |
10 |
* the Free Software Foundation ; either version 2 of the License, or |
* the Free Software Foundation ; either version 2 of the License, or |
19 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
20 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
21 |
* |
* |
22 |
* $Id: xvid.c,v 1.45.2.5 2003-06-09 01:16:57 edgomez Exp $ |
* $Id: xvid.c,v 1.45.2.7 2003-06-09 19:42:08 edgomez Exp $ |
23 |
* |
* |
24 |
****************************************************************************/ |
****************************************************************************/ |
25 |
|
|
288 |
|
|
289 |
#if defined(ARCH_IS_IA32) |
#if defined(ARCH_IS_IA32) |
290 |
|
|
291 |
if ((cpu_flags & XVID_CPU_ASM)) |
if ((cpu_flags & XVID_CPU_ASM)) { |
|
{ |
|
292 |
vfilter_31 = xvid_VFilter_31_x86; |
vfilter_31 = xvid_VFilter_31_x86; |
293 |
hfilter_31 = xvid_HFilter_31_x86; |
hfilter_31 = xvid_HFilter_31_x86; |
294 |
} |
} |
305 |
|
|
306 |
/* Forward and Inverse Discrete Cosine Transformation functions */ |
/* Forward and Inverse Discrete Cosine Transformation functions */ |
307 |
fdct = fdct_mmx; |
fdct = fdct_mmx; |
308 |
idct = idct_mmx; |
idct = simple_idct_mmx; |
309 |
|
|
310 |
/* Quantization related functions */ |
/* Quantization related functions */ |
311 |
quant_intra = quant_intra_mmx; |
quant_intra = quant_intra_mmx; |
391 |
if ((cpu_flags & XVID_CPU_MMXEXT)) { |
if ((cpu_flags & XVID_CPU_MMXEXT)) { |
392 |
|
|
393 |
/* Inverse DCT */ |
/* Inverse DCT */ |
394 |
|
#if 0 /* We don't use Walken idct anymore! */ |
395 |
idct = idct_xmm; |
idct = idct_xmm; |
396 |
|
#endif |
397 |
|
|
398 |
/* Interpolation */ |
/* Interpolation */ |
399 |
interpolate8x8_halfpel_h = interpolate8x8_halfpel_h_xmm; |
interpolate8x8_halfpel_h = interpolate8x8_halfpel_h_xmm; |
439 |
if ((cpu_flags & XVID_CPU_3DNOWEXT)) { |
if ((cpu_flags & XVID_CPU_3DNOWEXT)) { |
440 |
|
|
441 |
/* Inverse DCT */ |
/* Inverse DCT */ |
442 |
|
#if 0 /* We don't use Walken idct anymore! */ |
443 |
idct = idct_3dne; |
idct = idct_3dne; |
444 |
|
#endif |
445 |
|
|
446 |
/* Buffer transfer */ |
/* Buffer transfer */ |
447 |
transfer_8to16copy = transfer_8to16copy_3dne; |
transfer_8to16copy = transfer_8to16copy_3dne; |
491 |
dev16 = dev16_sse2; |
dev16 = dev16_sse2; |
492 |
#endif |
#endif |
493 |
/* Forward and Inverse DCT */ |
/* Forward and Inverse DCT */ |
494 |
|
#if 0 /* Both function are known to be unprecise, better keep them deactivated */ |
495 |
idct = idct_sse2; |
idct = idct_sse2; |
496 |
fdct = fdct_sse2; |
fdct = fdct_sse2; |
497 |
|
#endif |
498 |
} |
} |
499 |
#endif |
#endif |
500 |
|
|