IIR filter interface.
More...
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
|
| enum | IIRFilterType {
FF_FILTER_TYPE_BESSEL,
FF_FILTER_TYPE_BIQUAD,
FF_FILTER_TYPE_BUTTERWORTH,
FF_FILTER_TYPE_CHEBYSHEV,
FF_FILTER_TYPE_ELLIPTIC
} |
| |
| enum | IIRFilterMode { FF_FILTER_MODE_LOWPASS,
FF_FILTER_MODE_HIGHPASS,
FF_FILTER_MODE_BANDPASS,
FF_FILTER_MODE_BANDSTOP
} |
| |
|
|
void | ff_iir_filter_init (FFIIRFilterContext *f) |
| | Initialize FFIIRFilterContext.
|
| |
|
void | ff_iir_filter_init_mips (FFIIRFilterContext *f) |
| |
| struct FFIIRFilterCoeffs * | ff_iir_filter_init_coeffs (void *avc, enum IIRFilterType filt_type, enum IIRFilterMode filt_mode, int order, float cutoff_ratio, float stopband, float ripple) |
| | Initialize filter coefficients. More...
|
| |
| struct FFIIRFilterState * | ff_iir_filter_init_state (int order) |
| | Create new filter state. More...
|
| |
| void | ff_iir_filter_free_coeffsp (struct FFIIRFilterCoeffs **coeffs) |
| | Free filter coefficients. More...
|
| |
| void | ff_iir_filter_free_statep (struct FFIIRFilterState **state) |
| | Free and zero filter state. More...
|
| |
| void | ff_iir_filter (const struct FFIIRFilterCoeffs *coeffs, struct FFIIRFilterState *state, int size, const int16_t *src, ptrdiff_t sstep, int16_t *dst, ptrdiff_t dstep) |
| | Perform IIR filtering on signed 16-bit input samples. More...
|
| |
| void | ff_iir_filter_flt (const struct FFIIRFilterCoeffs *coeffs, struct FFIIRFilterState *state, int size, const float *src, ptrdiff_t sstep, float *dst, ptrdiff_t dstep) |
| | Perform IIR filtering on floating-point input samples. More...
|
| |
§ ff_iir_filter()
| void ff_iir_filter |
( |
const struct FFIIRFilterCoeffs * |
coeffs, |
|
|
struct FFIIRFilterState * |
state, |
|
|
int |
size, |
|
|
const int16_t * |
src, |
|
|
ptrdiff_t |
sstep, |
|
|
int16_t * |
dst, |
|
|
ptrdiff_t |
dstep |
|
) |
| |
Perform IIR filtering on signed 16-bit input samples.
- Parameters
-
| coeffs | pointer to filter coefficients |
| state | pointer to filter state |
| size | input length |
| src | source samples |
| sstep | source stride |
| dst | filtered samples (destination may be the same as input) |
| dstep | destination stride |
§ ff_iir_filter_flt()
| void ff_iir_filter_flt |
( |
const struct FFIIRFilterCoeffs * |
coeffs, |
|
|
struct FFIIRFilterState * |
state, |
|
|
int |
size, |
|
|
const float * |
src, |
|
|
ptrdiff_t |
sstep, |
|
|
float * |
dst, |
|
|
ptrdiff_t |
dstep |
|
) |
| |
Perform IIR filtering on floating-point input samples.
- Parameters
-
| coeffs | pointer to filter coefficients |
| state | pointer to filter state |
| size | input length |
| src | source samples |
| sstep | source stride |
| dst | filtered samples (destination may be the same as input) |
| dstep | destination stride |
§ ff_iir_filter_free_coeffsp()
Free filter coefficients.
- Parameters
-
§ ff_iir_filter_free_statep()
Free and zero filter state.
- Parameters
-
§ ff_iir_filter_init_coeffs()
| struct FFIIRFilterCoeffs* ff_iir_filter_init_coeffs |
( |
void * |
avc, |
|
|
enum IIRFilterType |
filt_type, |
|
|
enum IIRFilterMode |
filt_mode, |
|
|
int |
order, |
|
|
float |
cutoff_ratio, |
|
|
float |
stopband, |
|
|
float |
ripple |
|
) |
| |
Initialize filter coefficients.
- Parameters
-
| avc | a pointer to an arbitrary struct of which the first field is a pointer to an AVClass struct |
| filt_type | filter type (e.g. Butterworth) |
| filt_mode | filter mode (e.g. lowpass) |
| order | filter order |
| cutoff_ratio | cutoff to input frequency ratio |
| stopband | stopband to input frequency ratio (used by bandpass and bandstop filter modes) |
| ripple | ripple factor (used only in Chebyshev filters) |
- Returns
- pointer to filter coefficients structure or NULL if filter cannot be created
§ ff_iir_filter_init_state()
Create new filter state.
- Parameters
-
- Returns
- pointer to new filter state or NULL if state creation fails