diff options
author | Robin Gareus <robin@gareus.org> | 2015-05-18 16:14:07 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-05-18 16:14:07 +0200 |
commit | 8287bdad1bbd9b8a52011baecdc3227d564366fa (patch) | |
tree | 5d53abb5e8351e6695830b3a6547f99f08d25c58 /libs | |
parent | e73b4e6f559edcb13e1baa403d167aec8d3aff5d (diff) |
take buffers for Split/Match into account fixes #6334
Diffstat (limited to 'libs')
-rw-r--r-- | libs/ardour/route.cc | 8 |
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) |