res_parking: Misc fixes.
[asterisk/asterisk.git] / codecs / ilbc / filter.h
1
2    /******************************************************************
3
4        iLBC Speech Coder ANSI-C Source Code
5
6        filter.h
7
8        Copyright (C) The Internet Society (2004).
9        All Rights Reserved.
10
11    ******************************************************************/
12
13
14
15
16
17
18    #ifndef __iLBC_FILTER_H
19    #define __iLBC_FILTER_H
20
21    void AllPoleFilter(
22        float *InOut,   /* (i/o) on entrance InOut[-orderCoef] to
23                               InOut[-1] contain the state of the
24                               filter (delayed samples). InOut[0] to
25                               InOut[lengthInOut-1] contain the filter
26                               input, on en exit InOut[-orderCoef] to
27                               InOut[-1] is unchanged and InOut[0] to
28                               InOut[lengthInOut-1] contain filtered
29                               samples */
30        float *Coef,/* (i) filter coefficients, Coef[0] is assumed
31                               to be 1.0 */
32        int lengthInOut,/* (i) number of input/output samples */
33        int orderCoef   /* (i) number of filter coefficients */
34    );
35
36    void AllZeroFilter(
37        float *In,      /* (i) In[0] to In[lengthInOut-1] contain
38                               filter input samples */
39        float *Coef,/* (i) filter coefficients (Coef[0] is assumed
40                               to be 1.0) */
41        int lengthInOut,/* (i) number of input/output samples */
42        int orderCoef,  /* (i) number of filter coefficients */
43        float *Out      /* (i/o) on entrance Out[-orderCoef] to Out[-1]
44                               contain the filter state, on exit Out[0]
45                               to Out[lengthInOut-1] contain filtered
46                               samples */
47    );
48
49    void ZeroPoleFilter(
50        float *In,      /* (i) In[0] to In[lengthInOut-1] contain filter
51                               input samples In[-orderCoef] to In[-1]
52                               contain state of all-zero section */
53        float *ZeroCoef,/* (i) filter coefficients for all-zero
54                               section (ZeroCoef[0] is assumed to
55                               be 1.0) */
56        float *PoleCoef,/* (i) filter coefficients for all-pole section
57                               (ZeroCoef[0] is assumed to be 1.0) */
58        int lengthInOut,/* (i) number of input/output samples */
59        int orderCoef,  /* (i) number of filter coefficients */
60        float *Out      /* (i/o) on entrance Out[-orderCoef] to Out[-1]
61                               contain state of all-pole section. On
62                               exit Out[0] to Out[lengthInOut-1]
63                               contain filtered samples */
64    );
65
66
67
68
69
70
71    void DownSample (
72        float  *In,     /* (i) input samples */
73        float  *Coef,   /* (i) filter coefficients */
74        int lengthIn,   /* (i) number of input samples */
75        float  *state,  /* (i) filter state */
76        float  *Out     /* (o) downsampled output */
77    );
78
79    #endif
80