diff options
author | Chris Robinson <[email protected]> | 2016-03-15 09:07:03 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2016-03-15 09:07:03 -0700 |
commit | 8ff4a5435614c85e43a3514157537dab80ecb3e7 (patch) | |
tree | 767369b9bc969a7b6047d62e35c760ccb60fa137 /Alc | |
parent | 3a26d853ba02d970b3e31db85c8b4b32c14417b7 (diff) |
Properly handle negative matrix values and fix decoder initialization
Diffstat (limited to 'Alc')
-rw-r--r-- | Alc/bformatdec.c | 2 | ||||
-rw-r--r-- | Alc/panning.c | 2 |
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: |