17 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
18 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
19 |
* |
* |
20 |
* $Id: xvid.c,v 1.44 2003-02-20 22:46:18 edgomez Exp $ |
* $Id: xvid.c,v 1.46 2003-06-09 17:07:10 Isibaar Exp $ |
21 |
* |
* |
22 |
****************************************************************************/ |
****************************************************************************/ |
23 |
|
|
320 |
|
|
321 |
/* Forward and Inverse Discrete Cosine Transformation functions */ |
/* Forward and Inverse Discrete Cosine Transformation functions */ |
322 |
fdct = fdct_mmx; |
fdct = fdct_mmx; |
323 |
idct = idct_mmx; |
idct = simple_idct_mmx; /* use simple idct by default */ |
324 |
|
|
325 |
/* Quantization related functions */ |
/* Quantization related functions */ |
326 |
quant_intra = quant_intra_mmx; |
quant_intra = quant_intra_mmx; |
406 |
if ((cpu_flags & XVID_CPU_MMXEXT)) { |
if ((cpu_flags & XVID_CPU_MMXEXT)) { |
407 |
|
|
408 |
/* Inverse DCT */ |
/* Inverse DCT */ |
409 |
idct = idct_xmm; |
/* idct = idct_xmm; Don't use Walken idct anymore! */ |
410 |
|
|
411 |
/* Interpolation */ |
/* Interpolation */ |
412 |
interpolate8x8_halfpel_h = interpolate8x8_halfpel_h_xmm; |
interpolate8x8_halfpel_h = interpolate8x8_halfpel_h_xmm; |
452 |
if ((cpu_flags & XVID_CPU_3DNOWEXT)) { |
if ((cpu_flags & XVID_CPU_3DNOWEXT)) { |
453 |
|
|
454 |
/* Inverse DCT */ |
/* Inverse DCT */ |
455 |
idct = idct_3dne; |
/* idct = idct_3dne; Don't use Walken idct anymore */ |
456 |
|
|
457 |
/* Buffer transfer */ |
/* Buffer transfer */ |
458 |
transfer_8to16copy = transfer_8to16copy_3dne; |
transfer_8to16copy = transfer_8to16copy_3dne; |
502 |
dev16 = dev16_sse2; |
dev16 = dev16_sse2; |
503 |
#endif |
#endif |
504 |
/* Forward and Inverse DCT */ |
/* Forward and Inverse DCT */ |
505 |
idct = idct_sse2; |
/* idct = idct_sse2; |
506 |
fdct = fdct_sse2; |
/* fdct = fdct_sse2; Both are none to be unprecise - better deactivate for now */ |
507 |
} |
} |
508 |
#endif |
#endif |
509 |
|
|
811 |
|
|
812 |
int xvid_init_test(int flags) |
int xvid_init_test(int flags) |
813 |
{ |
{ |
814 |
int cpu_flags = 0; |
#if defined(ARCH_IS_IA32) |
815 |
|
int cpu_flags; |
816 |
srand(time(0)); |
#endif |
817 |
|
|
818 |
printf("XviD tests\n\n"); |
printf("XviD tests\n\n"); |
819 |
|
|
824 |
idct_int32_init(); |
idct_int32_init(); |
825 |
emms(); |
emms(); |
826 |
|
|
827 |
|
srand(time(0)); |
828 |
|
|
829 |
/* fDCT test */ |
/* fDCT test */ |
830 |
printf("--- fdct ---\n"); |
printf("--- fdct ---\n"); |
831 |
test_transform(fdct_int32, fdct_int32, "c", TEST_FDCT, flags); |
test_transform(fdct_int32, fdct_int32, "c", TEST_FDCT, flags); |