aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/qcelpdec.c
diff options
context:
space:
mode:
authorReynaldo H. Verdejo Pinochet <reynaldo@opendot.cl>2009-03-09 21:55:24 +0000
committerReynaldo H. Verdejo Pinochet <reynaldo@opendot.cl>2009-03-09 21:55:24 +0000
commit95e83257715818d113724eb92035f4e685d1ec11 (patch)
treec0bf7092251919b30fc7610f3c513078f077240d /libavcodec/qcelpdec.c
parent88c4339bda6f2ad0e6e431b5c45e32d44d44a344 (diff)
downloadffmpeg-95e83257715818d113724eb92035f4e685d1ec11.tar.gz
Functional part Kenan Gillet's 'extract and share weighted_vector_sumf'
patchset. Idea is to share this common code between the AMR and QCELP decoders. Originally committed as revision 17916 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/qcelpdec.c')
-rw-r--r--libavcodec/qcelpdec.c16
1 files changed, 3 insertions, 13 deletions
diff --git a/libavcodec/qcelpdec.c b/libavcodec/qcelpdec.c
index c7d2938c0a..9af3467a96 100644
--- a/libavcodec/qcelpdec.c
+++ b/libavcodec/qcelpdec.c
@@ -37,6 +37,7 @@
#include "celp_math.h"
#include "celp_filters.h"
+#include "acelp_vectors.h"
#undef NDEBUG
#include <assert.h>
@@ -81,17 +82,6 @@ typedef struct
*/
void ff_celp_lspf2lpc(const double *lspf, float *lpc);
-static void weighted_vector_sumf(float *out, const float *in_a,
- const float *in_b, float weight_coeff_a,
- float weight_coeff_b, int length)
-{
- int i;
-
- for(i=0; i<length; i++)
- out[i] = weight_coeff_a * in_a[i]
- + weight_coeff_b * in_b[i];
-}
-
/**
* Initialize the speech codec according to the specification.
*
@@ -174,7 +164,7 @@ static int decode_lspf(QCELPContext *q, float *lspf)
lspf[i-1] = FFMIN(lspf[i-1], (lspf[i] - QCELP_LSP_SPREAD_FACTOR));
// Low-pass filter the LSP frequencies.
- weighted_vector_sumf(lspf, lspf, q->prev_lspf, smooth, 1.0-smooth, 10);
+ ff_weighted_vector_sumf(lspf, lspf, q->prev_lspf, smooth, 1.0-smooth, 10);
}else
{
q->octave_count = 0;
@@ -640,7 +630,7 @@ void interpolate_lpc(QCELPContext *q, const float *curr_lspf, float *lpc,
if(weight != 1.0)
{
- weighted_vector_sumf(interpolated_lspf, curr_lspf, q->prev_lspf,
+ ff_weighted_vector_sumf(interpolated_lspf, curr_lspf, q->prev_lspf,
weight, 1.0 - weight, 10);
lspf2lpc(interpolated_lspf, lpc);
}else if(q->bitrate >= RATE_QUARTER ||