optimize peak calculation of silent buffers
authorRobin Gareus <robin@gareus.org>
Mon, 30 Dec 2013 13:26:09 +0000 (14:26 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 30 Dec 2013 13:26:09 +0000 (14:26 +0100)
libs/ardour/meter.cc

index 5310fd747bbf5e0ac0e4bb592122e13c94b61eff..ec736fef69c91cbf50b417ddad19f966e160be09 100644 (file)
@@ -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);
                }