changeset 134:565bc0c2295d

Merge
author Chris Cannam
date Mon, 13 Oct 2014 10:16:20 +0100
parents 2b357fab3f51 (diff) d012c0dafa36 (current diff)
children caf05503bf42
files .hgsubstate
diffstat 2 files changed, 28 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/.hgsubstate	Thu Oct 09 14:48:43 2014 +0100
+++ b/.hgsubstate	Mon Oct 13 10:16:20 2014 +0100
@@ -1,3 +1,3 @@
 d16f0fd6db6104d87882bc43788a3bb1b0f8c528 dataquay
 879bdc878826bebec67130326f99397c430419b1 sv-dependency-builds
-60e2927b1475b752d14615da9516d893332878a3 svcore
+952005e252668fecdee23fed6227c52ba28cf0a3 svcore
--- a/runner/FeatureExtractionManager.cpp	Thu Oct 09 14:48:43 2014 +0100
+++ b/runner/FeatureExtractionManager.cpp	Mon Oct 13 10:16:20 2014 +0100
@@ -340,9 +340,31 @@
             }
         }
 
+        if (transform.getPluginVersion() != "") {
+            if (QString("%1").arg(plugin->getPluginVersion())
+                != transform.getPluginVersion()) {
+                cerr << "ERROR: Transform specifies version "
+                     << transform.getPluginVersion()
+                     << " of plugin \"" << plugin->getIdentifier()
+                     << "\", but installed plugin is version "
+                     << plugin->getPluginVersion()
+                     << endl;
+                return false;
+            }
+        }
+
         if (transform.getOutput() == "") {
             transform.setOutput
                 (plugin->getOutputDescriptors()[0].identifier.c_str());
+        } else {
+            if (m_pluginOutputs[plugin].find
+                (transform.getOutput().toLocal8Bit().data()) ==
+                m_pluginOutputs[plugin].end()) {
+                cerr << "ERROR: Transform requests nonexistent plugin output \""
+                     << transform.getOutput()
+                     << "\"" << endl;
+                return false;
+            }
         }
 
         m_transformPluginMap[transform] = plugin;
@@ -652,19 +674,20 @@
             if (!haveExtents || startFrame + duration > latestEndFrame) {
                 latestEndFrame = startFrame + duration;
             }
-
+/*
             cerr << "startFrame for transform " << startFrame << endl;
             cerr << "duration for transform " << duration << endl;
             cerr << "earliestStartFrame becomes " << earliestStartFrame << endl;
             cerr << "latestEndFrame becomes " << latestEndFrame << endl;
-
+*/
             haveExtents = true;
 
             string outputId = transform.getOutput().toStdString();
             if (m_pluginOutputs[plugin].find(outputId) ==
                 m_pluginOutputs[plugin].end()) {
-                //!!! throw?
-                cerr << "WARNING: Nonexistent plugin output \"" << outputId << "\" requested for transform \""
+                // We shouldn't actually reach this point:
+                // addFeatureExtractor tests whether the output exists
+                cerr << "ERROR: Nonexistent plugin output \"" << outputId << "\" requested for transform \""
                      << transform.getIdentifier().toStdString() << "\", ignoring this transform"
                      << endl;
 /*
@@ -776,14 +799,12 @@
                  ti != pi->second.end(); ++ti) {
                 int startFrame = RealTime::realTime2Frame
                     (ti->first.getStartTime(), m_sampleRate);
-                cerr << "plugin " << plugin << " transform " << &(ti->first) << " start frame " << startFrame << " my frame " << i << endl;
                 if (i >= startFrame || i + m_blockSize > startFrame) {
                     inRange = true;
                     break;
                 }
             }
             if (!inRange) {
-                cerr << "not in range! plugging on" << endl;
                 continue;
             }