diff options
author | Max Kellermann <max@duempel.org> | 2013-10-30 17:23:49 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-10-30 17:23:49 +0100 |
commit | 50dc98367ccb6155a15c440df5e32cf2b8b719ea (patch) | |
tree | bcdbaf115194ca473916f644c3492494280b8834 /src/pcm | |
parent | c4d3030d24d25f7fa8ea30fc108dc7df415fbc02 (diff) | |
download | mpd-50dc98367ccb6155a15c440df5e32cf2b8b719ea.tar.gz mpd-50dc98367ccb6155a15c440df5e32cf2b8b719ea.tar.xz mpd-50dc98367ccb6155a15c440df5e32cf2b8b719ea.zip |
PcmMix: use negative value instead of NaN for addition
Avoid NaN to allow -ffast-math.
Diffstat (limited to '')
-rw-r--r-- | src/pcm/PcmMix.cxx | 4 | ||||
-rw-r--r-- | src/pcm/PcmMix.hxx | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/pcm/PcmMix.cxx b/src/pcm/PcmMix.cxx index f4a02fc47..d3b0f3e2b 100644 --- a/src/pcm/PcmMix.cxx +++ b/src/pcm/PcmMix.cxx @@ -194,9 +194,9 @@ pcm_mix(void *buffer1, const void *buffer2, size_t size, int vol1; float s; - /* portion1 is between 0.0 and 1.0 for crossfading, MixRamp uses NaN + /* portion1 is between 0.0 and 1.0 for crossfading, MixRamp uses -1 * to signal mixing rather than fading */ - if (isnan(portion1)) + if (portion1 < 0) return pcm_add(buffer1, buffer2, size, format); s = sin(M_PI_2 * portion1); diff --git a/src/pcm/PcmMix.hxx b/src/pcm/PcmMix.hxx index 86d279fc1..637c88f8a 100644 --- a/src/pcm/PcmMix.hxx +++ b/src/pcm/PcmMix.hxx @@ -36,8 +36,9 @@ * @param size the size of both buffers in bytes * @param format the sample format of both buffers * @param portion1 a number between 0.0 and 1.0 specifying the portion - * of the first buffer in the mix; portion2 = (1.0 - portion1). The value - * NaN is used by the MixRamp code to specify that simple addition is required. + * of the first buffer in the mix; portion2 = (1.0 - portion1). + * Negative values are used by the MixRamp code to specify that simple + * addition is required. * * @return true on success, false if the format is not supported */ |