Обработка массива C в Python, сбой

У меня есть библиотека C ++, обрабатывающая чтение и обработку данных DAB (prety large, многопоточность)
Я пишу (пытаясь написать) интерфейс Python для этого. Интерфейс содержит несколько обратных вызовов, один для аудио. Он вызывается из библиотеки с параметрами: массив C с образцами PCM, количеством образцов и частотой дискретизации. Для «передачи» данных в интерфейс Python массив C «Python», а обратный вызов C вызывает функцию Python (ссылка на которую передается ранее)

Вопрос в том, что я, вероятно, что-то делаю не так, поскольку библиотека — при вызове из Python — вылетает при точном вызове PyArray_SimpleNewFromData.
Мне — новичку в Python — может показаться, что библиотека C, содержащая реализацию PyArray_SimpleNewFromData (которая на самом деле кажется макросом) отсутствует (ошибка постоянно является нарушением сегментации.

Если да, то есть ли библиотека, которую мне не хватает (и где ее найти?)

Моя система:
Fedora 25, 64б
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);

}

Любая помощь приветствуется

Спасибо

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]