summaryrefslogtreecommitdiff
path: root/libs/ardour/delivery.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-11-25 13:26:38 +0100
committerRobin Gareus <robin@gareus.org>2016-11-25 13:26:38 +0100
commitfa642e0e9d415be851f5b60ccd13a40a077d58b8 (patch)
treefe1d75f88835f7cc6634bdd6fe5a8244279064eb /libs/ardour/delivery.cc
parente07f46551659a78233a88b23e1fec1e3f8613f21 (diff)
Fix forwarding of output-buffers.
fbc8504f9eb74 swapped the iterators: Instead of iterating over output buffers like BufferSet::read_from(), the new code iterates over the current buffers. In case of 1 in -> 2 out, only the 1st channel was be copied. Also unlike BufferSet::read_from() the ChanCount was not updated. Processors after a Delivery e.g. out-meter, AFL processor did not see all channels.
Diffstat (limited to 'libs/ardour/delivery.cc')
-rw-r--r--libs/ardour/delivery.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/libs/ardour/delivery.cc b/libs/ardour/delivery.cc
index 569def9669..d95e32a02f 100644
--- a/libs/ardour/delivery.cc
+++ b/libs/ardour/delivery.cc
@@ -326,13 +326,13 @@ Delivery::run (BufferSet& bufs, framepos_t start_frame, framepos_t end_frame, do
}
if (result_required) {
-
/* "bufs" are internal, meaning they should never reflect
split-cycle offsets. So shift events back in time from where
they were for the external buffers associated with Ports.
*/
- BufferSet& outs (output_buffers());
+ const BufferSet& outs (output_buffers());
+ bufs.set_count (output_buffers().count ());
for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {