diff options
Diffstat (limited to 'resample.c')
-rw-r--r-- | resample.c | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/resample.c b/resample.c deleted file mode 100644 index 23c63a5..0000000 --- a/resample.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "macro.h" -#include "resample.h" - -static void resample_s16(SpeexResamplerState *speex, unsigned channel, void *dst, size_t dstr, const void *src, size_t sstr, size_t in_bytes, size_t *out_bytes) { - - spx_uint32_t in_samples = in_bytes/sizeof(int16_t), out_samples = *out_bytes/sizeof(int16_t); - - speex_resampler_set_input_stride(speex, sstr/sizeof(int16_t)); - speex_resampler_set_input_stride(speex, dstr/sizeof(int16_t)); - - speex_resampler_process_int(speex, channel, src, &in_samples, dst, &out_samples); - - sa_assert(in_samples == in_bytes/sizeof(int16_t)); - - *out_bytes = out_samples * sizeof(int16_t); -} - -static void resample_f32(SpeexResamplerState *speex, unsigned channel, void *dst, size_t dstr, const void *src, size_t sstr, size_t in_bytes, size_t *out_bytes) { - - spx_uint32_t in_samples = in_bytes/sizeof(float), out_samples = *out_bytes/sizeof(float); - - speex_resampler_set_input_stride(speex, sstr/sizeof(float)); - speex_resampler_set_input_stride(speex, dstr/sizeof(float)); - - speex_resampler_process_float(speex, channel, src, &in_samples, dst, &out_samples); - - sa_assert(in_samples == in_bytes/sizeof(float)); - - *out_bytes = out_samples * sizeof(float); -} - -sa_resample_func_t sa_get_resample_func(sa_pcm_format_t f) { - - static const sa_resample_func_t funcs[_SA_PCM_FORMAT_MAX] = { - [SA_PCM_FORMAT_S16_NE] = resample_s16, - [SA_PCM_FORMAT_FLOAT32_NE] = resample_f32 - }; - - sa_assert(f < _SA_PCM_FORMAT_MAX); - - return funcs[f]; -} |