mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-08 15:54:57 +01:00
Fix crash when running an analysis of a plugin with MIDI IO.
git-svn-id: svn://localhost/ardour2/branches/3.0@7889 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
7d2cd8ed5c
commit
d86000efd0
2 changed files with 9 additions and 12 deletions
|
|
@ -239,19 +239,14 @@ PluginEqGui::set_buffer_size(uint32_t size, uint32_t signal_size)
|
|||
_buffer_size = size;
|
||||
_signal_buffer_size = signal_size;
|
||||
|
||||
// These are for impulse analysis only, the signal analysis uses the actual
|
||||
// number of I/O's for the plugininsert
|
||||
uint32_t inputs = _plugin->get_info()->n_inputs.n_audio();
|
||||
uint32_t outputs = _plugin->get_info()->n_outputs.n_audio();
|
||||
ARDOUR::ChanCount count = ARDOUR::ChanCount::max (_plugin->get_info()->n_inputs, _plugin->get_info()->n_outputs);
|
||||
for (ARDOUR::DataType::iterator i = ARDOUR::DataType::begin(); i != ARDOUR::DataType::end(); ++i) {
|
||||
_bufferset.ensure_buffers (*i, count.get (*i), _buffer_size);
|
||||
_collect_bufferset.ensure_buffers (*i, count.get (*i), _buffer_size);
|
||||
}
|
||||
|
||||
// buffers for the signal analysis are ensured inside PluginInsert
|
||||
uint32_t n_chans = std::max(inputs, outputs);
|
||||
_bufferset.ensure_buffers(ARDOUR::DataType::AUDIO, n_chans, _buffer_size);
|
||||
_collect_bufferset.ensure_buffers(ARDOUR::DataType::AUDIO, n_chans, _buffer_size);
|
||||
|
||||
ARDOUR::ChanCount chanCount(ARDOUR::DataType::AUDIO, n_chans);
|
||||
_bufferset.set_count(chanCount);
|
||||
_collect_bufferset.set_count(chanCount);
|
||||
_bufferset.set_count (count);
|
||||
_collect_bufferset.set_count (count);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -215,6 +215,8 @@ BufferSet::get(DataType type, size_t i) const
|
|||
LV2EventBuffer&
|
||||
BufferSet::get_lv2_midi(bool input, size_t i)
|
||||
{
|
||||
assert (count().get(DataType::MIDI) > i);
|
||||
|
||||
MidiBuffer& mbuf = get_midi(i);
|
||||
LV2Buffers::value_type b = _lv2_buffers.at(i * 2 + (input ? 0 : 1));
|
||||
LV2EventBuffer* ebuf = b.second;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue