srt: Register a log handler
authorJan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
Thu, 1 Oct 2020 15:31:13 +0000 (17:31 +0200)
committerJan Alexander Steffens (heftig) <jan.steffens@ltnglobal.com>
Tue, 6 Oct 2020 10:39:04 +0000 (12:39 +0200)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1659>

ext/srt/gstsrt.c

index 1511f39..b498076 100644 (file)
@@ -25,6 +25,7 @@
 #include "gstsrtsrc.h"
 #include "gstsrtsink.h"
 
+GST_DEBUG_CATEGORY_STATIC (gst_debug_srtlib);
 GST_DEBUG_CATEGORY (gst_debug_srtobject);
 #define GST_CAT_DEFAULT gst_debug_srtobject
 
@@ -100,10 +101,58 @@ gst_srt_server_sink_class_init (GstSRTServerSinkClass * klass)
 
 #endif
 
+#ifndef GST_DISABLE_GST_DEBUG
+static void
+gst_srt_log_handler (void *opaque, int level, const char *file, int line,
+    const char *area, const char *message)
+{
+  GstDebugLevel gst_level;
+
+  switch (level) {
+    case LOG_CRIT:
+      gst_level = GST_LEVEL_ERROR;
+      break;
+
+    case LOG_ERR:
+      gst_level = GST_LEVEL_WARNING;
+      break;
+
+    case LOG_WARNING:
+      gst_level = GST_LEVEL_INFO;
+      break;
+
+    case LOG_NOTICE:
+      gst_level = GST_LEVEL_DEBUG;
+      break;
+
+    case LOG_DEBUG:
+      gst_level = GST_LEVEL_LOG;
+      break;
+
+    default:
+      gst_level = GST_LEVEL_FIXME;
+      break;
+  }
+
+  if (G_UNLIKELY (gst_level <= _gst_debug_min)) {
+    gst_debug_log (gst_debug_srtlib, gst_level, file, area, line, NULL, "%s",
+        message);
+  }
+}
+#endif
+
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
   GST_DEBUG_CATEGORY_INIT (gst_debug_srtobject, "srtobject", 0, "SRT Object");
+  GST_DEBUG_CATEGORY_INIT (gst_debug_srtlib, "srtlib", 0, "SRT Library");
+
+#ifndef GST_DISABLE_GST_DEBUG
+  srt_setloghandler (NULL, gst_srt_log_handler);
+  srt_setlogflags (SRT_LOGF_DISABLE_TIME | SRT_LOGF_DISABLE_THREADNAME |
+      SRT_LOGF_DISABLE_SEVERITY | SRT_LOGF_DISABLE_EOL);
+  srt_setloglevel (LOG_DEBUG);
+#endif
 
   if (!gst_element_register (plugin, "srtsrc", GST_RANK_PRIMARY,
           GST_TYPE_SRT_SRC))