diff options
author | Julien Isorce <j.isorce@samsung.com> | 2015-06-01 14:07:37 +0100 |
---|---|---|
committer | Julien Isorce <j.isorce@samsung.com> | 2015-06-01 14:09:54 +0100 |
commit | 742dba0c2a7359e9d957b3d228f1c10de9cc5e0f (patch) | |
tree | 513c4503515cfde60011bf5c39e5e8a233f1a98b /gst-libs | |
parent | e9c2e93f3f8e80c0b08096d03cb7a1ef6c1de932 (diff) | |
download | gstreamer-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.c | 16 |
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; |