summaryrefslogtreecommitdiff
path: root/libavcodec/celp_filters.h
diff options
context:
space:
mode:
authorColin McQuillan <m.niloc@googlemail.com>2009-08-12 19:54:28 +0000
committerRobert Swain <robert.swain@gmail.com>2009-08-12 19:54:28 +0000
commitd4d6ae16033097462c8336868eb4acfa617acd6c (patch)
tree48060d235aebc1afe921c636182b6aafe1deb2aa /libavcodec/celp_filters.h
parent51fdb6f08d3e18d052f2be630ad7ec160d4247ec (diff)
Add ff_celp_circ_addf() function to be used for sparse vector circular
convolution in the upcoming AMR-NB floating point decoder. The function scales and adds a vector, that is lagged by some offset, to another vector with the same number of elements. Patch by Colin McQuillan ( m.niloc googlemail com ) Originally committed as revision 19634 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/celp_filters.h')
-rw-r--r--libavcodec/celp_filters.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/libavcodec/celp_filters.h b/libavcodec/celp_filters.h
index ccdffe8483..d9db95d454 100644
--- a/libavcodec/celp_filters.h
+++ b/libavcodec/celp_filters.h
@@ -42,6 +42,21 @@ void ff_celp_convolve_circ(int16_t* fc_out,
int len);
/**
+ * Add an array to a rotated array.
+ *
+ * out[k] = in[k] + fac * lagged[k-lag] with wrap-around
+ *
+ * @param out result vector
+ * @param in samples to be added unfiltered
+ * @param lagged samples to be rotated, multiplied and added
+ * @param lag lagged vector delay in the range [0, n]
+ * @param fac scalefactor for lagged samples
+ * @param n number of samples
+ */
+void ff_celp_circ_addf(float *out, const float *in,
+ const float *lagged, int lag, float fac, int n);
+
+/**
* LP synthesis filter.
* @param out [out] pointer to output buffer
* @param filter_coeffs filter coefficients (-0x8000 <= (3.12) < 0x8000)