pygst — обратный вызов glimagesink
Вопрос
Я пытаюсь использовать элемент glimagesink с Python.Элемент (внутри которого находится GObject) имеет client-draw-callback
свойство, которое должно (по крайней мере, в C++) содержать функцию (bool func(uint t, uint w, uint h)
) указатель.я пробовал element.set_property('client-draw-callback', myfunc)
, и создаю указатель на функцию с помощью ctypes, но каждый раз, когда он говорит: TypeError: could not convert argument to correct param type
Я мог бы найти любую документацию по использованию glimagesink или glfilterapp в Python):
Рабочий код С++:
gboolean drawCallback (GLuint texture, GLuint width, GLuint height)
{ ... }
GstElement* glimagesink = gst_element_factory_make ("glimagesink", "glimagesink0");
g_object_set(G_OBJECT(glimagesink), "client-draw-callback", drawCallback, NULL)
Решение
Это не та проблема, с которой вы столкнулись (насколько я могу судить), но важно отметить, что этот API недавно изменился, теперь он ожидает указатель void данных, который позволяет передать дескриптор в user_data (или NULL) при подключении обратного вызова.
gboolean drawCallback (GLuint texture, GLuint width, GLuint height, gpointer data)