summaryrefslogtreecommitdiff
path: root/gst-libs
diff options
context:
space:
mode:
authorJulien Isorce <j.isorce@samsung.com>2015-06-01 14:07:37 +0100
committerJulien Isorce <j.isorce@samsung.com>2015-06-01 14:09:54 +0100
commit742dba0c2a7359e9d957b3d228f1c10de9cc5e0f (patch)
tree513c4503515cfde60011bf5c39e5e8a233f1a98b /gst-libs
parente9c2e93f3f8e80c0b08096d03cb7a1ef6c1de932 (diff)
downloadgstreamer-plugins-bad-742dba0c2a7359e9d957b3d228f1c10de9cc5e0f.tar.gz
glcontext_gpu_process: close the window when done
Diffstat (limited to 'gst-libs')
-rw-r--r--gst-libs/gst/gl/gpuprocess/gstglcontext_gpu_process.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gst-libs/gst/gl/gpuprocess/gstglcontext_gpu_process.c b/gst-libs/gst/gl/gpuprocess/gstglcontext_gpu_process.c
index f4c6c158c..7082ebaee 100644
--- a/gst-libs/gst/gl/gpuprocess/gstglcontext_gpu_process.c
+++ b/gst-libs/gst/gl/gpuprocess/gstglcontext_gpu_process.c
@@ -30,6 +30,7 @@
#define GST_CAT_DEFAULT gst_gl_context_debug
+#define gst_gl_context_gpu_process_parent_class parent_class
G_DEFINE_TYPE (GstGLContextGPUProcess, gst_gl_context_gpu_process,
GST_GL_TYPE_CONTEXT);
@@ -63,12 +64,25 @@ gst_gl_context_gpu_process_activate (GstGLContext * context, gboolean activate)
}
static void
+gst_gl_context_gpu_process_finalize (GObject * object)
+{
+ GstGLContext *context = GST_GL_CONTEXT (object);
+
+ GST_GL_WINDOW_GET_CLASS (context->window)->close (context->window);
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
gst_gl_context_gpu_process_class_init (GstGLContextGPUProcessClass * klass)
{
+ GObjectClass *obj_class = G_OBJECT_CLASS (klass);
GstGLContextClass *context_class = (GstGLContextClass *) klass;
g_type_class_add_private (klass, sizeof (GstGLContextGPUProcessPrivate));
+ obj_class->finalize = gst_gl_context_gpu_process_finalize;
+
context_class->get_gl_context =
GST_DEBUG_FUNCPTR (gst_gl_context_gpu_process_get_gl_context);
context_class->get_gl_api =
@@ -123,7 +137,7 @@ gst_gl_context_gpu_process_new (GstGLDisplay * display,
window = GST_GL_WINDOW (gst_gl_window_gpu_process_new (display));
gst_gl_context_set_window (context, window);
- GST_GL_WINDOW_GET_CLASS (window)->open (context->window, NULL);
+ GST_GL_WINDOW_GET_CLASS (window)->open (window, NULL);
gst_object_unref (window);
return context;