Mercurial > hg > vampy-host
comparison PyPluginObject.cpp @ 41:55fcd0e3e513
Fix handling of 2D NumPy arrays
author | Chris Cannam |
---|---|
date | Wed, 26 Nov 2014 18:08:53 +0000 |
parents | fa3f80d4e340 |
children | 9dd449a19004 |
comparison
equal
deleted
inserted
replaced
40:fa3f80d4e340 | 41:55fcd0e3e513 |
---|---|
390 if (conv.error) { | 390 if (conv.error) { |
391 PyErr_SetString(PyExc_TypeError, conv.getError().str().c_str()); | 391 PyErr_SetString(PyExc_TypeError, conv.getError().str().c_str()); |
392 return data; | 392 return data; |
393 } | 393 } |
394 | 394 |
395 if ((int)data.size() != channels) { | |
396 // cerr << "Wrong number of channels: got " << data.size() << ", expected " << channels << endl; | |
397 PyErr_SetString(PyExc_TypeError, "Wrong number of channels"); | |
398 return vector<vector<float> >(); | |
399 } | |
400 | |
395 } else { | 401 } else { |
396 | 402 |
397 if (!PyList_Check(pyBuffer)) { | 403 if (!PyList_Check(pyBuffer)) { |
398 PyErr_SetString(PyExc_TypeError, "List of NumPy Array required for process input."); | 404 PyErr_SetString(PyExc_TypeError, "List of NumPy Array required for process input."); |
399 return data; | 405 return data; |
400 } | 406 } |
401 | 407 |
402 if (PyList_GET_SIZE(pyBuffer) != channels) { | 408 if (PyList_GET_SIZE(pyBuffer) != channels) { |
403 cerr << "Wrong number of channels: got " << PyList_GET_SIZE(pyBuffer) << ", expected " << channels << endl; | 409 // cerr << "Wrong number of channels: got " << PyList_GET_SIZE(pyBuffer) << ", expected " << channels << endl; |
404 PyErr_SetString(PyExc_TypeError, "Wrong number of channels"); | 410 PyErr_SetString(PyExc_TypeError, "Wrong number of channels"); |
405 return data; | 411 return data; |
406 } | 412 } |
407 | 413 |
408 for (int c = 0; c < channels; ++c) { | 414 for (int c = 0; c < channels; ++c) { |
409 PyObject *cbuf = PyList_GET_ITEM(pyBuffer, c); | 415 PyObject *cbuf = PyList_GET_ITEM(pyBuffer, c); |
410 data.push_back(conv.PyValue_To_FloatVector(cbuf)); | 416 data.push_back(conv.PyValue_To_FloatVector(cbuf)); |
411 } | 417 } |
412 | 418 } |
413 for (int c = 0; c < channels; ++c) { | 419 |
414 if ((int)data[c].size() != blockSize) { | 420 for (int c = 0; c < channels; ++c) { |
415 cerr << "Wrong number of samples on channel " << c << ": expected " << blockSize << " (plugin's block size), got " << data[c].size() << endl; | 421 if ((int)data[c].size() != blockSize) { |
416 PyErr_SetString(PyExc_TypeError, "Wrong number of samples"); | 422 // cerr << "Wrong number of samples on channel " << c << ": expected " << blockSize << " (plugin's block size), got " << data[c].size() << endl; |
417 return vector<vector<float> >(); | 423 PyErr_SetString(PyExc_TypeError, "Wrong number of samples"); |
418 } | 424 return vector<vector<float> >(); |
419 } | 425 } |
420 } | 426 } |
421 | 427 |
422 return data; | 428 return data; |
423 } | 429 } |