aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2016-03-15 09:07:03 -0700
committerChris Robinson <[email protected]>2016-03-15 09:07:03 -0700
commit8ff4a5435614c85e43a3514157537dab80ecb3e7 (patch)
tree767369b9bc969a7b6047d62e35c760ccb60fa137 /Alc
parent3a26d853ba02d970b3e31db85c8b4b32c14417b7 (diff)
Properly handle negative matrix values and fix decoder initialization
Diffstat (limited to 'Alc')
-rw-r--r--Alc/bformatdec.c2
-rw-r--r--Alc/panning.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/Alc/bformatdec.c b/Alc/bformatdec.c
index d917f803..fff693bc 100644
--- a/Alc/bformatdec.c
+++ b/Alc/bformatdec.c
@@ -252,7 +252,7 @@ static void apply_row(ALfloat *out, const ALfloat *mtx, ALfloat (*restrict in)[B
for(c = 0;c < inchans;c++)
{
ALfloat gain = mtx[c];
- if(!(gain > GAIN_SILENCE_THRESHOLD))
+ if(!(fabsf(gain) > GAIN_SILENCE_THRESHOLD))
continue;
for(i = 0;i < todo;i++)
out[i] += in[c][i] * gain;
diff --git a/Alc/panning.c b/Alc/panning.c
index e090461e..c28ca4d6 100644
--- a/Alc/panning.c
+++ b/Alc/panning.c
@@ -623,7 +623,6 @@ ALvoid aluInitPanning(ALCdevice *device, const AmbDecConf *conf)
if(!MakeSpeakerMap(device, conf, speakermap))
goto ambi_fail;
- bformatdec_reset(device->AmbiDecoder, conf, count, device->Frequency, speakermap);
count = COUNTOF(Ambi3D);
chanmap = Ambi3D;
@@ -637,6 +636,7 @@ ALvoid aluInitPanning(ALCdevice *device, const AmbDecConf *conf)
&device->Dry.NumChannels, AL_FALSE);
device->Dry.AmbiScale = ambiscale;
+ bformatdec_reset(device->AmbiDecoder, conf, count, device->Frequency, speakermap);
return;
ambi_fail: