13
0

PI: Leave unconnected buffers when split processing

Otherwise a stereo plugin on a mono bus will still
have two valid input buffers, and a map saying so
during process().
This commit is contained in:
Robin Gareus 2023-03-17 05:48:32 +01:00
parent f8557cc00f
commit 05a13e151e
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -897,10 +897,10 @@ PluginInsert::connect_and_run (BufferSet& bufs, samplepos_t start, samplepos_t e
} }
if (_match.method == Split && !no_inplace) { if (_match.method == Split && !no_inplace) {
// TODO: also use this optimization if one source-buffer /* This allows in-place processing. Copying a single source-port
// feeds _all_ *connected* inputs. * to all the input pins of a plugin, using a dedicated buffer for each.
// currently this is *first* buffer to all only -- * see PluginInsert::check_inplace
// see PluginInsert::check_inplace */
for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) { for (DataType::iterator t = DataType::begin(); t != DataType::end(); ++t) {
if (_configured_internal.get (*t) == 0) { if (_configured_internal.get (*t) == 0) {
continue; continue;
@ -917,8 +917,6 @@ PluginInsert::connect_and_run (BufferSet& bufs, samplepos_t start, samplepos_t e
} }
} }
} }
/* the copy operation produces a linear monotonic input map */
in_map[0] = ChanMapping (natural_input_streams ());
} }
bufs.set_count(ChanCount::max(bufs.count(), _configured_internal)); bufs.set_count(ChanCount::max(bufs.count(), _configured_internal));