changeset 60:9f2a6d843639

Add error if plugin has fixed sample type but no sample rate
author Chris Cannam
date Fri, 04 Sep 2015 13:48:51 +0100
parents 6732dd5e7139
children c7fd03f5ae02 247a0c471a51
files .hgsubstate TestOutputs.cpp
diffstat 2 files changed, 12 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Thu Sep 03 14:45:31 2015 +0100
+++ b/.hgsubstate	Fri Sep 04 13:48:51 2015 +0100
@@ -1,1 +1,1 @@
-c42aeb56d8288001ff45d6f00594e5f5b1e8f3de vamp-plugin-sdk
+1522e2f6d7005e094b56caebc91e181cbbf76296 vamp-plugin-sdk
--- a/TestOutputs.cpp	Thu Sep 03 14:45:31 2015 +0100
+++ b/TestOutputs.cpp	Fri Sep 04 13:48:51 2015 +0100
@@ -120,14 +120,24 @@
     auto_ptr<Plugin> p(PluginLoader::getInstance()->loadPlugin
                        (key, rate, PluginLoader::ADAPT_ALL_SAFE));
 
+    Results r;
     Plugin::FeatureSet f;
-    Results r;
     float **data = 0;
     size_t channels = 0;
     size_t step = 0, block = 0;
     size_t count = 100;
 
     if (!initDefaults(p.get(), channels, step, block, r)) return r;
+
+    Plugin::OutputList outputs = p->getOutputDescriptors();
+    for (int i = 0; i < (int)outputs.size(); ++i) {
+        if (outputs[i].sampleType == Plugin::OutputDescriptor::FixedSampleRate &&
+            outputs[i].sampleRate == 0.f) {
+            r.push_back(error("Plugin output \"" + outputs[i].identifier +
+                              "\" has FixedSampleRate but gives sample rate as 0"));
+        }
+    }
+
     if (!data) data = createTestAudio(channels, block, count);
     for (size_t i = 0; i < count; ++i) {
 #ifdef __GNUC__
@@ -145,7 +155,6 @@
     appendFeatures(f, fs);
     if (data) destroyTestAudio(data, channels);
 
-    Plugin::OutputList outputs = p->getOutputDescriptors();
     for (Plugin::FeatureSet::const_iterator i = f.begin();
          i != f.end(); ++i) {
         const Plugin::OutputDescriptor &o = outputs[i->first];