# HG changeset patch # User Chris Cannam # Date 1328551318 0 # Node ID 9c108ad04e9bcdaabfeae4a3319369d78c8be6c1 # Parent d8b5d8c39813d49263bc117e5cc65f5a8153e3b1 Test process(). Now crashes diff -r d8b5d8c39813 -r 9c108ad04e9b org/vamp_plugins/RealTime.java --- a/org/vamp_plugins/RealTime.java Mon Feb 06 17:35:26 2012 +0000 +++ b/org/vamp_plugins/RealTime.java Mon Feb 06 18:01:58 2012 +0000 @@ -6,5 +6,14 @@ public int nsec; RealTime(int s, int n) { sec = s; nsec = n; } + + static RealTime frame2RealTime(int frame, int sampleRate) { + //!!! warning! doesn't support -ve frame [unlike Vamp SDK version] + int sec = frame / sampleRate; + frame -= sec * sampleRate; + int nsec = (int)((((double)frame * 1000000.0) / sampleRate) * 1000.0); + return new RealTime(sec, nsec); + } } + diff -r d8b5d8c39813 -r 9c108ad04e9b org/vamp_plugins/test.java --- a/org/vamp_plugins/test.java Mon Feb 06 17:35:26 2012 +0000 +++ b/org/vamp_plugins/test.java Mon Feb 06 18:01:58 2012 +0000 @@ -42,10 +42,22 @@ System.out.println(i + ": " + outputs[i].identifier + " (sample type: " + outputs[i].sampleType + ")"); } - boolean b = p.initialise(1, 512, 1024); + boolean b = p.initialise(1, 0, 1024); System.out.println("Plugin initialise returned " + b); - //!!! todo: test process! + float[][] buffers = new float[1][1024]; + for (int block = 0; block < 1024; ++block) { + for (int i = 0; i < 1024; ++i) { + buffers[0][i] = 0.0f; + } + if (block == 512) { + buffers[0][0] = 1.0f; + } + RealTime timestamp = RealTime.frame2RealTime(block * 1024, 44100); + TreeMap> + features = p.process(buffers, timestamp); + System.out.println("Plugin process returned features on " + features.size() + " different output(s)"); + } TreeMap> features = p.getRemainingFeatures(); diff -r d8b5d8c39813 -r 9c108ad04e9b src/PluginLoader.cpp --- a/src/PluginLoader.cpp Mon Feb 06 17:35:26 2012 +0000 +++ b/src/PluginLoader.cpp Mon Feb 06 18:01:58 2012 +0000 @@ -20,7 +20,7 @@ { PluginLoader *inst = getHandle(env, obj); const char *kstr = env->GetStringUTFChars(key, 0); - Plugin *p = inst->loadPlugin(kstr, rate); + Plugin *p = inst->loadPlugin(kstr, rate, PluginLoader::ADAPT_ALL); //!!! args! env->ReleaseStringUTFChars(key, kstr); return (jlong)p; }