summaryrefslogtreecommitdiff
path: root/Source/Core/AudioCommon/CubebStream.cpp
diff options
context:
space:
mode:
authorshuffle2 <godisgovernment@gmail.com>2017-06-05 20:09:18 -0700
committerGitHub <noreply@github.com>2017-06-05 20:09:18 -0700
commit0b00477c8ae297e166d9e778810cecf67d3d760f (patch)
treeee4bc1f0ff27b3249fc48eb1a75572757f82ad0e /Source/Core/AudioCommon/CubebStream.cpp
parent98eb192226e91c4121a120371ea38b827c19f3ce (diff)
parent14c3d4716fa4abfa7cc70f056676f935ba302c8a (diff)
Merge pull request #5311 from ligfx/mixerdpl2
AudioCommon: Move DPL2 decoding into Mixer
Diffstat (limited to 'Source/Core/AudioCommon/CubebStream.cpp')
-rw-r--r--Source/Core/AudioCommon/CubebStream.cpp22
1 files changed, 1 insertions, 21 deletions
diff --git a/Source/Core/AudioCommon/CubebStream.cpp b/Source/Core/AudioCommon/CubebStream.cpp
index c9052e29c9..272060cd74 100644
--- a/Source/Core/AudioCommon/CubebStream.cpp
+++ b/Source/Core/AudioCommon/CubebStream.cpp
@@ -21,29 +21,9 @@ long CubebStream::DataCallback(cubeb_stream* stream, void* user_data, const void
auto* self = static_cast<CubebStream*>(user_data);
if (self->m_stereo)
- {
self->m_mixer->Mix(static_cast<short*>(output_buffer), num_frames);
- }
else
- {
- size_t required_capacity = num_frames * 2;
- if (required_capacity > self->m_short_buffer.capacity() ||
- required_capacity > self->m_floatstereo_buffer.capacity())
- {
- INFO_LOG(AUDIO, "Expanding conversion buffers size: %li frames", num_frames);
- self->m_short_buffer.reserve(required_capacity);
- self->m_floatstereo_buffer.reserve(required_capacity);
- }
-
- self->m_mixer->Mix(self->m_short_buffer.data(), num_frames);
-
- // s16 to float
- for (size_t i = 0; i < static_cast<size_t>(num_frames) * 2; ++i)
- self->m_floatstereo_buffer[i] = self->m_short_buffer[i] / static_cast<float>(1 << 15);
-
- // DPL2Decode output: LEFTFRONT, RIGHTFRONT, CENTREFRONT, (sub), LEFTREAR, RIGHTREAR
- DPL2Decode(self->m_floatstereo_buffer.data(), num_frames, static_cast<float*>(output_buffer));
- }
+ self->m_mixer->MixSurround(static_cast<float*>(output_buffer), num_frames);
return num_frames;
}