X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Faudio_filter.cc;h=96af75674cc1369d72f781b25078e5761ad2d495;hb=9a97c1b4116d7fb80e8ab145c0cc738dbf14d617;hp=281ac966831c8e80de73609a96a12132a763d67a;hpb=2d4e8c5f69cc694625ad95dcee554499605f823b;p=dcpomatic.git diff --git a/src/lib/audio_filter.cc b/src/lib/audio_filter.cc index 281ac9668..96af75674 100644 --- a/src/lib/audio_filter.cc +++ b/src/lib/audio_filter.cc @@ -30,11 +30,11 @@ using std::min; using std::shared_ptr; -/** @return array of floats which the caller must destroy with delete[] */ -float * +std::vector AudioFilter::sinc_blackman (float cutoff, bool invert) const { - float* ir = new float[_M + 1]; + auto ir = std::vector(); + ir.reserve(_M + 1); /* Impulse response */ @@ -73,12 +73,6 @@ AudioFilter::sinc_blackman (float cutoff, bool invert) const } -AudioFilter::~AudioFilter () -{ - delete[] _ir; -} - - shared_ptr AudioFilter::run (shared_ptr in) { @@ -147,15 +141,11 @@ BandPassAudioFilter::BandPassAudioFilter (float transition_bandwidth, float lowe auto lpf = sinc_blackman (lower, false); auto hpf = sinc_blackman (higher, true); - delete[] _ir; - _ir = new float[_M + 1]; + _ir.reserve (_M + 1); for (int i = 0; i <= _M; ++i) { _ir[i] = lpf[i] + hpf[i]; } - delete[] lpf; - delete[] hpf; - /* We now have a band-stop, so invert for band-pass */ for (int i = 0; i <= _M; ++i) { _ir[i] = -_ir[i];