我有一个 C++ 库,处理 DAB 数据的读取和处理(非常大,多线程)我正在为此编写(尝试编写)一个 Python 接口。该接口包含一些回调,一个用于音频。那个是从库中调用的,参数是带有 PCM 样本、样本数量和采样率的 C 数组。要将数据“传输”到 Python 接口,C 数组是“Python”-ed,然后 C 回调调用 Python 函数(其引用在前面传递)
问题是我可能做错了什么,因为库 - 当从 Python 调用时 - 在 PyArray_SimpleNewFromData 调用时崩溃。对我来说 - Python 中的新手 - 似乎缺少包含 PyArray_SimpleNewFromData 实现(实际上似乎是宏)的 C 库(错误始终是分段违规。
如果是这样,是否有我缺少的图书馆(以及在哪里可以找到它?)
我的系统:Fedora 25、64b Python 3.5
void callback_audio (int16_t *b, int size, int rate) {
PyObject *arglist;
PyObject *result;
PyObject *theArray;
PyGILState_STATE gstate;
npy_intp dims [1];
dims [0] = size;
if (size == 0)
return;
gstate = PyGILState_Ensure ();
theArray = PyArray_SimpleNewFromData (1, dims, NPY_SHORT, (void *)b);
arglist = Py_BuildValue ("Oh", theArray, rate);
result = PyEval_CallObject (callbackAudio, arglist);
Py_DECREF (arglist);
Py_DECREF (theArray);
PyGILState_Release (gstate);
}
任何帮助表示赞赏
谢谢