summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2020-05-14 14:00:22 +1000
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-09-27 10:55:46 +0000
commitdafaac5e525a3609a84166085851e84a534f1872 (patch)
treef59a1cf617f95c12e9a42133f78c5493d2f61b1e
parent795cb6d5a221acc589e4324d425955e671c9f84f (diff)
downloadgstreamer-plugins-base-dafaac5e525a3609a84166085851e84a534f1872.tar.gz
gl/display/egl: ensure debug category is initialized
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/833>
-rw-r--r--gst-libs/gst/gl/egl/gstgldisplay_egl.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/gst-libs/gst/gl/egl/gstgldisplay_egl.c b/gst-libs/gst/gl/egl/gstgldisplay_egl.c
index af0635171..7830dbaae 100644
--- a/gst-libs/gst/gl/egl/gstgldisplay_egl.c
+++ b/gst-libs/gst/gl/egl/gstgldisplay_egl.c
@@ -30,8 +30,8 @@
#include "gsteglimage.h"
#include "gstglmemoryegl.h"
-GST_DEBUG_CATEGORY_STATIC (gst_gl_display_debug);
-#define GST_CAT_DEFAULT gst_gl_display_debug
+GST_DEBUG_CATEGORY_STATIC (gst_gl_display_egl_debug);
+#define GST_CAT_DEFAULT gst_gl_display_egl_debug
#ifndef EGL_PLATFORM_X11
#define EGL_PLATFORM_X11 0x31D5
@@ -55,6 +55,18 @@ static void gst_gl_display_egl_finalize (GObject * object);
static guintptr gst_gl_display_egl_get_handle (GstGLDisplay * display);
static void
+init_debug (void)
+{
+ static volatile gsize _init = 0;
+
+ if (g_once_init_enter (&_init)) {
+ GST_DEBUG_CATEGORY_INIT (GST_CAT_DEFAULT, "gldisplayegl", 0,
+ "OpenGL EGL Display");
+ g_once_init_leave (&_init, 1);
+ }
+}
+
+static void
gst_gl_display_egl_class_init (GstGLDisplayEGLClass * klass)
{
GST_GL_DISPLAY_CLASS (klass)->get_handle =
@@ -111,6 +123,8 @@ gst_gl_display_egl_get_from_native (GstGLDisplayType type, guintptr display)
g_return_val_if_fail ((type != GST_GL_DISPLAY_TYPE_ANY && display != 0)
|| (type == GST_GL_DISPLAY_TYPE_ANY && display == 0), EGL_NO_DISPLAY);
+ init_debug ();
+
/* given an EGLDisplay already */
if (type == GST_GL_DISPLAY_TYPE_EGL)
return (gpointer) display;
@@ -184,7 +198,7 @@ gst_gl_display_egl_new (void)
{
GstGLDisplayEGL *ret;
- GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
+ init_debug ();
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
gst_object_ref_sink (ret);
@@ -215,7 +229,7 @@ gst_gl_display_egl_new_with_egl_display (gpointer display)
g_return_val_if_fail (display != NULL, NULL);
- GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
+ init_debug ();
ret = g_object_new (GST_TYPE_GL_DISPLAY_EGL, NULL);
gst_object_ref_sink (ret);
@@ -256,7 +270,7 @@ gst_gl_display_egl_from_gl_display (GstGLDisplay * display)
g_return_val_if_fail (GST_IS_GL_DISPLAY (display), NULL);
- GST_DEBUG_CATEGORY_GET (gst_gl_display_debug, "gldisplay");
+ init_debug ();
if (GST_IS_GL_DISPLAY_EGL (display)) {
GST_LOG_OBJECT (display, "display %" GST_PTR_FORMAT "is already a "