我试图创建GStreamer元素,它将在屏幕上产生三角形(例如)。但是我遇到了SegFault问题...我试着排除它的故障,并找出每个OpenGL函数的作用。在下面的代码中,我给出了my _chain()函数:
static GstFlowReturn
gst_markersrc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
{
Gstmarkersrc *filter;
filter = GST_MARKERSRC (parent);
if (filter->silent == FALSE)
{
GstGLContext* context;
GstGLFuncs *gl = context->gl_vtable;
gl->ClearColor(1.0f,0.0f,0.0f,1.0f); // <- SegFault
}
/* just push out the incoming buffer without touching it */
return gst_pad_push (filter->srcpad, buf);
}
字符串
正如你所看到的,它只是将从sinkpad接收到的buffer推送到srcpad,但是当我尝试添加任何OpenGL函数时,它在这里中断(这里它与ClearColor在线)。
1条答案
按热度按时间laximzn51#
我现在通过包含GLFW进行上下文处理来解决这个问题。我现在有这样的东西:
字符串
并且还需要在
_chain()
函数中调用glfwMakeContextCurrent(window);
。我想得到一个更好的解决方案的想法,所以我不会标记这个问题的答案了。