summaryrefslogtreecommitdiff
path: root/libs/ardour/convolver.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2020-02-26 17:50:08 +0100
committerRobin Gareus <robin@gareus.org>2020-02-26 17:50:08 +0100
commitd27cdb3855eb679dcf66fa37312dcab5aae100dd (patch)
treeaafda3bf4fb8a5440e13f6cff974f16d0743f259 /libs/ardour/convolver.cc
parenta5c956883d4a0efa3425179cec87717b32206619 (diff)
Fix DSP::process_map() plugin-pin I/O map handing
The previous approach failed in case where PluginInsert uses no-inplace buffers with a linear map. Since buffers are replicated up to a total of number of all (inputs + outputs), the number of output buffers could not be determined. There was insufficient information using the I/O map alone. With a known number of outputs processing and applying the i/o map is also a lot easier and faster. This break the API of process_map().
Diffstat (limited to 'libs/ardour/convolver.cc')
-rw-r--r--libs/ardour/convolver.cc2
1 files changed, 1 insertions, 1 deletions
diff --git a/libs/ardour/convolver.cc b/libs/ardour/convolver.cc
index 093921a055..15fd1a1abb 100644
--- a/libs/ardour/convolver.cc
+++ b/libs/ardour/convolver.cc
@@ -174,7 +174,7 @@ void
Convolution::run (BufferSet& bufs, ChanMapping const& in_map, ChanMapping const& out_map, pframes_t n_samples, samplecnt_t offset)
{
if (!ready ()) {
- process_map (&bufs, in_map, out_map, n_samples, offset, DataType::AUDIO);
+ process_map (&bufs, ChanCount (DataType::AUDIO, _n_outputs), in_map, out_map, n_samples, offset);
return;
}