diff --git a/modules/juce_audio_devices/native/juce_android_Oboe.cpp b/modules/juce_audio_devices/native/juce_android_Oboe.cpp index 42a9efc915..9a2dade318 100644 --- a/modules/juce_audio_devices/native/juce_android_Oboe.cpp +++ b/modules/juce_audio_devices/native/juce_android_Oboe.cpp @@ -797,8 +797,9 @@ private: jassert (stream->getDirection() == oboe::Direction::Output && stream == outputStream->getNativeStream()); // Read input from Oboe - inputStreamSampleBuffer.clear(); - inputStreamNativeBuffer.calloc (static_cast (numInputChannels * bufferSize)); + const auto expandedBufferSize = jmax (inputStreamNativeBuffer.size(), + static_cast (numInputChannels * jmax (bufferSize, numFrames))); + inputStreamNativeBuffer.resize (expandedBufferSize); if (inputStream != nullptr) { @@ -811,17 +812,17 @@ private: return oboe::DataCallbackResult::Continue; } - auto result = inputStream->getNativeStream()->read (inputStreamNativeBuffer.getData(), numFrames, 0); + auto result = inputStream->getNativeStream()->read (inputStreamNativeBuffer.data(), numFrames, 0); if (result) { auto referringDirectlyToOboeData = OboeAudioIODeviceBufferHelpers - ::referAudioBufferDirectlyToOboeIfPossible (inputStreamNativeBuffer.get(), + ::referAudioBufferDirectlyToOboeIfPossible (inputStreamNativeBuffer.data(), inputStreamSampleBuffer, result.value()); if (! referringDirectlyToOboeData) - OboeAudioIODeviceBufferHelpers::convertFromOboe (inputStreamNativeBuffer.get(), inputStreamSampleBuffer, result.value()); + OboeAudioIODeviceBufferHelpers::convertFromOboe (inputStreamNativeBuffer.data(), inputStreamSampleBuffer, result.value()); } else { @@ -970,7 +971,7 @@ private: } } - HeapBlock inputStreamNativeBuffer; + std::vector inputStreamNativeBuffer; AudioBuffer inputStreamSampleBuffer, outputStreamSampleBuffer; Atomic audioCallbackGuard { 0 },