diff options
author | Robin Gareus <robin@gareus.org> | 2013-12-30 14:26:09 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-12-30 14:26:09 +0100 |
commit | c284823413c31f9fba9ee4f39f501b1d40f5a67b (patch) | |
tree | 89583f09b53aa6a2d54055e9b5872bcb0a7fc784 /libs/ardour/meter.cc | |
parent | a3ba6163b3cd7c593e56aaea02beeb7ff675b7d4 (diff) |
optimize peak calculation of silent buffers
Diffstat (limited to 'libs/ardour/meter.cc')
-rw-r--r-- | libs/ardour/meter.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/libs/ardour/meter.cc b/libs/ardour/meter.cc index 5310fd747b..ec736fef69 100644 --- a/libs/ardour/meter.cc +++ b/libs/ardour/meter.cc @@ -107,7 +107,11 @@ PeakMeter::run (BufferSet& bufs, framepos_t /*start_frame*/, framepos_t /*end_fr // Meter audio in to the rest of the peaks for (uint32_t i = 0; i < n_audio; ++i, ++n) { - _peak_signal[n] = compute_peak (bufs.get_audio(i).data(), nframes, _peak_signal[n]); + if (bufs.get_audio(i).silent()) { + _peak_signal[n] = .0f; + } else { + _peak_signal[n] = compute_peak (bufs.get_audio(i).data(), nframes, _peak_signal[n]); + } if (_meter_type & (MeterKrms | MeterK20 | MeterK14 | MeterK12)) { _kmeter[i]->process(bufs.get_audio(i).data(), nframes); } |