diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-30 21:38:53 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-30 21:38:53 +0000 |
commit | 8a95255ef276a9cb80b57b9c74dc5d17cc1671c7 (patch) | |
tree | 3f50f71836457bdd4342345b0f0903f462f031f5 /liba52 | |
parent | 2addc399ab7f0d55e894029a446a8045dcebcd1d (diff) | |
download | mpv-8a95255ef276a9cb80b57b9c74dc5d17cc1671c7.tar.bz2 mpv-8a95255ef276a9cb80b57b9c74dc5d17cc1671c7.tar.xz |
runtime cpudetect in liba52 way
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3909 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'liba52')
-rw-r--r-- | liba52/imdct.c | 11 | ||||
-rw-r--r-- | liba52/resample.c | 8 | ||||
-rw-r--r-- | liba52/resample_c.c | 8 | ||||
-rw-r--r-- | liba52/resample_mmx.c | 8 | ||||
-rw-r--r-- | liba52/test.c | 14 |
5 files changed, 28 insertions, 21 deletions
diff --git a/liba52/imdct.c b/liba52/imdct.c index 523db22e86..63036cb7a6 100644 --- a/liba52/imdct.c +++ b/liba52/imdct.c @@ -26,7 +26,6 @@ */ #include "config.h" -#include "../cpudetect.h" #include <math.h> #include <stdio.h> @@ -1107,9 +1106,9 @@ void imdct_init (uint32_t mm_accel) { int i, j, k; - if(gCpuCaps.hasSSE) fprintf (stderr, "Using SSE optimized IMDCT transform\n"); - else if(gCpuCaps.has3DNow) fprintf (stderr, "Using experimental 3DNow optimized IMDCT transform\n"); - else fprintf (stderr, "No accelerated IMDCT transform found\n"); + if(mm_accel & MM_ACCEL_X86_SSE) fprintf (stderr, "Using SSE optimized IMDCT transform\n"); + else if(mm_accel & MM_ACCEL_X86_3DNOW) fprintf (stderr, "Using 3DNow optimized IMDCT transform\n"); + else fprintf (stderr, "No accelerated IMDCT transform found\n"); /* Twiddle factors to turn IFFT into IMDCT */ for (i = 0; i < 128; i++) { @@ -1185,8 +1184,8 @@ void imdct_init (uint32_t mm_accel) imdct_512 = imdct_do_512; #ifdef ARCH_X86 - if(gCpuCaps.hasSSE) imdct_512 = imdct_do_512_sse; - else if(gCpuCaps.has3DNow) imdct_512 = imdct_do_512_3dnow; + if(mm_accel & MM_ACCEL_X86_SSE) imdct_512 = imdct_do_512_sse; + else if(mm_accel & MM_ACCEL_X86_3DNOW) imdct_512 = imdct_do_512_3dnow; #endif // arch_x86 imdct_256 = imdct_do_256; } diff --git a/liba52/resample.c b/liba52/resample.c index 6d88b10a65..61a45ab5d4 100644 --- a/liba52/resample.c +++ b/liba52/resample.c @@ -18,8 +18,8 @@ #include <inttypes.h> #include <stdio.h> #include "a52.h" +#include "mm_accel.h" #include "../config.h" -#include "../cpudetect.h" int (* a52_resample) (float * _f, int16_t * s16)=NULL; @@ -592,12 +592,12 @@ void a52_resample_init(uint32_t mm_accel,int _flags,int _chans){ if(a52_resample==NULL) // only once please ;) { - if(gCpuCaps.hasMMX) fprintf(stderr, "Using MMX optimized resampler\n"); - else fprintf(stderr, "No accelerated resampler found\n"); + if(mm_accel & MM_ACCEL_X86_MMX) fprintf(stderr, "Using MMX optimized resampler\n"); + else fprintf(stderr, "No accelerated resampler found\n"); } #ifdef ARCH_X86 - if(gCpuCaps.hasMMX) a52_resample= a52_resample_MMX; + if(mm_accel & MM_ACCEL_X86_MMX) a52_resample= a52_resample_MMX; #else if(0); #endif diff --git a/liba52/resample_c.c b/liba52/resample_c.c index 6d88b10a65..61a45ab5d4 100644 --- a/liba52/resample_c.c +++ b/liba52/resample_c.c @@ -18,8 +18,8 @@ #include <inttypes.h> #include <stdio.h> #include "a52.h" +#include "mm_accel.h" #include "../config.h" -#include "../cpudetect.h" int (* a52_resample) (float * _f, int16_t * s16)=NULL; @@ -592,12 +592,12 @@ void a52_resample_init(uint32_t mm_accel,int _flags,int _chans){ if(a52_resample==NULL) // only once please ;) { - if(gCpuCaps.hasMMX) fprintf(stderr, "Using MMX optimized resampler\n"); - else fprintf(stderr, "No accelerated resampler found\n"); + if(mm_accel & MM_ACCEL_X86_MMX) fprintf(stderr, "Using MMX optimized resampler\n"); + else fprintf(stderr, "No accelerated resampler found\n"); } #ifdef ARCH_X86 - if(gCpuCaps.hasMMX) a52_resample= a52_resample_MMX; + if(mm_accel & MM_ACCEL_X86_MMX) a52_resample= a52_resample_MMX; #else if(0); #endif diff --git a/liba52/resample_mmx.c b/liba52/resample_mmx.c index 6d88b10a65..61a45ab5d4 100644 --- a/liba52/resample_mmx.c +++ b/liba52/resample_mmx.c @@ -18,8 +18,8 @@ #include <inttypes.h> #include <stdio.h> #include "a52.h" +#include "mm_accel.h" #include "../config.h" -#include "../cpudetect.h" int (* a52_resample) (float * _f, int16_t * s16)=NULL; @@ -592,12 +592,12 @@ void a52_resample_init(uint32_t mm_accel,int _flags,int _chans){ if(a52_resample==NULL) // only once please ;) { - if(gCpuCaps.hasMMX) fprintf(stderr, "Using MMX optimized resampler\n"); - else fprintf(stderr, "No accelerated resampler found\n"); + if(mm_accel & MM_ACCEL_X86_MMX) fprintf(stderr, "Using MMX optimized resampler\n"); + else fprintf(stderr, "No accelerated resampler found\n"); } #ifdef ARCH_X86 - if(gCpuCaps.hasMMX) a52_resample= a52_resample_MMX; + if(mm_accel & MM_ACCEL_X86_MMX) a52_resample= a52_resample_MMX; #else if(0); #endif diff --git a/liba52/test.c b/liba52/test.c index d77b716d35..13fca5bed7 100644 --- a/liba52/test.c +++ b/liba52/test.c @@ -11,6 +11,7 @@ #include <inttypes.h> #include "a52.h" +#include "mm_accel.h" #include "../cpudetect.h" static sample_t * samples; @@ -51,6 +52,13 @@ long long t, sum=0, min=256*256*256*64; stdout= stderr; //EVIL HACK FIXME GetCpuCaps(&gCpuCaps); stdout= temp; +// gCpuCaps.hasMMX=0; +// gCpuCaps.hasSSE=0; + if(gCpuCaps.hasMMX) accel |= MM_ACCEL_X86_MMX; + if(gCpuCaps.hasMMX2) accel |= MM_ACCEL_X86_MMXEXT; + if(gCpuCaps.hasSSE) accel |= MM_ACCEL_X86_SSE; + if(gCpuCaps.has3DNow) accel |= MM_ACCEL_X86_3DNOW; +// if(gCpuCaps.has3DNowExt) accel |= MM_ACCEL_X86_3DNOWEXT; samples = a52_init (accel); if (samples == NULL) { @@ -87,7 +95,7 @@ ENDTIMING buf_size=0; // decode: - flags=A52_STEREO; //A52_STEREO; // A52_DOLBY // A52_2F2R // A52_3F2R | A52_LFE + flags=A52_STEREO; //A52_STEREO; //A52_DOLBY; //A52_STEREO; // A52_DOLBY // A52_2F2R // A52_3F2R | A52_LFE channels=2; flags |= A52_ADJUST_LEVEL; @@ -99,7 +107,7 @@ ENDTIMING // a52_dynrng (&state, NULL, NULL); // disable dynamic range compensation STARTTIMING - a52_resample_init(flags,channels); + a52_resample_init(accel,flags,channels); s16 = out_buf; for (i = 0; i < 6; i++) { if (a52_block (&state, samples)) @@ -112,7 +120,7 @@ ENDTIMING if(sum<min) min=sum; sum=0; #endif - fwrite(out_buf,6*256*2*2,1,stdout); + fwrite(out_buf,6*256*2*channels,1,stdout); } |