Fix the build for older macOS.
[dcpomatic.git] / src / lib / audio_filter.cc
index 281ac966831c8e80de73609a96a12132a763d67a..96af75674cc1369d72f781b25078e5761ad2d495 100644 (file)
@@ -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<float>
 AudioFilter::sinc_blackman (float cutoff, bool invert) const
 {
-       float* ir = new float[_M + 1];
+       auto ir = std::vector<float>();
+       ir.reserve(_M + 1);
 
        /* Impulse response */
 
@@ -73,12 +73,6 @@ AudioFilter::sinc_blackman (float cutoff, bool invert) const
 }
 
 
-AudioFilter::~AudioFilter ()
-{
-       delete[] _ir;
-}
-
-
 shared_ptr<AudioBuffers>
 AudioFilter::run (shared_ptr<const AudioBuffers> 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];