Mercurial > hg > vampy-host
changeset 66:f0e2a8421797
Handle getRemainingFeatures as well, and return dict only if >1 output (i.e. treat default case and explicit request of 1 output similarly)
author | Chris Cannam |
---|---|
date | Wed, 14 Jan 2015 11:55:20 +0000 |
parents | c5106210370e |
children | 6f6a54963ce8 |
files | test/test_process.py vamp/__init__.py |
diffstat | 2 files changed, 31 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/test/test_process.py Wed Jan 14 11:36:02 2015 +0000 +++ b/test/test_process.py Wed Jan 14 11:55:20 2015 +0000 @@ -3,11 +3,18 @@ import numpy as np testPluginKey = "vamp-test-plugin:vamp-test-plugin" +testPluginKeyFreq = "vamp-test-plugin:vamp-test-plugin-freq" rate = 44100 def test_process(): buf = np.zeros(10240) - results = vamp.process(buf, rate, testPluginKey) + results = vamp.process(buf, rate, testPluginKey, {}, [ "input-timestamp" ]) print("results = " + str(list(results))) return True + +def test_process_freq(): + buf = np.zeros(10240) + results = vamp.process(buf, rate, testPluginKeyFreq, {}, [ "input-timestamp" ]) + print("results = " + str(list(results))) + return True
--- a/vamp/__init__.py Wed Jan 14 11:36:02 2015 +0000 +++ b/vamp/__init__.py Wed Jan 14 11:55:20 2015 +0000 @@ -38,6 +38,11 @@ for o in outputs: assert o in outIndices + if outputs == []: + outputs = [plugOuts[o]["identifier"]] + + singleOutput = (len(outputs) == 1) + stepSize = plug.getPreferredStepSize() blockSize = plug.getPreferredBlockSize() if blockSize == 0: @@ -55,15 +60,24 @@ for f in ff: results = plug.processBlock(f, vampyhost.frame2RealTime(fi, samplerate)) # results is a dict mapping output number -> list of feature dicts - if outputs == []: - if 0 in results: - for r in results[0]: - yield r - else: - for o in outputs: - if outIndices[o] in results: - for r in results[outIndices[o]]: + for o in outputs: + if outIndices[o] in results: + for r in results[outIndices[o]]: + if singleOutput: + yield r + else: yield { o: r } fi = fi + stepSize - ##!!! now getRemainingFeatures + results = plug.getRemainingFeatures() + for o in outputs: + if outIndices[o] in results: + for r in results[outIndices[o]]: + if singleOutput: + yield r + else: + yield { o: r } + + plug.unload() + +