diff options
author | Robin Gareus <robin@gareus.org> | 2016-02-20 20:47:13 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-02-20 20:47:13 +0100 |
commit | 43d3b4656a085011475cd1f6cd60f0beaad687ff (patch) | |
tree | 95dc9b3730be67e3095a08b677b2ccd4990b25a3 /libs/vamp-plugins | |
parent | 67d99a3c5bebabfa0fd9a2fac57e33e4c52e7a68 (diff) |
add an OOM check.
Diffstat (limited to 'libs/vamp-plugins')
-rw-r--r-- | libs/vamp-plugins/TruePeak.cpp | 14 | ||||
-rw-r--r-- | libs/vamp-plugins/TruePeak.h | 2 |
2 files changed, 11 insertions, 5 deletions
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: |