summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gst-libs/gst/gl/gstglfilter.c10
-rw-r--r--gst/gl/gstgltestsrc.c9
2 files changed, 14 insertions, 5 deletions
diff --git a/gst-libs/gst/gl/gstglfilter.c b/gst-libs/gst/gl/gstglfilter.c
index fdcca09..5260bcc 100644
--- a/gst-libs/gst/gl/gstglfilter.c
+++ b/gst-libs/gst/gl/gstglfilter.c
@@ -867,9 +867,13 @@ gst_gl_filter_decide_allocation (GstBaseTransform * trans, GstQuery * query)
gst_query_parse_nth_allocation_meta (query, idx, &upload_meta_params);
if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
- GST_GL_TYPE_CONTEXT, &context, NULL) && context)
- gst_object_replace ((GstObject **) & filter->context,
- (GstObject *) context);
+ GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
+ GstGLContext *old = filter->context;
+
+ filter->context = context;
+ if (old)
+ gst_object_unref (old);
+ }
}
if (!filter->context) {
diff --git a/gst/gl/gstgltestsrc.c b/gst/gl/gstgltestsrc.c
index c7ff3b1..1d9d343 100644
--- a/gst/gl/gstgltestsrc.c
+++ b/gst/gl/gstgltestsrc.c
@@ -624,8 +624,13 @@ gst_gl_test_src_decide_allocation (GstBaseSrc * basesrc, GstQuery * query)
gst_query_parse_nth_allocation_meta (query, idx, &upload_meta_params);
if (gst_structure_get (upload_meta_params, "gst.gl.GstGLContext",
- GST_GL_TYPE_CONTEXT, &context, NULL) && context)
- gst_object_replace ((GstObject **) & src->context, (GstObject *) context);
+ GST_GL_TYPE_CONTEXT, &context, NULL) && context) {
+ GstGLContext *old = src->context;
+
+ src->context = context;
+ if (old)
+ gst_object_unref (old);
+ }
}
if (!src->context) {