# HG changeset patch # User Chris Cannam # Date 1441370931 -3600 # Node ID 9f2a6d843639dd50f96c31581412f2a3253cfd6b # Parent 6732dd5e713933399ad2ea1a15c3b16730d8b3cb Add error if plugin has fixed sample type but no sample rate diff -r 6732dd5e7139 -r 9f2a6d843639 .hgsubstate --- 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 diff -r 6732dd5e7139 -r 9f2a6d843639 TestOutputs.cpp --- 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 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];