From 7b031f648c0d7590c5f2d2b6483bfe17b53c83bd Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Tue, 26 Nov 2013 09:32:32 +1100 Subject: [PATCH] [863/906] window: hold a ref to our GstGLDisplay --- gst-libs/gst/gl/gstglwindow.c | 11 ++++------- gst-libs/gst/gl/gstglwindow.h | 1 + 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/gst-libs/gst/gl/gstglwindow.c b/gst-libs/gst/gl/gstglwindow.c index b9cd8e3563..1e460dc764 100644 --- a/gst-libs/gst/gl/gstglwindow.c +++ b/gst-libs/gst/gl/gstglwindow.c @@ -79,15 +79,9 @@ static void gst_gl_window_default_send_message (GstGLWindow * window, struct _GstGLWindowPrivate { - GstGLDisplay *display; - GThread *gl_thread; gboolean alive; - - guintptr external_gl_context; - GstGLAPI gl_api; - GError **error; }; static void gst_gl_window_finalize (GObject * object); @@ -132,6 +126,8 @@ gst_gl_window_new (GstGLDisplay * display) const gchar *user_choice; static volatile gsize _init = 0; + g_return_val_if_fail (display != NULL, NULL); + if (g_once_init_enter (&_init)) { GST_DEBUG_CATEGORY_INIT (gst_gl_window_debug, "glwindow", 0, "glwindow element"); @@ -173,7 +169,7 @@ gst_gl_window_new (GstGLDisplay * display) return NULL; } - window->priv->display = display; + window->display = gst_object_ref (display); return window; } @@ -186,6 +182,7 @@ gst_gl_window_finalize (GObject * object) g_weak_ref_clear (&window->context_ref); g_mutex_clear (&window->lock); + gst_object_unref (window->display); G_OBJECT_CLASS (gst_gl_window_parent_class)->finalize (object); } diff --git a/gst-libs/gst/gl/gstglwindow.h b/gst-libs/gst/gl/gstglwindow.h index 255fdd3c62..217f03cbb3 100644 --- a/gst-libs/gst/gl/gstglwindow.h +++ b/gst-libs/gst/gl/gstglwindow.h @@ -68,6 +68,7 @@ struct _GstGLWindow { GMutex lock; + GstGLDisplay *display; GWeakRef context_ref; guintptr external_gl_context;