From 8b4829c2fe10cd4019ba8c352cf1d4d177e8a064 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 24 Oct 2008 08:41:34 +0200 Subject: pcm_resample: support for libsamplerate < 0.1.3 libsamplerate 0.1.2 didn't have the 32 bit <-> float conversion routines. Emulate them in case they aren't supported. --- src/pcm_resample_libsamplerate.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/pcm_resample_libsamplerate.c') diff --git a/src/pcm_resample_libsamplerate.c b/src/pcm_resample_libsamplerate.c index 43a2a2f2..ced4a90b 100644 --- a/src/pcm_resample_libsamplerate.c +++ b/src/pcm_resample_libsamplerate.c @@ -154,6 +154,26 @@ pcm_resample_16(uint8_t channels, return data->output_frames_gen * sizeof(*dest_buffer) * channels; } +#ifdef HAVE_LIBSAMPLERATE_NOINT + +/* libsamplerate introduced these functions in v0.1.3 */ + +static void +src_int_to_float_array(const int *in, float *out, int len) +{ + while (len-- > 0) + *out++ = *in++ / (float)(1 << (24 - 1)); +} + +static void +src_float_to_int_array (const float *in, int *out, int len) +{ + while (len-- > 0) + *out++ = *in++ * (float)(1 << (24 - 1)); +} + +#endif + size_t pcm_resample_24(uint8_t channels, unsigned src_rate, -- cgit v1.2.3