summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/Makefile2
-rw-r--r--libavcodec/ra288.c9
2 files changed, 4 insertions, 7 deletions
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index 1c2dbd7378..afb1ede3fe 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -173,7 +173,7 @@ OBJS-$(CONFIG_QPEG_DECODER) += qpeg.o
OBJS-$(CONFIG_QTRLE_DECODER) += qtrle.o
OBJS-$(CONFIG_QTRLE_ENCODER) += qtrleenc.o
OBJS-$(CONFIG_RA_144_DECODER) += ra144.o celp_filters.o
-OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_math.o
+OBJS-$(CONFIG_RA_288_DECODER) += ra288.o celp_math.o celp_filters.o
OBJS-$(CONFIG_RAWVIDEO_DECODER) += rawdec.o
OBJS-$(CONFIG_RAWVIDEO_ENCODER) += rawenc.o
OBJS-$(CONFIG_RL2_DECODER) += rl2.o
diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c
index c5ca3ec77b..746075e972 100644
--- a/libavcodec/ra288.c
+++ b/libavcodec/ra288.c
@@ -25,6 +25,7 @@
#include "ra288.h"
#include "lpc.h"
#include "celp_math.h"
+#include "celp_filters.h"
typedef struct {
float sp_lpc[36]; ///< LPC coefficients for speech data (spec: A)
@@ -68,7 +69,7 @@ static void convolve(float *tgt, const float *src, int len, int n)
static void decode(RA288Context *ractx, float gain, int cb_coef)
{
- int i, j;
+ int i;
double sumsum;
float sum, buffer[5];
float *block = ractx->sp_hist + 70 + 36; // current block
@@ -100,11 +101,7 @@ static void decode(RA288Context *ractx, float gain, int cb_coef)
gain_block[9] = 10 * log10(sum) - 32;
- for (i=0; i < 5; i++) {
- block[i] = buffer[i];
- for (j=0; j < 36; j++)
- block[i] -= block[i-1-j]*ractx->sp_lpc[j];
- }
+ ff_celp_lp_synthesis_filterf(block, ractx->sp_lpc, buffer, 5, 36);
/* output */
for (i=0; i < 5; i++)