diff options
author | Arpi <arpi@thot.banki.hu> | 2003-04-16 20:03:07 +0000 |
---|---|---|
committer | Arpi <arpi@thot.banki.hu> | 2003-04-16 20:03:07 +0000 |
commit | 1a7c3c85622fa0ff48127cfe38ece15e27bfb17c (patch) | |
tree | d2129e00537036d9851375e045518d4e2b1d4597 /libavcodec/liba52/resample.c | |
parent | 6814a25c676ae3f0eb73a2d7180b7fe9e62a62ec (diff) | |
download | ffmpeg-1a7c3c85622fa0ff48127cfe38ece15e27bfb17c.tar.gz |
Utility functions (CRC calc & float->int converters)
[imported from MPlayer, based on a52dec's libao]
Originally committed as revision 1780 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/liba52/resample.c')
-rw-r--r-- | libavcodec/liba52/resample.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/libavcodec/liba52/resample.c b/libavcodec/liba52/resample.c new file mode 100644 index 0000000000..284cbbe78d --- /dev/null +++ b/libavcodec/liba52/resample.c @@ -0,0 +1,45 @@ + +// a52_resample_init should find the requested converter (from type flags -> +// given number of channels) and set up some function pointers... + +// a52_resample() should do the conversion. + +#include <inttypes.h> +#include <stdio.h> +#include "a52.h" +#include "mm_accel.h" +#include "config.h" +#include "../libpostproc/mangle.h" + +int (* a52_resample) (float * _f, int16_t * s16)=NULL; + +#include "resample_c.c" + +#ifdef ARCH_X86 +#include "resample_mmx.c" +#endif + +void* a52_resample_init(uint32_t mm_accel,int flags,int chans){ +void* tmp; + +#ifdef ARCH_X86 + if(mm_accel&MM_ACCEL_X86_MMX){ + tmp=a52_resample_MMX(flags,chans); + if(tmp){ + if(a52_resample==NULL) fprintf(stderr, "Using MMX optimized resampler\n"); + a52_resample=tmp; + return tmp; + } + } +#endif + + tmp=a52_resample_C(flags,chans); + if(tmp){ + if(a52_resample==NULL) fprintf(stderr, "No accelerated resampler found\n"); + a52_resample=tmp; + return tmp; + } + + fprintf(stderr, "Unimplemented resampler for mode 0x%X -> %d channels conversion - Contact MPlayer developers!\n", flags, chans); + return NULL; +} |