diff options
| author | skidau <skidau@gmail.com> | 2015-01-23 12:30:48 +1100 |
|---|---|---|
| committer | skidau <skidau@gmail.com> | 2015-01-23 12:30:48 +1100 |
| commit | 6e99accf064bad70f8a0fd12a980ab5c732258de (patch) | |
| tree | d5e0993b5e1bde18b6e0e7f250810fc257f29e60 /Source/Core/AudioCommon/OpenALStream.cpp | |
| parent | e49408bdf05d6a2fe90cb16fa305fae585cf8d28 (diff) | |
| parent | 05d2bf6060e26d3507bbb6f285c452a328101780 (diff) | |
Merge pull request #1917 from adamdmoss/no-lfe
Remove explicit subwoofer/LFE channel from Pulseaudio and OpenAL
Diffstat (limited to 'Source/Core/AudioCommon/OpenALStream.cpp')
| -rw-r--r-- | Source/Core/AudioCommon/OpenALStream.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/Core/AudioCommon/OpenALStream.cpp b/Source/Core/AudioCommon/OpenALStream.cpp index fb0863e8e9..6b19f1e444 100644 --- a/Source/Core/AudioCommon/OpenALStream.cpp +++ b/Source/Core/AudioCommon/OpenALStream.cpp @@ -251,6 +251,14 @@ void OpenALStream::SoundLoop() { float dpl2[OAL_MAX_SAMPLES * OAL_MAX_BUFFERS * SURROUND_CHANNELS]; DPL2Decode(sampleBuffer, nSamples, dpl2); + // zero-out the subwoofer channel - DPL2Decode generates a pretty + // good 5.0 but not a good 5.1 output. Sadly there is not a 5.0 + // AL_FORMAT_50CHN32 to make this super-explicit. + // DPL2Decode output: LEFTFRONT, RIGHTFRONT, CENTREFRONT, (sub), LEFTREAR, RIGHTREAR + for (u32 i=0; i < nSamples; ++i) + { + dpl2[i*SURROUND_CHANNELS + 3 /*sub/lfe*/] = 0.0f; + } alBufferData(uiBufferTemp[iBuffersFilled], AL_FORMAT_51CHN32, dpl2, nSamples * FRAME_SURROUND_FLOAT, ulFrequency); ALenum err = alGetError(); if (err == AL_INVALID_ENUM) |
