aboutsummaryrefslogtreecommitdiff
path: root/src/audio_core/device/device_session.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2023-06-22 21:53:07 -0700
committerGitHub <noreply@github.com>2023-06-22 21:53:07 -0700
commit2fc5dedf6996d4a5c93ddf1ccd67a6963e4827e8 (patch)
treed82f2cf4f7a5e9773616846c095a941b282a84f6 /src/audio_core/device/device_session.cpp
parent3f3e4efb30de021fed52badc34808008276db9e7 (diff)
parent5da70f719703084482933e103e561cc98163f370 (diff)
Merge pull request #10457 from Kelebek1/optimise
Remove memory allocations in some hot paths
Diffstat (limited to 'src/audio_core/device/device_session.cpp')
-rw-r--r--src/audio_core/device/device_session.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/audio_core/device/device_session.cpp b/src/audio_core/device/device_session.cpp
index b5c0ef0e6..86811fcb8 100644
--- a/src/audio_core/device/device_session.cpp
+++ b/src/audio_core/device/device_session.cpp
@@ -79,7 +79,7 @@ void DeviceSession::ClearBuffers() {
}
}
-void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) const {
+void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) {
for (const auto& buffer : buffers) {
Sink::SinkBuffer new_buffer{
.frames = buffer.size / (channel_count * sizeof(s16)),
@@ -88,13 +88,13 @@ void DeviceSession::AppendBuffers(std::span<const AudioBuffer> buffers) const {
.consumed = false,
};
+ tmp_samples.resize_destructive(buffer.size / sizeof(s16));
if (type == Sink::StreamType::In) {
- std::vector<s16> samples{};
- stream->AppendBuffer(new_buffer, samples);
+ stream->AppendBuffer(new_buffer, tmp_samples);
} else {
- std::vector<s16> samples(buffer.size / sizeof(s16));
- system.ApplicationMemory().ReadBlockUnsafe(buffer.samples, samples.data(), buffer.size);
- stream->AppendBuffer(new_buffer, samples);
+ system.ApplicationMemory().ReadBlockUnsafe(buffer.samples, tmp_samples.data(),
+ buffer.size);
+ stream->AppendBuffer(new_buffer, tmp_samples);
}
}
}