Commit 50dc9836 authored by Max Kellermann's avatar Max Kellermann

PcmMix: use negative value instead of NaN for addition

Avoid NaN to allow -ffast-math.
parent c4d3030d
......@@ -36,8 +36,6 @@
#include "util/Domain.hxx"
#include "Log.hxx"
#include <cmath>
#include <glib.h>
#include <string.h>
......@@ -783,7 +781,7 @@ Player::PlayNextChunk()
chunk->mix_ratio = ((float)cross_fade_position)
/ cross_fade_chunks;
} else {
chunk->mix_ratio = nan("");
chunk->mix_ratio = -1;
}
if (other_chunk->IsEmpty()) {
......
......@@ -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);
......
......@@ -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
*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment