summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorMatthew Waters <ystreet00@gmail.com>2013-09-16 19:07:18 +1000
committerJulien Isorce <julien.isorce@collabora.co.uk>2013-09-27 10:44:53 +0100
commit43a2ad55bd5e825b66cc13f5b39cc7212af6005f (patch)
tree38a5a1ac5bed3f72383ca4f80a8e562f3415aa0c /gst
parentba50b807faefc14ac9bf150394eb81e06a5a5986 (diff)
unref the pool on shutdown
Diffstat (limited to 'gst')
-rw-r--r--gst/gl/gstglimagesink.c21
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)
{