Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #include "config.h"
00023 #include "dcadsp.h"
00024
00025 static void dca_lfe_fir_c(float *out, const float *in, const float *coefs,
00026 int decifactor, float scale, float bias)
00027 {
00028 float *out2 = out + decifactor;
00029 const float *cf0 = coefs;
00030 const float *cf1 = coefs + 256;
00031 int j, k;
00032
00033
00034 for (k = 0; k < decifactor; k++) {
00035 float v0 = 0.0;
00036 float v1 = 0.0;
00037 for (j = 0; j < 256 / decifactor; j++) {
00038 float s = in[-j];
00039 v0 += s * *cf0++;
00040 v1 += s * *--cf1;
00041 }
00042 *out++ = (v0 * scale) + bias;
00043 *out2++ = (v1 * scale) + bias;
00044 }
00045 }
00046
00047 void ff_dcadsp_init(DCADSPContext *s)
00048 {
00049 s->lfe_fir = dca_lfe_fir_c;
00050 if (ARCH_ARM) ff_dcadsp_init_arm(s);
00051 }