diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-30 21:53:56 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2001-12-30 21:53:56 +0000 |
commit | d5ea3b4e444fc72dd5e9ba9004ab486dd3716262 (patch) | |
tree | 72db9bbd10da2d211404a539794076bb58d3e702 /liba52/downmix.c | |
parent | 1d213cc5e4857318d0331b9d85a2eb7a9afef0d4 (diff) | |
download | mpv-d5ea3b4e444fc72dd5e9ba9004ab486dd3716262.tar.bz2 mpv-d5ea3b4e444fc72dd5e9ba9004ab486dd3716262.tar.xz |
runtime cpudetect the liba52 way part 2 (downmix.c)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@3911 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'liba52/downmix.c')
-rw-r--r-- | liba52/downmix.c | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/liba52/downmix.c b/liba52/downmix.c index deb192a204..75c823f244 100644 --- a/liba52/downmix.c +++ b/liba52/downmix.c @@ -24,18 +24,16 @@ */ #include "config.h" -#include "../cpudetect.h" #include <string.h> #include <inttypes.h> #include "a52.h" #include "a52_internal.h" +#include "mm_accel.h" #define CONVERT(acmod,output) (((output) << 3) + (acmod)) -//#undef HAVE_SSE -//#undef HAVE_MMX void (*downmix)(sample_t * samples, int acmod, int output, sample_t bias, sample_t clev, sample_t slev)= NULL; @@ -47,7 +45,17 @@ static void downmix_C (sample_t * samples, int acmod, int output, sample_t bias, sample_t clev, sample_t slev); static void upmix_MMX (sample_t * samples, int acmod, int output); static void upmix_C (sample_t * samples, int acmod, int output); - + +void downmix_accel_init(uint32_t mm_accel) +{ + upmix= upmix_C; + downmix= downmix_C; +#ifdef ARCH_X86 + if(mm_accel & MM_ACCEL_X86_MMX) upmix= upmix_MMX; + if(mm_accel & MM_ACCEL_X86_SSE) downmix= downmix_SSE; +#endif +} + int downmix_init (int input, int flags, sample_t * level, sample_t clev, sample_t slev) { @@ -77,13 +85,6 @@ int downmix_init (int input, int flags, sample_t * level, }; int output; - upmix= upmix_C; - downmix= downmix_C; -#ifdef ARCH_X86 - if(gCpuCaps.hasMMX) upmix= upmix_MMX; - if(gCpuCaps.hasSSE) downmix= downmix_SSE; -#endif - output = flags & A52_CHANNEL_MASK; if (output > A52_DOLBY) return -1; |