diff options
author | Matthew Waters <ystreet00@gmail.com> | 2013-09-16 19:07:18 +1000 |
---|---|---|
committer | Julien Isorce <julien.isorce@collabora.co.uk> | 2013-09-27 10:44:53 +0100 |
commit | 43a2ad55bd5e825b66cc13f5b39cc7212af6005f (patch) | |
tree | 38a5a1ac5bed3f72383ca4f80a8e562f3415aa0c /gst | |
parent | ba50b807faefc14ac9bf150394eb81e06a5a5986 (diff) |
unref the pool on shutdown
Diffstat (limited to 'gst')
-rw-r--r-- | gst/gl/gstglimagesink.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/gst/gl/gstglimagesink.c b/gst/gl/gstglimagesink.c index 04ad4cf..6036c5a 100644 --- a/gst/gl/gstglimagesink.c +++ b/gst/gl/gstglimagesink.c @@ -118,6 +118,8 @@ static void gst_glimage_sink_set_property (GObject * object, guint prop_id, static void gst_glimage_sink_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * param_spec); +static gboolean gst_glimage_sink_stop (GstBaseSink * bsink); + static gboolean gst_glimage_sink_query (GstBaseSink * bsink, GstQuery * query); static GstStateChangeReturn @@ -250,6 +252,7 @@ gst_glimage_sink_class_init (GstGLImageSinkClass * klass) gstbasesink_class->preroll = gst_glimage_sink_render; gstbasesink_class->render = gst_glimage_sink_render; gstbasesink_class->propose_allocation = gst_glimage_sink_propose_allocation; + gstbasesink_class->stop = gst_glimage_sink_stop; } static void @@ -330,11 +333,6 @@ gst_glimage_sink_finalize (GObject * object) glimage_sink = GST_GLIMAGE_SINK (object); - if (glimage_sink->pool) { - gst_object_unref (glimage_sink->pool); - glimage_sink->pool = NULL; - } - g_mutex_clear (&glimage_sink->drawing_lock); g_free (glimage_sink->display_name); @@ -409,6 +407,19 @@ gst_glimage_sink_cleanup_glthread (GstGLImageSink * gl_sink) * GstElement methods */ +static gboolean +gst_glimage_sink_stop (GstBaseSink * bsink) +{ + GstGLImageSink *glimage_sink = GST_GLIMAGE_SINK (bsink); + + if (glimage_sink->pool) { + gst_object_unref (glimage_sink->pool); + glimage_sink->pool = NULL; + } + + return TRUE; +} + static GstStateChangeReturn gst_glimage_sink_change_state (GstElement * element, GstStateChange transition) { |