00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef AVCODEC_CELP_FILTERS_H
00024 #define AVCODEC_CELP_FILTERS_H
00025
00026 #include <stdint.h>
00027
00028 typedef struct CELPFContext {
00045 void (*celp_lp_synthesis_filterf)(float *out, const float *filter_coeffs,
00046 const float *in, int buffer_length,
00047 int filter_length);
00048
00065 void (*celp_lp_zero_synthesis_filterf)(float *out, const float *filter_coeffs,
00066 const float *in, int buffer_length,
00067 int filter_length);
00068
00069 }CELPFContext;
00070
00074 void ff_celp_filter_init(CELPFContext *c);
00075 void ff_celp_filter_init_mips(CELPFContext *c);
00076
00088 void ff_celp_convolve_circ(int16_t *fc_out, const int16_t *fc_in,
00089 const int16_t *filter, int len);
00090
00103 void ff_celp_circ_addf(float *out, const float *in,
00104 const float *lagged, int lag, float fac, int n);
00105
00125 int ff_celp_lp_synthesis_filter(int16_t *out, const int16_t *filter_coeffs,
00126 const int16_t *in, int buffer_length,
00127 int filter_length, int stop_on_overflow,
00128 int shift, int rounder);
00129
00146 void ff_celp_lp_synthesis_filterf(float *out, const float *filter_coeffs,
00147 const float *in, int buffer_length,
00148 int filter_length);
00149
00165 void ff_celp_lp_zero_synthesis_filterf(float *out, const float *filter_coeffs,
00166 const float *in, int buffer_length,
00167 int filter_length);
00168
00169 #endif