summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-03-26 15:02:03 +0100
committerRobin Gareus <robin@gareus.org>2016-03-26 15:02:03 +0100
commitd5c1ea11c371e5f22b12cabe35aaa2abd9152a69 (patch)
tree9aa0ce890e573dd7c9abe86e59eb8bdea5a9b100 /libs/ardour/route.cc
parent5291fba919d47d800cd34718597c255464b962f7 (diff)
allocate buffers for all possible plugin configurations
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 573660d038..0614ab7ef5 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -2161,10 +2161,14 @@ Route::configure_processors_unlocked (ProcessorStreams* err)
boost::shared_ptr<PluginInsert> pi;
if ((pi = boost::dynamic_pointer_cast<PluginInsert>(*p)) != 0) {
- /* plugins connected via Split Match may have more channels.
- * route/scratch buffers are needed for all of them*/
+ /* plugins connected via Split or Hide Match may have more channels.
+ * route/scratch buffers are needed for all of them
+ * The configuration may only be a subset (both input and output)
+ */
processor_max_streams = ChanCount::max(processor_max_streams, pi->input_streams());
+ processor_max_streams = ChanCount::max(processor_max_streams, pi->output_streams());
processor_max_streams = ChanCount::max(processor_max_streams, pi->natural_input_streams());
+ processor_max_streams = ChanCount::max(processor_max_streams, pi->natural_output_streams());
}
out = c->second;