summaryrefslogtreecommitdiff
path: root/libs/vamp-plugins
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-02-20 20:47:13 +0100
committerRobin Gareus <robin@gareus.org>2016-02-20 20:47:13 +0100
commit43d3b4656a085011475cd1f6cd60f0beaad687ff (patch)
tree95dc9b3730be67e3095a08b677b2ccd4990b25a3 /libs/vamp-plugins
parent67d99a3c5bebabfa0fd9a2fac57e33e4c52e7a68 (diff)
add an OOM check.
Diffstat (limited to 'libs/vamp-plugins')
-rw-r--r--libs/vamp-plugins/TruePeak.cpp14
-rw-r--r--libs/vamp-plugins/TruePeak.h2
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: