From fa642e0e9d415be851f5b60ccd13a40a077d58b8 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Fri, 25 Nov 2016 13:26:38 +0100 Subject: 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. --- libs/ardour/delivery.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'libs/ardour/delivery.cc') 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) { -- cgit v1.2.3