commit 205121fb07ff15343b15b6ebeffb250a8d64f5ee sin <sin@2f30.org> 2015-01-02 15:10:41 +0000 Add short to float conversions and vice-versa
pcm.c | 18 ++++++++++++++++++ sad.h | 2 ++ 2 files changed, 20 insertions(+)
diff --git a/pcm.c b/pcm.c index d9ef2db..95d68c6 100644 --- a/pcm.c +++ b/pcm.c @@ -24,3 +24,21 @@ s16stereotomono(short *in, short *out, size_t nsamples) for (i = 0; i < nsamples; i++) out[i] = in[i * 2] / 2 + in[i * 2 + 1] / 2; } + +void +s16tofloat(short *in, float *out, size_t nsamples) +{ + size_t i; + + for (i = 0; i < nsamples; i++) + out[i] = in[i] / 32768.f; +} + +void +floattos16(float *in, short *out, size_t nsamples) +{ + size_t i; + + for (i = 0; i < nsamples; i++) + out[i] = in[i] * 32768.f; +} diff --git a/sad.h b/sad.h index bab6fbc..2631299 100644 --- a/sad.h +++ b/sad.h @@ -151,3 +151,5 @@ void removesubscriber(int); /* pcm.c */ void s16monotostereo(short *, short *, size_t); void s16stereotomono(short *, short *, size_t); +void s16tofloat(short *, float *, size_t); +void floattos16(float *, short *, size_t);