|
From: <sv...@op...> - 2026-05-20 15:12:15
|
Author: manx Date: Wed May 20 17:12:01 2026 New Revision: 25329 URL: https://source.openmpt.org/browse/openmpt/?op=revision&rev=25329 Log: [Fix] openmpt/soundbase/SampleConvert.hpp: Use mpt::safe_clamp instead of std::clamp also for double, and not only for float. Modified: trunk/OpenMPT/src/openmpt/soundbase/SampleConvert.hpp Modified: trunk/OpenMPT/src/openmpt/soundbase/SampleConvert.hpp ============================================================================== --- trunk/OpenMPT/src/openmpt/soundbase/SampleConvert.hpp Mon May 18 13:13:06 2026 (r25328) +++ trunk/OpenMPT/src/openmpt/soundbase/SampleConvert.hpp Wed May 20 17:12:01 2026 (r25329) @@ -172,7 +172,7 @@ using output_t = uint8; MPT_ATTR_ALWAYSINLINE MPT_INLINE_FORCE output_t operator()(input_t val) { - val = std::clamp(val, -1.0, 1.0); + val = mpt::safe_clamp(val, -1.0, 1.0); val *= 128.0; return static_cast<uint8>(mpt::saturate_cast<int8>(static_cast<int>(SC::fastround(val))) + 0x80); } @@ -253,7 +253,7 @@ using output_t = int8; MPT_ATTR_ALWAYSINLINE MPT_INLINE_FORCE output_t operator()(input_t val) { - val = std::clamp(val, -1.0, 1.0); + val = mpt::safe_clamp(val, -1.0, 1.0); val *= 128.0; return mpt::saturate_cast<int8>(static_cast<int>(SC::fastround(val))); } @@ -334,7 +334,7 @@ using output_t = int16; MPT_ATTR_ALWAYSINLINE MPT_INLINE_FORCE output_t operator()(input_t val) { - val = std::clamp(val, -1.0, 1.0); + val = mpt::safe_clamp(val, -1.0, 1.0); val *= 32768.0; return mpt::saturate_cast<int16>(static_cast<int>(SC::fastround(val))); } @@ -415,7 +415,7 @@ using output_t = int24; MPT_ATTR_ALWAYSINLINE MPT_INLINE_FORCE output_t operator()(input_t val) { - val = std::clamp(val, -1.0, 1.0); + val = mpt::safe_clamp(val, -1.0, 1.0); val *= 2147483648.0; return static_cast<int24>(mpt::rshift_signed(mpt::saturate_cast<int32>(static_cast<int64>(SC::fastround(val))), 8)); } @@ -496,7 +496,7 @@ using output_t = int32; MPT_ATTR_ALWAYSINLINE MPT_INLINE_FORCE output_t operator()(input_t val) { - val = std::clamp(val, -1.0, 1.0); + val = mpt::safe_clamp(val, -1.0, 1.0); val *= 2147483648.0; return mpt::saturate_cast<int32>(static_cast<int64>(SC::fastround(val))); } @@ -577,7 +577,7 @@ using output_t = int64; MPT_ATTR_ALWAYSINLINE MPT_INLINE_FORCE output_t operator()(input_t val) { - val = std::clamp(val, -1.0, 1.0); + val = mpt::safe_clamp(val, -1.0, 1.0); val *= static_cast<double>(uint64(1) << 63); return mpt::saturate_trunc<int64>(SC::fastround(val)); } |