summaryrefslogtreecommitdiffstats
path: root/src/server/InputPort.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/InputPort.cpp')
-rw-r--r--src/server/InputPort.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/InputPort.cpp b/src/server/InputPort.cpp
index ebe5d41d..3ff8cd41 100644
--- a/src/server/InputPort.cpp
+++ b/src/server/InputPort.cpp
@@ -88,8 +88,9 @@ InputPort::get_buffers(Context& context,
if (is_a(PortType::AUDIO) && num_edges == 0) {
// Audio input with no edges, use shared zero buffer
- for (uint32_t v = 0; v < poly; ++v)
+ for (uint32_t v = 0; v < poly; ++v) {
buffers->at(v) = bufs.silent_buffer();
+ }
return false;
} else if (num_edges == 1) {
@@ -97,8 +98,9 @@ InputPort::get_buffers(Context& context,
if (!_edges.front().must_mix() &&
!_edges.front().must_queue()) {
// Single non-mixing connection, use buffers directly
- for (uint32_t v = 0; v < poly; ++v)
+ for (uint32_t v = 0; v < poly; ++v) {
buffers->at(v) = _edges.front().buffer(v);
+ }
return false;
}
}
@@ -106,7 +108,8 @@ InputPort::get_buffers(Context& context,
// Otherwise, allocate local buffers
for (uint32_t v = 0; v < poly; ++v) {
- buffers->at(v) = _bufs.get(context, buffer_type(), _buffer_size);
+ buffers->at(v).reset();
+ buffers->at(v) = bufs.get(context, buffer_type(), _buffer_size);
buffers->at(v)->clear();
}
return true;