[gtk/wip.win32.fixes: 44/44] gstreamer media backend: Disable OpenGL on Windows
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip.win32.fixes: 44/44] gstreamer media backend: Disable OpenGL on Windows
- Date: Tue, 5 Jan 2021 09:32:00 +0000 (UTC)
commit 4b854a70fd7ddd79ad5ab56a98c685a73fad540e
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Tue Jan 5 14:30:08 2021 +0800
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.
modules/media/gtkgstpaintable.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
---
diff --git a/modules/media/gtkgstpaintable.c b/modules/media/gtkgstpaintable.c
index 470a5f59e4..5bd789c1f3 100644
--- a/modules/media/gtkgstpaintable.c
+++ b/modules/media/gtkgstpaintable.c
@@ -118,6 +118,18 @@ gtk_gst_paintable_video_renderer_create_video_sink (GstPlayerVideoRenderer *rend
GtkGstPaintable *self = GTK_GST_PAINTABLE (renderer);
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,
"paintable", self,
"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);
return glsinkbin;
+#endif
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]