From d5c1ea11c371e5f22b12cabe35aaa2abd9152a69 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 26 Mar 2016 15:02:03 +0100 Subject: [PATCH] allocate buffers for all possible plugin configurations --- libs/ardour/route.cc | 8 ++++++-- 1 file 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 pi; if ((pi = boost::dynamic_pointer_cast(*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;