| Asterisk - The Open Source Telephony Project GIT-master-27fb039
    | 
#include "speex/speex_types.h"

Go to the source code of this file.
| Macros | |
| #define | SPEEX_RESAMPLER_QUALITY_DEFAULT 4 | 
| #define | SPEEX_RESAMPLER_QUALITY_DESKTOP 5 | 
| #define | SPEEX_RESAMPLER_QUALITY_MAX 10 | 
| #define | SPEEX_RESAMPLER_QUALITY_MIN 0 | 
| #define | SPEEX_RESAMPLER_QUALITY_VOIP 3 | 
| Typedefs | |
| typedef struct SpeexResamplerState_ | SpeexResamplerState | 
| Enumerations | |
| enum | { RESAMPLER_ERR_SUCCESS = 0 , RESAMPLER_ERR_ALLOC_FAILED = 1 , RESAMPLER_ERR_BAD_STATE = 2 , RESAMPLER_ERR_INVALID_ARG = 3 , RESAMPLER_ERR_PTR_OVERLAP = 4 , RESAMPLER_ERR_MAX_ERROR } | 
| Functions | |
| void | speex_resampler_destroy (SpeexResamplerState *st) | 
| int | speex_resampler_get_input_latency (SpeexResamplerState *st) | 
| void | speex_resampler_get_input_stride (SpeexResamplerState *st, spx_uint32_t *stride) | 
| int | speex_resampler_get_output_latency (SpeexResamplerState *st) | 
| void | speex_resampler_get_output_stride (SpeexResamplerState *st, spx_uint32_t *stride) | 
| void | speex_resampler_get_quality (SpeexResamplerState *st, int *quality) | 
| void | speex_resampler_get_rate (SpeexResamplerState *st, spx_uint32_t *in_rate, spx_uint32_t *out_rate) | 
| void | speex_resampler_get_ratio (SpeexResamplerState *st, spx_uint32_t *ratio_num, spx_uint32_t *ratio_den) | 
| SpeexResamplerState * | speex_resampler_init (spx_uint32_t nb_channels, spx_uint32_t in_rate, spx_uint32_t out_rate, int quality, int *err) | 
| Create a new resampler with integer input and output rates. | |
| SpeexResamplerState * | speex_resampler_init_frac (spx_uint32_t nb_channels, spx_uint32_t ratio_num, spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate, int quality, int *err) | 
| int | speex_resampler_process_float (SpeexResamplerState *st, spx_uint32_t channel_index, const float *in, spx_uint32_t *in_len, float *out, spx_uint32_t *out_len) | 
| int | speex_resampler_process_int (SpeexResamplerState *st, spx_uint32_t channel_index, const spx_int16_t *in, spx_uint32_t *in_len, spx_int16_t *out, spx_uint32_t *out_len) | 
| int | speex_resampler_process_interleaved_float (SpeexResamplerState *st, const float *in, spx_uint32_t *in_len, float *out, spx_uint32_t *out_len) | 
| int | speex_resampler_process_interleaved_int (SpeexResamplerState *st, const spx_int16_t *in, spx_uint32_t *in_len, spx_int16_t *out, spx_uint32_t *out_len) | 
| int | speex_resampler_reset_mem (SpeexResamplerState *st) | 
| void | speex_resampler_set_input_stride (SpeexResamplerState *st, spx_uint32_t stride) | 
| void | speex_resampler_set_output_stride (SpeexResamplerState *st, spx_uint32_t stride) | 
| int | speex_resampler_set_quality (SpeexResamplerState *st, int quality) | 
| int | speex_resampler_set_rate (SpeexResamplerState *st, spx_uint32_t in_rate, spx_uint32_t out_rate) | 
| int | speex_resampler_set_rate_frac (SpeexResamplerState *st, spx_uint32_t ratio_num, spx_uint32_t ratio_den, spx_uint32_t in_rate, spx_uint32_t out_rate) | 
| int | speex_resampler_skip_zeros (SpeexResamplerState *st) | 
| const char * | speex_resampler_strerror (int err) | 
| #define SPEEX_RESAMPLER_QUALITY_DEFAULT 4 | 
Definition at line 97 of file speex_resampler.h.
| #define SPEEX_RESAMPLER_QUALITY_DESKTOP 5 | 
Definition at line 99 of file speex_resampler.h.
| #define SPEEX_RESAMPLER_QUALITY_MAX 10 | 
Definition at line 95 of file speex_resampler.h.
| #define SPEEX_RESAMPLER_QUALITY_MIN 0 | 
Definition at line 96 of file speex_resampler.h.
| #define SPEEX_RESAMPLER_QUALITY_VOIP 3 | 
Definition at line 98 of file speex_resampler.h.
| typedef struct SpeexResamplerState_ SpeexResamplerState | 
Definition at line 112 of file speex_resampler.h.
| anonymous enum | 
| Enumerator | |
|---|---|
| RESAMPLER_ERR_SUCCESS | |
| RESAMPLER_ERR_ALLOC_FAILED | |
| RESAMPLER_ERR_BAD_STATE | |
| RESAMPLER_ERR_INVALID_ARG | |
| RESAMPLER_ERR_PTR_OVERLAP | |
| RESAMPLER_ERR_MAX_ERROR | |
Definition at line 101 of file speex_resampler.h.
| void speex_resampler_destroy | ( | SpeexResamplerState * | st | ) | 
Destroy a resampler state.
| st | Resampler state | 
Definition at line 849 of file resample.c.
References SpeexResamplerState_::last_sample, SpeexResamplerState_::magic_samples, SpeexResamplerState_::mem, SpeexResamplerState_::samp_frac_num, and SpeexResamplerState_::sinc_table.
Referenced by resamp_destroy(), and speex_resampler_init_frac().
| int speex_resampler_get_input_latency | ( | SpeexResamplerState * | st | ) | 
Get the latency in input samples introduced by the resampler.
| st | Resampler state | 
Definition at line 1159 of file resample.c.
References SpeexResamplerState_::filt_len.
| void speex_resampler_get_input_stride | ( | SpeexResamplerState * | st, | 
| spx_uint32_t * | stride | ||
| ) | 
Get the input stride.
| st | Resampler state | 
| stride | Input stride copied | 
Definition at line 1144 of file resample.c.
References SpeexResamplerState_::in_stride.
| int speex_resampler_get_output_latency | ( | SpeexResamplerState * | st | ) | 
Get the latency in output samples introduced by the resampler.
| st | Resampler state | 
Definition at line 1164 of file resample.c.
References SpeexResamplerState_::den_rate, SpeexResamplerState_::filt_len, and SpeexResamplerState_::num_rate.
| void speex_resampler_get_output_stride | ( | SpeexResamplerState * | st, | 
| spx_uint32_t * | stride | ||
| ) | 
Get the output stride.
| st | Resampler state copied | 
| stride | Output stride | 
Definition at line 1154 of file resample.c.
References SpeexResamplerState_::out_stride.
| void speex_resampler_get_quality | ( | SpeexResamplerState * | st, | 
| int * | quality | ||
| ) | 
Get the conversion quality.
| st | Resampler state | 
| quality | Resampling quality between 0 and 10, where 0 has poor quality and 10 has very high quality. | 
Definition at line 1134 of file resample.c.
References quality, and SpeexResamplerState_::quality.
| void speex_resampler_get_rate | ( | SpeexResamplerState * | st, | 
| spx_uint32_t * | in_rate, | ||
| spx_uint32_t * | out_rate | ||
| ) | 
Get the current input/output sampling rates (integer value).
| st | Resampler state | 
| in_rate | Input sampling rate (integer number of Hz) copied. | 
| out_rate | Output sampling rate (integer number of Hz) copied. | 
Definition at line 1071 of file resample.c.
References SpeexResamplerState_::in_rate, and SpeexResamplerState_::out_rate.
| void speex_resampler_get_ratio | ( | SpeexResamplerState * | st, | 
| spx_uint32_t * | ratio_num, | ||
| spx_uint32_t * | ratio_den | ||
| ) | 
Get the current resampling ratio. This will be reduced to the least common denominator.
| st | Resampler state | 
| ratio_num | Numerator of the sampling rate ratio copied | 
| ratio_den | Denominator of the sampling rate ratio copied | 
Definition at line 1116 of file resample.c.
References SpeexResamplerState_::den_rate, and SpeexResamplerState_::num_rate.
| SpeexResamplerState * speex_resampler_init | ( | spx_uint32_t | nb_channels, | 
| spx_uint32_t | in_rate, | ||
| spx_uint32_t | out_rate, | ||
| int | quality, | ||
| int * | err | ||
| ) | 
Create a new resampler with integer input and output rates.
| nb_channels | Number of channels to be processed | 
| in_rate | Input sampling rate (integer number of Hz). | 
| out_rate | Output sampling rate (integer number of Hz). | 
| quality | Resampling quality between 0 and 10, where 0 has poor quality and 10 has very high quality. | 
| err | 
| NULL | Error: not enough memory | 
Definition at line 783 of file resample.c.
References quality, and speex_resampler_init_frac().
Referenced by resamp_new().
| SpeexResamplerState * speex_resampler_init_frac | ( | spx_uint32_t | nb_channels, | 
| spx_uint32_t | ratio_num, | ||
| spx_uint32_t | ratio_den, | ||
| spx_uint32_t | in_rate, | ||
| spx_uint32_t | out_rate, | ||
| int | quality, | ||
| int * | err | ||
| ) | 
Create a new resampler with fractional input/output rates. The sampling rate ratio is an arbitrary rational number with both the numerator and denominator being 32-bit integers.
| nb_channels | Number of channels to be processed | 
| ratio_num | Numerator of the sampling rate ratio | 
| ratio_den | Denominator of the sampling rate ratio | 
| in_rate | Input sampling rate rounded to the nearest integer (in Hz). | 
| out_rate | Output sampling rate rounded to the nearest integer (in Hz). | 
| quality | Resampling quality between 0 and 10, where 0 has poor quality and 10 has very high quality. | 
| err | 
| NULL | Error: not enough memory | 
Definition at line 788 of file resample.c.
References SpeexResamplerState_::buffer_size, SpeexResamplerState_::cutoff, SpeexResamplerState_::den_rate, SpeexResamplerState_::filt_len, SpeexResamplerState_::in_rate, SpeexResamplerState_::in_stride, SpeexResamplerState_::initialised, SpeexResamplerState_::last_sample, SpeexResamplerState_::magic_samples, SpeexResamplerState_::mem, SpeexResamplerState_::mem_alloc_size, SpeexResamplerState_::nb_channels, NULL, SpeexResamplerState_::num_rate, SpeexResamplerState_::out_rate, SpeexResamplerState_::out_stride, quality, SpeexResamplerState_::quality, RESAMPLER_ERR_INVALID_ARG, RESAMPLER_ERR_SUCCESS, SpeexResamplerState_::resampler_ptr, SpeexResamplerState_::samp_frac_num, SpeexResamplerState_::sinc_table_length, speex_resampler_destroy(), speex_resampler_set_quality(), speex_resampler_set_rate_frac(), SpeexResamplerState_::started, and update_filter().
Referenced by speex_resampler_init().
| int speex_resampler_process_float | ( | SpeexResamplerState * | st, | 
| spx_uint32_t | channel_index, | ||
| const float * | in, | ||
| spx_uint32_t * | in_len, | ||
| float * | out, | ||
| spx_uint32_t * | out_len | ||
| ) | 
Resample a float array. The input and output buffers must not overlap.
| st | Resampler state | 
| channel_index | Index of the channel to process for the multi-channel base (0 otherwise) | 
| in | Input buffer | 
| in_len | Number of input samples in the input buffer. Returns the number of samples processed | 
| out | Output buffer | 
| out_len | Size of the output buffer. Returns the number of samples written | 
Definition at line 947 of file resample.c.
References ALLOC, SpeexResamplerState_::filt_len, FIXED_POINT, FIXED_STACK_ALLOC, in, SpeexResamplerState_::in_stride, SpeexResamplerState_::magic_samples, SpeexResamplerState_::mem, SpeexResamplerState_::mem_alloc_size, out, SpeexResamplerState_::out_stride, resampler_basic_zero(), RESAMPLER_ERR_ALLOC_FAILED, RESAMPLER_ERR_SUCCESS, SpeexResamplerState_::resampler_ptr, speex_resampler_magic(), speex_resampler_process_native(), VARDECL, and WORD2INT.
Referenced by speex_resampler_process_interleaved_float().
| int speex_resampler_process_int | ( | SpeexResamplerState * | st, | 
| spx_uint32_t | channel_index, | ||
| const spx_int16_t * | in, | ||
| spx_uint32_t * | in_len, | ||
| spx_int16_t * | out, | ||
| spx_uint32_t * | out_len | ||
| ) | 
Resample an int array. The input and output buffers must not overlap.
| st | Resampler state | 
| channel_index | Index of the channel to process for the multi-channel base (0 otherwise) | 
| in | Input buffer | 
| in_len | Number of input samples in the input buffer. Returns the number of samples processed | 
| out | Output buffer | 
| out_len | Size of the output buffer. Returns the number of samples written | 
Definition at line 906 of file resample.c.
References SpeexResamplerState_::filt_len, in, SpeexResamplerState_::in_stride, SpeexResamplerState_::magic_samples, SpeexResamplerState_::mem, SpeexResamplerState_::mem_alloc_size, out, SpeexResamplerState_::out_stride, resampler_basic_zero(), RESAMPLER_ERR_ALLOC_FAILED, RESAMPLER_ERR_SUCCESS, SpeexResamplerState_::resampler_ptr, speex_resampler_magic(), and speex_resampler_process_native().
Referenced by resamp_framein(), and speex_resampler_process_interleaved_int().
| int speex_resampler_process_interleaved_float | ( | SpeexResamplerState * | st, | 
| const float * | in, | ||
| spx_uint32_t * | in_len, | ||
| float * | out, | ||
| spx_uint32_t * | out_len | ||
| ) | 
Resample an interleaved float array. The input and output buffers must not overlap.
| st | Resampler state | 
| in | Input buffer | 
| in_len | Number of input samples in the input buffer. Returns the number of samples processed. This is all per-channel. | 
| out | Output buffer | 
| out_len | Size of the output buffer. Returns the number of samples written. This is all per-channel. | 
Definition at line 1020 of file resample.c.
References in, SpeexResamplerState_::in_stride, SpeexResamplerState_::nb_channels, NULL, out, SpeexResamplerState_::out_stride, resampler_basic_zero(), RESAMPLER_ERR_ALLOC_FAILED, RESAMPLER_ERR_SUCCESS, SpeexResamplerState_::resampler_ptr, and speex_resampler_process_float().
| int speex_resampler_process_interleaved_int | ( | SpeexResamplerState * | st, | 
| const spx_int16_t * | in, | ||
| spx_uint32_t * | in_len, | ||
| spx_int16_t * | out, | ||
| spx_uint32_t * | out_len | ||
| ) | 
Resample an interleaved int array. The input and output buffers must not overlap.
| st | Resampler state | 
| in | Input buffer | 
| in_len | Number of input samples in the input buffer. Returns the number of samples processed. This is all per-channel. | 
| out | Output buffer | 
| out_len | Size of the output buffer. Returns the number of samples written. This is all per-channel. | 
Definition at line 1043 of file resample.c.
References in, SpeexResamplerState_::in_stride, SpeexResamplerState_::nb_channels, NULL, out, SpeexResamplerState_::out_stride, resampler_basic_zero(), RESAMPLER_ERR_ALLOC_FAILED, RESAMPLER_ERR_SUCCESS, SpeexResamplerState_::resampler_ptr, and speex_resampler_process_int().
| int speex_resampler_reset_mem | ( | SpeexResamplerState * | st | ) | 
Reset a resampler so a new (unrelated) stream can be processed.
| st | Resampler state | 
Definition at line 1177 of file resample.c.
References SpeexResamplerState_::filt_len, SpeexResamplerState_::last_sample, SpeexResamplerState_::magic_samples, SpeexResamplerState_::mem, SpeexResamplerState_::nb_channels, RESAMPLER_ERR_SUCCESS, and SpeexResamplerState_::samp_frac_num.
| void speex_resampler_set_input_stride | ( | SpeexResamplerState * | st, | 
| spx_uint32_t | stride | ||
| ) | 
Set (change) the input stride.
| st | Resampler state | 
| stride | Input stride | 
Definition at line 1139 of file resample.c.
References SpeexResamplerState_::in_stride.
| void speex_resampler_set_output_stride | ( | SpeexResamplerState * | st, | 
| spx_uint32_t | stride | ||
| ) | 
Set (change) the output stride.
| st | Resampler state | 
| stride | Output stride | 
Definition at line 1149 of file resample.c.
References SpeexResamplerState_::out_stride.
| int speex_resampler_set_quality | ( | SpeexResamplerState * | st, | 
| int | quality | ||
| ) | 
Set (change) the conversion quality.
| st | Resampler state | 
| quality | Resampling quality between 0 and 10, where 0 has poor quality and 10 has very high quality. | 
Definition at line 1122 of file resample.c.
References SpeexResamplerState_::initialised, quality, SpeexResamplerState_::quality, RESAMPLER_ERR_INVALID_ARG, RESAMPLER_ERR_SUCCESS, and update_filter().
Referenced by speex_resampler_init_frac().
| int speex_resampler_set_rate | ( | SpeexResamplerState * | st, | 
| spx_uint32_t | in_rate, | ||
| spx_uint32_t | out_rate | ||
| ) | 
Set (change) the input/output sampling rates (integer value).
| st | Resampler state | 
| in_rate | Input sampling rate (integer number of Hz). | 
| out_rate | Output sampling rate (integer number of Hz). | 
Definition at line 1066 of file resample.c.
References speex_resampler_set_rate_frac().
| int speex_resampler_set_rate_frac | ( | SpeexResamplerState * | st, | 
| spx_uint32_t | ratio_num, | ||
| spx_uint32_t | ratio_den, | ||
| spx_uint32_t | in_rate, | ||
| spx_uint32_t | out_rate | ||
| ) | 
Set (change) the input/output sampling rates and resampling ratio (fractional values in Hz supported).
| st | Resampler state | 
| ratio_num | Numerator of the sampling rate ratio | 
| ratio_den | Denominator of the sampling rate ratio | 
| in_rate | Input sampling rate rounded to the nearest integer (in Hz). | 
| out_rate | Output sampling rate rounded to the nearest integer (in Hz). | 
Definition at line 1077 of file resample.c.
References SpeexResamplerState_::den_rate, IMIN, SpeexResamplerState_::in_rate, SpeexResamplerState_::initialised, SpeexResamplerState_::nb_channels, SpeexResamplerState_::num_rate, SpeexResamplerState_::out_rate, RESAMPLER_ERR_SUCCESS, SpeexResamplerState_::samp_frac_num, and update_filter().
Referenced by speex_resampler_init_frac(), and speex_resampler_set_rate().
| int speex_resampler_skip_zeros | ( | SpeexResamplerState * | st | ) | 
Make sure that the first samples to go out of the resamplers don't have leading zeros. This is only useful before starting to use a newly created resampler. It is recommended to use that when resampling an audio file, as it will generate a file with the same length. For real-time processing, it is probably easier not to use this call (so that the output duration is the same for the first frame).
| st | Resampler state | 
Definition at line 1169 of file resample.c.
References SpeexResamplerState_::filt_len, SpeexResamplerState_::last_sample, SpeexResamplerState_::nb_channels, and RESAMPLER_ERR_SUCCESS.
| const char * speex_resampler_strerror | ( | int | err | ) | 
Returns the English meaning for an error code
| err | Error code | 
Definition at line 1191 of file resample.c.
References RESAMPLER_ERR_ALLOC_FAILED, RESAMPLER_ERR_BAD_STATE, RESAMPLER_ERR_INVALID_ARG, RESAMPLER_ERR_PTR_OVERLAP, and RESAMPLER_ERR_SUCCESS.