Resample Filter¶
The Resample Filter is an Audio Element designed to downsample or upsample the incoming data stream as well as to convert the data between stereo and mono.
Application Example¶
Implementation of this API is demonstrated in the following examples:
API Reference¶
Functions¶
-
esp_err_t
rsp_filter_set_src_info
(audio_element_handle_t self, int src_rate, int src_ch)¶ Set the source audio sample rate and the number of channels to be processed by the resample.
- Return
- ESP_OK ESP_FAIL
- Parameters
self
: Audio element handlesrc_rate
: The sample rate of stream datasrc_ch
: The number channels of stream data
-
audio_element_handle_t
rsp_filter_init
(rsp_filter_cfg_t *config)¶ Create an Audio Element handle to resample incoming data.
Depending on configuration, there are upsampling, downsampling, as well as converting data between mono and dual.
- If the esp_resample_mode_t is
RESAMPLE_DECODE_MODE
,src_rate
andsrc_ch
will be fetched fromaudio_element_getinfo
. - If the esp_resample_mode_t is
RESAMPLE_ENCODE_MODE
,src_rate
,src_ch
,dest_rate
anddest_ch
must be configured.
- Return
- The audio element handler
- Parameters
config
: The configuration
- If the esp_resample_mode_t is
Structures¶
-
struct
rsp_filter_cfg_t
¶ Resample Filter Configuration.
Public Members
-
int
src_rate
¶ The sampling rate of the source PCM file (in Hz)
-
int
src_ch
¶ The number of channel(s) of the source PCM file (Mono=1, Dual=2)
-
int
dest_rate
¶ The sampling rate of the destination PCM file (in Hz)
-
int
dest_ch
¶ The number of channel(s) of the destination PCM file (Mono=1, Dual=2)
-
int
sample_bits
¶ The bit width of the PCM file. Currently, the only supported bit width is 16 bits.
-
esp_resample_mode_t
mode
¶ The resampling mode (the encoding mode or the decoding mode). For decoding mode, input PCM length is constant; for encoding mode, output PCM length is constant.
-
int
max_indata_bytes
¶ The maximum buffer size of the input PCM (in bytes)
-
int
out_len_bytes
¶ The buffer length of the output stream data. This parameter must be configured in encoding mode.
-
esp_resample_type_t
type
¶ The resampling type (Automatic, Upsampling and Downsampling)
-
int
complexity
¶ Indicates the complexity of the resampling. This parameter is only valid when a FIR filter is used. Range: 0~5; O indicates the lowest complexity, which means the accuracy is the lowest and the speed is the fastest; Meanwhile, 4 indicates the highest complexity, which means the accuracy is the highest and the speed is the slowest.If user set
complexity
less than 0,complexity
can be set 0. If user setcomplexity
more than 5,complexity
can be set 5.
-
int
down_ch_idx
¶ Indicates the channel that is selected (the right channel or the left channel). This parameter is only valid when the complexity parameter is set to 0 and the number of channel(s) of the input file has changed from dual to mono.
-
int
out_rb_size
¶ Output ringbuffer size
-
int
task_stack
¶ Task stack size
-
int
task_core
¶ Task running on core
-
int
task_prio
¶ Task priority
-
int