13
0

provide plugins with all available buffers.

e.g. Audio in -> Midi out plugins (on an audio-track).
Midi-buffers do exist in the route but no corresponding
(physical) Input port-buffer exists and ardour crashed.

Now, the plugin itself still only accesses the mapped ports
(ChanMapping), but the mapped buffers are at most
"processor_max_streams" and at least the required
in+out buffers for the plugin.
This commit is contained in:
Robin Gareus 2014-05-06 23:34:04 +02:00
parent fbbf911229
commit 6142c814bf
2 changed files with 7 additions and 2 deletions

View File

@ -352,6 +352,9 @@ PluginInsert::connect_and_run (BufferSet& bufs, pframes_t nframes, framecnt_t of
}
}
bufs.set_count(ChanCount::max(bufs.count(), in_streams));
bufs.set_count(ChanCount::max(bufs.count(), out_streams));
/* Note that we've already required that plugins
be able to handle in-place processing.
*/

View File

@ -145,9 +145,11 @@ PortSet::port(DataType type, size_t n) const
return port(n);
} else {
const PortVec& v = _ports[type];
assert(n < v.size());
return v[n];
if (n < v.size()) {
return v[n];
}
}
return boost::shared_ptr<Port>();
}
boost::shared_ptr<AudioPort>