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
|
/* Note that we've already required that plugins
|
||||||
be able to handle in-place processing.
|
be able to handle in-place processing.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -145,9 +145,11 @@ PortSet::port(DataType type, size_t n) const
|
||||||
return port(n);
|
return port(n);
|
||||||
} else {
|
} else {
|
||||||
const PortVec& v = _ports[type];
|
const PortVec& v = _ports[type];
|
||||||
assert(n < v.size());
|
if (n < v.size()) {
|
||||||
return v[n];
|
return v[n];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return boost::shared_ptr<Port>();
|
||||||
}
|
}
|
||||||
|
|
||||||
boost::shared_ptr<AudioPort>
|
boost::shared_ptr<AudioPort>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user