From 9522551e1d66c538229ca635f6b958c9741b7647 Mon Sep 17 00:00:00 2001 From: Matthew Waters Date: Tue, 29 Jul 2025 16:56:36 +1000 Subject: [PATCH] gl/basesrc: add get_gl_context Part-of: --- girs/GstGL-1.0.gir | 13 ++++++++++++ .../gst-libs/gst/gl/gstglbasesrc.c | 20 +++++++++++++++++++ .../gst-libs/gst/gl/gstglbasesrc.h | 5 ++++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/girs/GstGL-1.0.gir b/girs/GstGL-1.0.gir index 74b875d56f..786435de64 100644 --- a/girs/GstGL-1.0.gir +++ b/girs/GstGL-1.0.gir @@ -1243,6 +1243,19 @@ current in the calling thread. + + + + the configured #GstGLContext. + + + + + a #GstGLBaseSrc + + + + diff --git a/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c b/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c index 0740ac8004..e05137a91c 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c +++ b/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.c @@ -746,3 +746,23 @@ gst_gl_base_src_do_seek (GstBaseSrc * basesrc, GstSegment * segment) return GST_BASE_SRC_CLASS (parent_class)->do_seek (basesrc, segment); } + +/** + * gst_gl_base_src_get_gl_context: + * @base_src: a #GstGLBaseSrc + * + * Returns: (nullable) (transfer full): the configured #GstGLContext. + * Since: 1.28 + */ +GstGLContext * +gst_gl_base_src_get_gl_context (GstGLBaseSrc * base_src) +{ + GstGLContext *ret = NULL; + + g_rec_mutex_lock (&base_src->priv->context_lock); + if (base_src->context) + ret = gst_object_ref (base_src->context); + g_rec_mutex_unlock (&base_src->priv->context_lock); + + return ret; +} diff --git a/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h b/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h index 4c9d3a435c..9a6d5ef976 100644 --- a/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h +++ b/subprojects/gst-plugins-base/gst-libs/gst/gl/gstglbasesrc.h @@ -1,4 +1,4 @@ -/* +/* * GStreamer * Copyright (C) <1999> Erik Walthinsen * Copyright (C) 2002,2007 David A. Schleef @@ -95,6 +95,9 @@ struct _GstGLBaseSrcClass { gpointer _padding[GST_PADDING]; }; +GST_GL_API +GstGLContext * gst_gl_base_src_get_gl_context (GstGLBaseSrc *base_src); + G_END_DECLS #endif /* __GST_GL_BASE_SRC_H__ */