Mercurial > hg > svcore
diff transform/FeatureExtractionModelTransformer.h @ 876:47aa3aeb687b tonioni
For outputs with unknown bin count or multiple bins with variable sample rate, create additional output models for bins beyond the first
author | Chris Cannam |
---|---|
date | Wed, 29 Jan 2014 09:31:22 +0000 |
parents | 13803edd513d |
children | b109b88bfa85 |
line wrap: on
line diff
--- a/transform/FeatureExtractionModelTransformer.h Tue Jan 28 18:52:22 2014 +0000 +++ b/transform/FeatureExtractionModelTransformer.h Wed Jan 29 09:31:22 2014 +0000 @@ -23,8 +23,10 @@ #include <vamp-hostsdk/Plugin.h> #include <iostream> +#include <map> class DenseTimeValueModel; +class SparseTimeValueModel; class FeatureExtractionModelTransformer : public ModelTransformer { @@ -50,9 +52,17 @@ Vamp::Plugin *m_plugin; std::vector<Vamp::Plugin::OutputDescriptor *> m_descriptors; // per transform std::vector<int> m_fixedRateFeatureNos; // to assign times to FixedSampleRate features - std::vector<int> m_outputNos; + std::vector<int> m_outputNos; // list of plugin output indexes required for this group of transforms - void createOutputModel(int n); + void createOutputModels(int n); + + std::map<int, bool> m_needAdditionalModels; // transformNo -> necessity + typedef std::map<int, std::map<int, SparseTimeValueModel *> > AdditionalModelMap; + AdditionalModelMap m_additionalModels; + SparseTimeValueModel *getAdditionalModel(int transformNo, int binNo); + + // ModelTransformer method, retrieve the additional models + Models getAdditionalOutputModels(); void addFeature(int n, size_t blockFrame,