diff runner/FeatureExtractionManager.h @ 110:ca565b18ba3e multiplex

Merge from default branch
author Chris Cannam
date Thu, 02 Oct 2014 14:54:48 +0100
parents de76b2df518f 78a7c77ba432
children 0c2d8c945bbf
line wrap: on
line diff
--- a/runner/FeatureExtractionManager.h	Thu Oct 02 08:16:42 2014 +0100
+++ b/runner/FeatureExtractionManager.h	Thu Oct 02 14:54:48 2014 +0100
@@ -83,7 +83,17 @@
     typedef map<Transform, vector<FeatureWriter *> > TransformWriterMap;
     typedef map<Vamp::Plugin *, TransformWriterMap> PluginMap;
     PluginMap m_plugins;
-        
+
+    // When we run plugins, we want to run them in a known order so as
+    // to get the same results on each run of Sonic Annotator with the
+    // same transforms. But if we just iterate through our PluginMap,
+    // we get them in an arbitrary order based on pointer
+    // address. This vector provides an underlying order for us. Note
+    // that the TransformWriterMap is consistently ordered (because
+    // the key is a Transform which has a proper ordering) so using
+    // this gives us a consistent order across the whole PluginMap
+    vector<Vamp::Plugin *> m_orderedPlugins;
+
     // And a map back from transforms to their plugins.  Note that
     // this is keyed by transform, not transform ID -- two differently
     // configured transforms with the same ID must use different