summaryrefslogtreecommitdiff
path: root/libs/ardour/route.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-05-18 16:14:07 +0200
committerRobin Gareus <robin@gareus.org>2015-05-18 16:14:07 +0200
commit8287bdad1bbd9b8a52011baecdc3227d564366fa (patch)
tree5d53abb5e8351e6695830b3a6547f99f08d25c58 /libs/ardour/route.cc
parente73b4e6f559edcb13e1baa403d167aec8d3aff5d (diff)
take buffers for Split/Match into account fixes #6334
Diffstat (limited to 'libs/ardour/route.cc')
-rw-r--r--libs/ardour/route.cc8
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index 4b4e450c34..a793ae5b2a 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1896,6 +1896,14 @@ Route::configure_processors_unlocked (ProcessorStreams* err)
(*p)->configure_io(c->first, c->second);
processor_max_streams = ChanCount::max(processor_max_streams, c->first);
processor_max_streams = ChanCount::max(processor_max_streams, c->second);
+
+ 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*/
+ processor_max_streams = ChanCount::max(processor_max_streams, pi->input_streams());
+ processor_max_streams = ChanCount::max(processor_max_streams, pi->natural_input_streams());
+ }
out = c->second;
if (boost::dynamic_pointer_cast<Delivery> (*p)