1

我有一个 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);

}

任何帮助表示赞赏

谢谢

4

0 回答 0