summaryrefslogtreecommitdiff
path: root/libs/ardour/delivery.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-10-17 00:32:35 +0200
committerRobin Gareus <robin@gareus.org>2016-10-17 00:33:02 +0200
commit466141229f0402c807902f9fc42446bd4416c600 (patch)
treec05fd8ffe8d8190dba3431484ffd1dd8fb87a42d /libs/ardour/delivery.cc
parentd2835bc8024a12a751d8019db3cba4591ed2a33a (diff)
ignore send buffers for which there's no return
This fixes an issue with Audio+Midi sends feeding into an audio only return.
Diffstat (limited to 'libs/ardour/delivery.cc')
-rw-r--r--libs/ardour/delivery.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc
index 35c4f9ad80..569def9669 100644
--- a/libs/ardour/delivery.cc
+++ b/libs/ardour/delivery.cc
@@ -337,8 +337,10 @@ Delivery::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, do
for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
uint32_t n = 0;
-
for (BufferSet::iterator b = bufs.begin (*t); b != bufs.end (*t); ++b) {
+ if (outs.count ().get (*t) <= n) {
+ continue;
+ }
b->read_from (outs.get (*t, n++), nframes, (*t == DataType::AUDIO ? 0 : -Port::port_offset()));
}
}