diff options
Diffstat (limited to 'libaf')
-rw-r--r-- | libaf/af_format.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libaf/af_format.c b/libaf/af_format.c index 3b9b907882..729b964726 100644 --- a/libaf/af_format.c +++ b/libaf/af_format.c @@ -478,19 +478,19 @@ static void float2int(float* in, void* out, int len, int bps) switch(bps){ case(1): for(i=0;i<len;i++) - ((int8_t*)out)[i] = lrintf(127.0 * in[i]); + ((int8_t*)out)[i] = lrintf(127.0 * clamp(in[i], -1.0f, +1.0f)); break; case(2): for(i=0;i<len;i++) - ((int16_t*)out)[i] = lrintf(32767.0 * in[i]); + ((int16_t*)out)[i] = lrintf(32767.0 * clamp(in[i], -1.0f, +1.0f)); break; case(3): for(i=0;i<len;i++) - store24bit(out, i, lrintf(2147483647.0 * in[i])); + store24bit(out, i, lrintf(2147483647.0 * clamp(in[i], -1.0f, +1.0f))); break; case(4): for(i=0;i<len;i++) - ((int32_t*)out)[i] = lrintf(2147483647.0 * in[i]); + ((int32_t*)out)[i] = lrintf(2147483647.0 * clamp(in[i], -1.0f, +1.0f)); break; } } |