forked from AuroraMiddleware/gtk
gstreamer media backend: Disable OpenGL on Windows
...for at least WGL, since we are not allowed to use wglMakeCurrent(), which is eventually called by gdk_gl_context_make_current() to share WGL contexts across different threads, which will cause a crash. This means, we cannot enable WGL in the gstreamer media backend on Windows.
This commit is contained in:
parent
fb31581bb4
commit
397a71ca8b
@ -118,6 +118,18 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
|
|||||||
GtkGstPaintable *self = GTK_GST_PAINTABLE (renderer);
|
GtkGstPaintable *self = GTK_GST_PAINTABLE (renderer);
|
||||||
GstElement *sink, *glsinkbin;
|
GstElement *sink, *glsinkbin;
|
||||||
|
|
||||||
|
#if GST_GL_HAVE_WINDOW_WIN32 && GST_GL_HAVE_PLATFORM_WGL && defined (GDK_WINDOWING_WIN32)
|
||||||
|
/*
|
||||||
|
* Unfortunately, we can't connect the GstGLContext with our GDKGLContext,
|
||||||
|
* since gdk_gl_context_make_current(), which calls wglMakeCurrent(), does not
|
||||||
|
* allow us to share WGL contexts across threads, which will cause a crash.
|
||||||
|
* See MR !3034, so no WGL in the gstreamer media backend :(
|
||||||
|
*/
|
||||||
|
sink = g_object_new (GTK_TYPE_GST_SINK,
|
||||||
|
"paintable", self,
|
||||||
|
NULL);
|
||||||
|
return sink;
|
||||||
|
#else
|
||||||
sink = g_object_new (GTK_TYPE_GST_SINK,
|
sink = g_object_new (GTK_TYPE_GST_SINK,
|
||||||
"paintable", self,
|
"paintable", self,
|
||||||
"gl-context", self->context,
|
"gl-context", self->context,
|
||||||
@ -131,6 +143,7 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
|
|||||||
g_object_set (glsinkbin, "sink", sink, NULL);
|
g_object_set (glsinkbin, "sink", sink, NULL);
|
||||||
|
|
||||||
return glsinkbin;
|
return glsinkbin;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user