39 #ifndef SPEEX_RESAMPLER_H
40 #define SPEEX_RESAMPLER_H
49 #define RANDOM_PREFIX speex
51 #error "Please define RANDOM_PREFIX (above) to something specific to your project to prevent symbol name clashes"
54 #define CAT_PREFIX2(a,b) a ## b
55 #define CAT_PREFIX(a,b) CAT_PREFIX2(a, b)
57 #define speex_resampler_init CAT_PREFIX(RANDOM_PREFIX,_resampler_init)
58 #define speex_resampler_init_frac CAT_PREFIX(RANDOM_PREFIX,_resampler_init_frac)
59 #define speex_resampler_destroy CAT_PREFIX(RANDOM_PREFIX,_resampler_destroy)
60 #define speex_resampler_process_float CAT_PREFIX(RANDOM_PREFIX,_resampler_process_float)
61 #define speex_resampler_process_int CAT_PREFIX(RANDOM_PREFIX,_resampler_process_int)
62 #define speex_resampler_process_interleaved_float CAT_PREFIX(RANDOM_PREFIX,_resampler_process_interleaved_float)
63 #define speex_resampler_process_interleaved_int CAT_PREFIX(RANDOM_PREFIX,_resampler_process_interleaved_int)
64 #define speex_resampler_set_rate CAT_PREFIX(RANDOM_PREFIX,_resampler_set_rate)
65 #define speex_resampler_get_rate CAT_PREFIX(RANDOM_PREFIX,_resampler_get_rate)
66 #define speex_resampler_set_rate_frac CAT_PREFIX(RANDOM_PREFIX,_resampler_set_rate_frac)
67 #define speex_resampler_get_ratio CAT_PREFIX(RANDOM_PREFIX,_resampler_get_ratio)
68 #define speex_resampler_set_quality CAT_PREFIX(RANDOM_PREFIX,_resampler_set_quality)
69 #define speex_resampler_get_quality CAT_PREFIX(RANDOM_PREFIX,_resampler_get_quality)
70 #define speex_resampler_set_input_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_set_input_stride)
71 #define speex_resampler_get_input_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_get_input_stride)
72 #define speex_resampler_set_output_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_set_output_stride)
73 #define speex_resampler_get_output_stride CAT_PREFIX(RANDOM_PREFIX,_resampler_get_output_stride)
74 #define speex_resampler_get_input_latency CAT_PREFIX(RANDOM_PREFIX,_resampler_get_input_latency)
75 #define speex_resampler_get_output_latency CAT_PREFIX(RANDOM_PREFIX,_resampler_get_output_latency)
76 #define speex_resampler_skip_zeros CAT_PREFIX(RANDOM_PREFIX,_resampler_skip_zeros)
77 #define speex_resampler_reset_mem CAT_PREFIX(RANDOM_PREFIX,_resampler_reset_mem)
78 #define speex_resampler_strerror CAT_PREFIX(RANDOM_PREFIX,_resampler_strerror)
80 #define spx_int16_t short
81 #define spx_int32_t int
82 #define spx_uint16_t unsigned short
83 #define spx_uint32_t unsigned int
87 #include "speex/speex_types.h"
95 #define SPEEX_RESAMPLER_QUALITY_MAX 10
96 #define SPEEX_RESAMPLER_QUALITY_MIN 0
97 #define SPEEX_RESAMPLER_QUALITY_DEFAULT 4
98 #define SPEEX_RESAMPLER_QUALITY_VOIP 3
99 #define SPEEX_RESAMPLER_QUALITY_DESKTOP 5
102 RESAMPLER_ERR_SUCCESS = 0,
103 RESAMPLER_ERR_ALLOC_FAILED = 1,
104 RESAMPLER_ERR_BAD_STATE = 2,
105 RESAMPLER_ERR_INVALID_ARG = 3,
106 RESAMPLER_ERR_PTR_OVERLAP = 4,
108 RESAMPLER_ERR_MAX_ERROR
125 spx_uint32_t in_rate,
126 spx_uint32_t out_rate,
145 spx_uint32_t ratio_num,
146 spx_uint32_t ratio_den,
147 spx_uint32_t in_rate,
148 spx_uint32_t out_rate,
168 spx_uint32_t channel_index,
170 spx_uint32_t *in_len,
172 spx_uint32_t *out_len);
185 spx_uint32_t channel_index,
186 const spx_int16_t *in,
187 spx_uint32_t *in_len,
189 spx_uint32_t *out_len);
202 spx_uint32_t *in_len,
204 spx_uint32_t *out_len);
216 const spx_int16_t *in,
217 spx_uint32_t *in_len,
219 spx_uint32_t *out_len);
227 spx_uint32_t in_rate,
228 spx_uint32_t out_rate);
236 spx_uint32_t *in_rate,
237 spx_uint32_t *out_rate);
248 spx_uint32_t ratio_num,
249 spx_uint32_t ratio_den,
250 spx_uint32_t in_rate,
251 spx_uint32_t out_rate);
260 spx_uint32_t *ratio_num,
261 spx_uint32_t *ratio_den);
284 spx_uint32_t stride);
291 spx_uint32_t *stride);
298 spx_uint32_t stride);
305 spx_uint32_t *stride);
336 const char *speex_resampler_strerror(
int err);