aboutsummaryrefslogtreecommitdiffstats
path: root/src/pcm
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2013-10-30 17:23:49 +0100
committerMax Kellermann <max@duempel.org>2013-10-30 17:23:49 +0100
commit50dc98367ccb6155a15c440df5e32cf2b8b719ea (patch)
treebcdbaf115194ca473916f644c3492494280b8834 /src/pcm
parentc4d3030d24d25f7fa8ea30fc108dc7df415fbc02 (diff)
downloadmpd-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.cxx4
-rw-r--r--src/pcm/PcmMix.hxx5
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
*/