From 6c35ae48b09bd270598ac9d1713c398f74d75705 Mon Sep 17 00:00:00 2001 From: Atlante45 Date: Thu, 5 Nov 2015 16:52:38 -0800 Subject: [PATCH] Don't allocate big samples array in tight loop --- libraries/audio-client/src/AudioClient.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libraries/audio-client/src/AudioClient.cpp b/libraries/audio-client/src/AudioClient.cpp index 936411d786..2883bfe332 100644 --- a/libraries/audio-client/src/AudioClient.cpp +++ b/libraries/audio-client/src/AudioClient.cpp @@ -749,8 +749,9 @@ void AudioClient::handleAudioInput() { } float inputToNetworkInputRatio = calculateDeviceToNetworkInputRatio(); - + int inputSamplesRequired = (int)((float)AudioConstants::NETWORK_FRAME_SAMPLES_PER_CHANNEL * inputToNetworkInputRatio); + auto inputAudioSamples = std::unique_ptr(new int16_t[inputSamplesRequired]); static int leadingBytes = sizeof(quint16) + sizeof(glm::vec3) + sizeof(glm::quat) + sizeof(quint8); int16_t* networkAudioSamples = (int16_t*)(_audioPacket->getPayload() + leadingBytes); @@ -802,9 +803,7 @@ void AudioClient::handleAudioInput() { _timeSinceLastClip += (float) numNetworkSamples / (float) AudioConstants::SAMPLE_RATE; } - auto inputAudioSamples = std::unique_ptr(new int16_t[inputSamplesRequired]); _inputRingBuffer.readSamples(inputAudioSamples.get(), inputSamplesRequired); - possibleResampling(_inputToNetworkResampler, inputAudioSamples.get(), networkAudioSamples, inputSamplesRequired, numNetworkSamples,