summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2013-04-17 13:48:28 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2013-04-17 13:48:28 +0200
commita8cca170278d76c2b3dcce5d73d63e7a2257070c (patch)
treedf4ee7d6f71503906633f7c2c47307135d5fdcee
parentf39874260830219338fda4e47767b22be382cffc (diff)
downloadgstreamer-plugins-bad-a8cca170278d76c2b3dcce5d73d63e7a2257070c.tar.gz
eglglessink: Fix GstContext refcounting some more
-rw-r--r--ext/eglgles/gsteglglessink.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/ext/eglgles/gsteglglessink.c b/ext/eglgles/gsteglglessink.c
index 8236e5cd8..cdda6d62d 100644
--- a/ext/eglgles/gsteglglessink.c
+++ b/ext/eglgles/gsteglglessink.c
@@ -1853,6 +1853,8 @@ gst_eglglessink_event (GstBaseSink * bsink, GstEvent * event)
GST_OBJECT_UNLOCK (eglglessink);
}
+ gst_context_unref (context);
+
return GST_BASE_SINK_CLASS (gst_eglglessink_parent_class)->event (bsink,
event);
break;
@@ -1894,6 +1896,7 @@ gst_eglglessink_query (GstBaseSink * bsink, GstQuery * query)
gst_context_set_egl_display (context,
eglglessink->egl_context->display);
gst_query_set_context (query, context);
+ gst_context_unref (context);
break;
}
}
@@ -1925,11 +1928,12 @@ gst_eglglessink_set_context (GstElement * element, GstContext * context)
}
GST_OBJECT_LOCK (eglglessink);
- context = gst_context_make_writable (context);
+ context = gst_context_copy (context);
gst_context_set_egl_display (context, eglglessink->egl_context->display);
GST_OBJECT_UNLOCK (eglglessink);
GST_ELEMENT_CLASS (parent_class)->set_context (element, context);
+ gst_context_unref (context);
}
static gboolean