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:
parent
fbbf911229
commit
6142c814bf
|
@ -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.
|
||||
*/
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue
Block a user