diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc index 6a7ddde48b..0282c3b032 100644 --- a/libs/ardour/route.cc +++ b/libs/ardour/route.cc @@ -511,18 +511,14 @@ Route::process_output_buffers (BufferSet& bufs, for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) { - if (boost::dynamic_pointer_cast (*i)) { - break; - } - - if (boost::dynamic_pointer_cast (*i) && meter_already_run) { + if (meter_already_run && boost::dynamic_pointer_cast (*i)) { /* don't ::run() the meter, otherwise it will have its previous peak corrupted */ continue; } #ifndef NDEBUG /* if it has any inputs, make sure they match */ - if ((*i)->input_streams() != ChanCount::ZERO) { + if (boost::dynamic_pointer_cast (*i) == 0 && (*i)->input_streams() != ChanCount::ZERO) { if (bufs.count() != (*i)->input_streams()) { cerr << _name << " bufs = " << bufs.count() << " input for " << (*i)->name() << " = " << (*i)->input_streams()