Mercurial > hg > svcore
diff transform/FeatureExtractionPluginTransform.cpp @ 66:7afcfe666910
* Modify to use Vamp SDK for proper feature extraction plugins.
Requires that the vamp-plugin-sdk directory tree be present below
plugin/ (it's separate in Subversion).
author | Chris Cannam |
---|---|
date | Fri, 31 Mar 2006 15:56:35 +0000 |
parents | 4d59dc469b0f |
children | eb530055ed55 |
line wrap: on
line diff
--- a/transform/FeatureExtractionPluginTransform.cpp Thu Mar 30 15:00:22 2006 +0000 +++ b/transform/FeatureExtractionPluginTransform.cpp Fri Mar 31 15:56:35 2006 +0000 @@ -17,7 +17,8 @@ #include "FeatureExtractionPluginTransform.h" #include "plugin/FeatureExtractionPluginFactory.h" -#include "plugin/FeatureExtractionPlugin.h" +#include "plugin/PluginXml.h" +#include "vamp-sdk/Plugin.h" #include "base/Model.h" #include "model/SparseOneDimensionalModel.h" @@ -58,10 +59,10 @@ } if (configurationXml != "") { - m_plugin->setParametersFromXml(configurationXml); + PluginXml(m_plugin).setParametersFromXml(configurationXml); } - FeatureExtractionPlugin::OutputList outputs = + Vamp::Plugin::OutputList outputs = m_plugin->getOutputDescriptors(); if (outputs.empty()) { @@ -73,7 +74,7 @@ for (size_t i = 0; i < outputs.size(); ++i) { if (outputName == "" || outputs[i].name == outputName.toStdString()) { m_outputFeatureNo = i; - m_descriptor = new FeatureExtractionPlugin::OutputDescriptor + m_descriptor = new Vamp::Plugin::OutputDescriptor (outputs[i]); break; } @@ -106,17 +107,17 @@ switch (m_descriptor->sampleType) { - case FeatureExtractionPlugin::OutputDescriptor::VariableSampleRate: + case Vamp::Plugin::OutputDescriptor::VariableSampleRate: if (m_descriptor->sampleRate != 0.0) { modelResolution = size_t(modelRate / m_descriptor->sampleRate + 0.001); } break; - case FeatureExtractionPlugin::OutputDescriptor::OneSamplePerStep: + case Vamp::Plugin::OutputDescriptor::OneSamplePerStep: modelResolution = m_plugin->getPreferredStepSize(); break; - case FeatureExtractionPlugin::OutputDescriptor::FixedSampleRate: + case Vamp::Plugin::OutputDescriptor::FixedSampleRate: modelRate = m_descriptor->sampleRate; break; } @@ -130,7 +131,7 @@ // We don't have a sparse 3D model m_descriptor->sampleType == - FeatureExtractionPlugin::OutputDescriptor::VariableSampleRate) { + Vamp::Plugin::OutputDescriptor::VariableSampleRate) { SparseTimeValueModel *model = new SparseTimeValueModel (modelRate, modelResolution, minValue, maxValue, false); @@ -239,11 +240,11 @@ } } - FeatureExtractionPlugin::FeatureSet features = m_plugin->process - (buffers, RealTime::frame2RealTime(blockFrame, sampleRate)); + Vamp::Plugin::FeatureSet features = m_plugin->process + (buffers, Vamp::RealTime::frame2RealTime(blockFrame, sampleRate)); for (size_t fi = 0; fi < features[m_outputFeatureNo].size(); ++fi) { - FeatureExtractionPlugin::Feature feature = + Vamp::Plugin::Feature feature = features[m_outputFeatureNo][fi]; addFeature(blockFrame, feature); } @@ -256,10 +257,10 @@ blockFrame += stepSize; } - FeatureExtractionPlugin::FeatureSet features = m_plugin->getRemainingFeatures(); + Vamp::Plugin::FeatureSet features = m_plugin->getRemainingFeatures(); for (size_t fi = 0; fi < features[m_outputFeatureNo].size(); ++fi) { - FeatureExtractionPlugin::Feature feature = + Vamp::Plugin::Feature feature = features[m_outputFeatureNo][fi]; addFeature(blockFrame, feature); } @@ -270,7 +271,7 @@ void FeatureExtractionPluginTransform::addFeature(size_t blockFrame, - const FeatureExtractionPlugin::Feature &feature) + const Vamp::Plugin::Feature &feature) { size_t inputRate = m_input->getSampleRate(); @@ -285,7 +286,7 @@ size_t frame = blockFrame; if (m_descriptor->sampleType == - FeatureExtractionPlugin::OutputDescriptor::VariableSampleRate) { + Vamp::Plugin::OutputDescriptor::VariableSampleRate) { if (!feature.hasTimestamp) { std::cerr @@ -294,16 +295,16 @@ << std::endl; return; } else { - frame = RealTime::realTime2Frame(feature.timestamp, inputRate); + frame = Vamp::RealTime::realTime2Frame(feature.timestamp, inputRate); } } else if (m_descriptor->sampleType == - FeatureExtractionPlugin::OutputDescriptor::FixedSampleRate) { + Vamp::Plugin::OutputDescriptor::FixedSampleRate) { if (feature.hasTimestamp) { //!!! warning: sampleRate may be non-integral - frame = RealTime::realTime2Frame(feature.timestamp, - m_descriptor->sampleRate); + frame = Vamp::RealTime::realTime2Frame(feature.timestamp, + m_descriptor->sampleRate); } else { frame = m_output->getEndFrame() + 1; } @@ -317,7 +318,7 @@ } else if (valueCount == 1 || m_descriptor->sampleType == - FeatureExtractionPlugin::OutputDescriptor::VariableSampleRate) { + Vamp::Plugin::OutputDescriptor::VariableSampleRate) { float value = 0.0; if (feature.values.size() > 0) value = feature.values[0]; @@ -353,7 +354,7 @@ } else if (valueCount == 1 || m_descriptor->sampleType == - FeatureExtractionPlugin::OutputDescriptor::VariableSampleRate) { + Vamp::Plugin::OutputDescriptor::VariableSampleRate) { SparseTimeValueModel *model = getOutput<SparseTimeValueModel>(); if (!model) return;