summaryrefslogtreecommitdiff
path: root/libs/ardour/meter.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2013-12-30 14:26:09 +0100
committerRobin Gareus <robin@gareus.org>2013-12-30 14:26:09 +0100
commitc284823413c31f9fba9ee4f39f501b1d40f5a67b (patch)
tree89583f09b53aa6a2d54055e9b5872bcb0a7fc784 /libs/ardour/meter.cc
parenta3ba6163b3cd7c593e56aaea02beeb7ff675b7d4 (diff)
optimize peak calculation of silent buffers
Diffstat (limited to 'libs/ardour/meter.cc')
-rw-r--r--libs/ardour/meter.cc6
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);
}