From 43d3b4656a085011475cd1f6cd60f0beaad687ff Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sat, 20 Feb 2016 20:47:13 +0100 Subject: add an OOM check. --- libs/vamp-plugins/TruePeak.cpp | 14 ++++++++++---- libs/vamp-plugins/TruePeak.h | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) (limited to 'libs/vamp-plugins') diff --git a/libs/vamp-plugins/TruePeak.cpp b/libs/vamp-plugins/TruePeak.cpp index 82c56c88f3..18f5a268dd 100644 --- a/libs/vamp-plugins/TruePeak.cpp +++ b/libs/vamp-plugins/TruePeak.cpp @@ -439,11 +439,14 @@ TruePeakdsp::reset () _p = 0; } -void +bool TruePeakdsp::init (float fsamp) { _src.setup(fsamp, fsamp * 4.0, 1, 24, 1.0); _buf = (float*) malloc(32768 * sizeof(float)); + if (!_buf) { + return false; + } /* q/d initialize */ float zero[8192]; @@ -455,6 +458,7 @@ TruePeakdsp::init (float fsamp) _src.out_count = 32768; _src.out_data = _buf; _src.process (); + return true; } } @@ -522,13 +526,15 @@ VampTruePeak::initialise(size_t channels, size_t stepSize, size_t blockSize) return false; } - if (blockSize > 8192) { + if (blockSize == 0 || blockSize > 8192) { return false; } - m_blockSize = blockSize; + if (!_meter.init (m_inputSampleRate)) { + return false; + } - _meter.init (m_inputSampleRate); + m_blockSize = blockSize; return true; } diff --git a/libs/vamp-plugins/TruePeak.h b/libs/vamp-plugins/TruePeak.h index 5e3ff9d2c2..ab832511e7 100644 --- a/libs/vamp-plugins/TruePeak.h +++ b/libs/vamp-plugins/TruePeak.h @@ -123,7 +123,7 @@ public: void read (float &m, float &p); void reset (void); - void init (float fsamp); + bool init (float fsamp); private: -- cgit v1.2.3