From: Matthew Waters Date: Mon, 27 Apr 2015 06:04:50 +0000 (+1000) Subject: glimagesink: unref the pool in the correct place X-Git-Tag: 1.19.3~511^2~1989^2~914 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=45b50cbb7216ade59cd803c827c7875b4b05da2b;p=platform%2Fupstream%2Fgstreamer.git glimagesink: unref the pool in the correct place Otherwise we could hold a pool to a context that is never going to be used. https://bugzilla.gnome.org/show_bug.cgi?id=748405 --- diff --git a/ext/gl/gstglimagesink.c b/ext/gl/gstglimagesink.c index d23cc83..96d4a50 100644 --- a/ext/gl/gstglimagesink.c +++ b/ext/gl/gstglimagesink.c @@ -864,11 +864,6 @@ 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; } @@ -942,6 +937,13 @@ gst_glimage_sink_change_state (GstElement * element, GstStateChange transition) GST_VIDEO_SINK_WIDTH (glimage_sink) = 1; GST_VIDEO_SINK_HEIGHT (glimage_sink) = 1; + + /* we're losing the context, this pool is no use anymore */ + if (glimage_sink->pool) { + gst_object_unref (glimage_sink->pool); + glimage_sink->pool = NULL; + } + if (glimage_sink->context) { GstGLWindow *window = gst_gl_context_get_window (glimage_sink->context);