allocate buffers for all possible plugin configurations
authorRobin Gareus <robin@gareus.org>
Sat, 26 Mar 2016 14:02:03 +0000 (15:02 +0100)
committerRobin Gareus <robin@gareus.org>
Sat, 26 Mar 2016 14:02:03 +0000 (15:02 +0100)
libs/ardour/route.cc

index 573660d038c41d504163b430117003b4ea628dd1..0614ab7ef57923df404bdff10493bfb03258b6a4 100644 (file)
@@ -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;