diff --git a/audio/mixeng_template.h b/audio/mixeng_template.h index 881653c44b..5b0014bdd9 100644 --- a/audio/mixeng_template.h +++ b/audio/mixeng_template.h @@ -65,7 +65,9 @@ static inline IN_T glue (clip_, ET) (mixeng_real v) #ifdef SIGNED return ENDIAN_CONVERT((IN_T)(v * (((mixeng_real)IN_MAX - IN_MIN) / 2.f))); #else - return ENDIAN_CONVERT((IN_T)((v * ((mixeng_real)IN_MAX / 2.f)) + HALF)); + return ENDIAN_CONVERT(MIN((int64_t)((v * ((mixeng_real)IN_MAX / 2.f)) + + HALF), + IN_MAX)); #endif }