summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/OpenALStream.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/AudioCommon/OpenALStream.cpp')
-rw-r--r--Source/Core/AudioCommon/OpenALStream.cpp32
1 files changed, 16 insertions, 16 deletions
diff --git a/Source/Core/AudioCommon/OpenALStream.cpp b/Source/Core/AudioCommon/OpenALStream.cpp
index 3d4bc90e1d..ca343be005 100644
--- a/Source/Core/AudioCommon/OpenALStream.cpp
+++ b/Source/Core/AudioCommon/OpenALStream.cpp
@@ -6,7 +6,6 @@
#include <cstring>
#include <thread>
-#include "AudioCommon/DPL2Decoder.h"
#include "AudioCommon/OpenALStream.h"
#include "AudioCommon/aldlist.h"
#include "Common/Logging/Log.h"
@@ -66,9 +65,6 @@ bool OpenALStream::Start()
PanicAlertT("OpenAL: can't find sound devices");
}
- // Initialize DPL2 parameters
- DPL2Reset();
-
return bReturn;
}
@@ -228,23 +224,18 @@ void OpenALStream::SoundLoop()
numBuffersQueued -= numBuffersProcessed;
}
- // DPL2 accepts 240 samples minimum (FWRDURATION)
- unsigned int minSamples = surround_capable ? 240 : 0;
-
unsigned int numSamples = OAL_MAX_SAMPLES;
- numSamples = m_mixer->Mix(realtimeBuffer, numSamples);
-
- // Convert the samples from short to float
- for (u32 i = 0; i < numSamples * STEREO_CHANNELS; ++i)
- sampleBuffer[i] = static_cast<float>(realtimeBuffer[i]) / (1 << 15);
-
- if (numSamples <= minSamples)
- continue;
if (surround_capable)
{
+ // DPL2 accepts 240 samples minimum (FWRDURATION)
+ unsigned int minSamples = 240;
+
float dpl2[OAL_MAX_SAMPLES * OAL_MAX_BUFFERS * SURROUND_CHANNELS];
- DPL2Decode(sampleBuffer, numSamples, dpl2);
+ numSamples = m_mixer->MixSurround(dpl2, numSamples);
+
+ if (numSamples < minSamples)
+ continue;
// 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
@@ -311,6 +302,15 @@ void OpenALStream::SoundLoop()
}
else
{
+ numSamples = m_mixer->Mix(realtimeBuffer, numSamples);
+
+ // Convert the samples from short to float
+ for (u32 i = 0; i < numSamples * STEREO_CHANNELS; ++i)
+ sampleBuffer[i] = static_cast<float>(realtimeBuffer[i]) / (1 << 15);
+
+ if (!numSamples)
+ continue;
+
if (float32_capable)
{
alBufferData(uiBuffers[nextBuffer], AL_FORMAT_STEREO_FLOAT32, sampleBuffer,