tracer: use GST_PTR_FORMAT to log the structure
authorStefan Sauer <ensonic@users.sf.net>
Wed, 10 Sep 2014 06:32:18 +0000 (08:32 +0200)
committerStefan Sauer <ensonic@users.sf.net>
Mon, 5 Oct 2015 18:59:39 +0000 (20:59 +0200)
This way we only expand the structure when we're logging. This allows us to
meassure the pure tracing seperately from the logging.
Also add some comments on further improvements.

gst/gsttracer.c

index 42ec2b6..df973f3 100644 (file)
@@ -203,11 +203,21 @@ gst_tracer_register (GstPlugin * plugin, const gchar * name, GType type)
 void
 gst_tracer_log_trace (GstStructure * s)
 {
-  gchar *data;
-
-  // TODO(ensonic): use a GVariant?
-  data = gst_structure_to_string (s);
-  GST_TRACE ("%s", data);
-  g_free (data);
+  GST_TRACE ("%" GST_PTR_FORMAT, s);
+  /* expands to:
+     gst_debug_log_valist (
+     GST_CAT_DEFAULT, GST_LEVEL_TRACE,
+     file, func, line, object
+     "%" GST_PTR_FORMAT, s);
+     // does it make sense to use the {file, line, func} from the tracer hook?
+     // a)
+     // - we'd need to pass them in the macros to gst_tracer_dispatch()
+     // - and each tracer needs to grab them from the va_list and pass them here
+     // b)
+     // - we create a content in dispatch, pass that to the tracer
+     // - and the tracer will pass that here
+     // ideally we also use *our* ts instead of the one that
+     // gst_debug_log_default() will pick
+   */
   gst_structure_free (s);
 }