Optimisation; it is much cheaper to run UnknownProcessor on the

rare occasions that it exists rather than dcasting every processor
to check for it.  Also put the dcast of PeakMeter off if possible.


git-svn-id: svn://localhost/ardour2/branches/3.0@11309 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Carl Hetherington 2012-01-23 14:53:25 +00:00
parent 8e98352b6c
commit 61c57e7c4d
1 changed files with 2 additions and 6 deletions

View File

@ -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<UnknownProcessor> (*i)) {
break;
}
if (boost::dynamic_pointer_cast<PeakMeter> (*i) && meter_already_run) {
if (meter_already_run && boost::dynamic_pointer_cast<PeakMeter> (*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<UnknownProcessor> (*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()