summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Sauer <ensonic@users.sf.net>2014-07-15 09:49:23 +0200
committerStefan Sauer <ensonic@users.sf.net>2015-08-26 22:33:57 +0200
commit84fef5e9ce73cfb8623c5248ceff0c45f94bbb99 (patch)
tree1d06ff50f1daafa23baa21e22340ff893cd1843b
parent7edd6ea4096218014d9d13cf71e6691aeb57d7c1 (diff)
tracers: add a logging helper to remove identical copies from the tracers
-rw-r--r--gst/gsttracer.c14
-rw-r--r--gst/gsttracer.h9
-rw-r--r--plugins/tracers/gstlatency.c16
-rw-r--r--plugins/tracers/gstrusage.c16
-rw-r--r--plugins/tracers/gststats.c26
5 files changed, 31 insertions, 50 deletions
diff --git a/gst/gsttracer.c b/gst/gsttracer.c
index 8d48dda7c..a57d42046 100644
--- a/gst/gsttracer.c
+++ b/gst/gsttracer.c
@@ -299,4 +299,18 @@ gst_tracer_dispatch (GstTracerHookId hid, GstTracerMessageId mid, ...)
}
}
+/* tracing module helpers */
+
+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_structure_free (s);
+}
+
#endif /* GST_DISABLE_GST_DEBUG */
diff --git a/gst/gsttracer.h b/gst/gsttracer.h
index 38ea39fde..99f1982de 100644
--- a/gst/gsttracer.h
+++ b/gst/gsttracer.h
@@ -118,9 +118,18 @@ GType gst_tracer_get_type (void);
void _priv_gst_tracer_init (void);
void _priv_gst_tracer_deinit (void);
+/* tracing modules */
+
gboolean gst_tracer_register (GstPlugin * plugin, const gchar * name, GType type);
+
+/* tracing helpers */
+
void gst_tracer_dispatch (GstTracerHookId hid, GstTracerMessageId mid, ...);
+/* tracing module helpers */
+
+void gst_tracer_log_trace (GstStructure * s);
+
extern gboolean _priv_tracer_enabled;
extern GList *_priv_tracers[GST_TRACER_HOOK_ID_LAST];
diff --git a/plugins/tracers/gstlatency.c b/plugins/tracers/gstlatency.c
index d474cba7c..3d97a86ff 100644
--- a/plugins/tracers/gstlatency.c
+++ b/plugins/tracers/gstlatency.c
@@ -38,20 +38,6 @@ static GQuark latency_probe_id;
static GQuark latency_probe_pad;
static GQuark latency_probe_ts;
-/* logging */
-
-static void
-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_structure_free (s);
-}
-
/* data helpers */
/*
@@ -177,7 +163,7 @@ do_push_event_pre (GstLatencyTracer * self, va_list var_args)
to = g_strdup_printf ("%s_%s", GST_DEBUG_PAD_NAME (peer_pad));
/* TODO(ensonic): report format is still unstable */
- log_trace (gst_structure_new ("latency",
+ gst_tracer_log_trace (gst_structure_new ("latency",
"from", G_TYPE_STRING, from,
"to", G_TYPE_STRING, to,
"time", G_TYPE_UINT64, GST_CLOCK_DIFF (origin_ts, ts), NULL));
diff --git a/plugins/tracers/gstrusage.c b/plugins/tracers/gstrusage.c
index 70e277c71..897feb80d 100644
--- a/plugins/tracers/gstrusage.c
+++ b/plugins/tracers/gstrusage.c
@@ -48,20 +48,6 @@ typedef struct
static void gst_rusage_tracer_invoke (GstTracer * self, GstTracerHookId id,
GstTracerMessageId mid, va_list var_args);
-/* logging */
-
-static void
-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_structure_free (s);
-}
-
/* data helper */
static void
@@ -146,7 +132,7 @@ gst_rusage_tracer_invoke (GstTracer * obj, GstTracerHookId hid,
*/
cpuload =
(guint) gst_util_uint64_scale (tusersys, G_GINT64_CONSTANT (100), treal);
- log_trace (gst_structure_new ("rusage", "ts", G_TYPE_UINT64, treal, "thread-id", G_TYPE_UINT, GPOINTER_TO_UINT (thread_id), "cpuload", G_TYPE_UINT, cpuload, "treal", G_TYPE_UINT64, stats->treal, /* time in thread */
+ gst_tracer_log_trace (gst_structure_new ("rusage", "ts", G_TYPE_UINT64, treal, "thread-id", G_TYPE_UINT, GPOINTER_TO_UINT (thread_id), "cpuload", G_TYPE_UINT, cpuload, "treal", G_TYPE_UINT64, stats->treal, /* time in thread */
"tsum", G_TYPE_UINT64, tusersys, /* time in process */
NULL));
}
diff --git a/plugins/tracers/gststats.c b/plugins/tracers/gststats.c
index d4573ad21..fdef85e45 100644
--- a/plugins/tracers/gststats.c
+++ b/plugins/tracers/gststats.c
@@ -62,20 +62,6 @@ typedef struct
guint parent_ix;
} GstElementStats;
-/* logging */
-
-static void
-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_structure_free (s);
-}
-
/* data helper */
static GstElementStats no_elem_stats = { 0, };
@@ -93,7 +79,7 @@ fill_element_stats (GstStatsTracer * self, GstElement * element)
static void
log_new_element_stats (GstElementStats * stats, GstElement * element)
{
- log_trace (gst_structure_new ("new-element",
+ gst_tracer_log_trace (gst_structure_new ("new-element",
"ix", G_TYPE_UINT, stats->index,
"parent-ix", G_TYPE_UINT, stats->parent_ix,
"name", G_TYPE_STRING, GST_OBJECT_NAME (element),
@@ -190,7 +176,7 @@ fill_pad_stats (GstStatsTracer * self, GstPad * pad)
static void
log_new_pad_stats (GstPadStats * stats, GstPad * pad)
{
- log_trace (gst_structure_new ("new-pad",
+ gst_tracer_log_trace (gst_structure_new ("new-pad",
"ix", G_TYPE_UINT, stats->index,
"parent-ix", G_TYPE_UINT, stats->parent_ix,
"name", G_TYPE_STRING, GST_OBJECT_NAME (pad),
@@ -252,7 +238,7 @@ do_buffer_stats (GstStatsTracer * self, GstPad * this_pad,
GstElementStats *that_elem_stats = get_element_stats (self, that_elem);
/* TODO(ensonic): need a quark-table (shared with the tracer-front-ends?) */
- log_trace (gst_structure_new ("buffer",
+ gst_tracer_log_trace (gst_structure_new ("buffer",
"ts", G_TYPE_UINT64, elapsed,
"pad-ix", G_TYPE_UINT, this_pad_stats->index,
"elem-ix", G_TYPE_UINT, this_elem_stats->index,
@@ -480,7 +466,7 @@ do_push_event_pre (GstStatsTracer * self, va_list var_args)
GstPadStats *pad_stats = get_pad_stats (self, pad);
elem_stats->last_ts = ts;
- log_trace (gst_structure_new ("event",
+ gst_tracer_log_trace (gst_structure_new ("event",
"ts", G_TYPE_UINT64, ts,
"pad-ix", G_TYPE_UINT, pad_stats->index,
"elem-ix", G_TYPE_UINT, elem_stats->index,
@@ -505,7 +491,7 @@ do_post_message_pre (GstStatsTracer * self, va_list var_args)
GstElementStats *stats = get_element_stats (self, elem);
stats->last_ts = ts;
- log_trace (gst_structure_new ("message",
+ gst_tracer_log_trace (gst_structure_new ("message",
"ts", G_TYPE_UINT64, ts,
"elem-ix", G_TYPE_UINT, stats->index,
"name", G_TYPE_STRING, GST_MESSAGE_TYPE_NAME (msg), NULL));
@@ -529,7 +515,7 @@ do_query_pre (GstStatsTracer * self, va_list var_args)
GstElementStats *stats = get_element_stats (self, elem);
stats->last_ts = ts;
- log_trace (gst_structure_new ("query",
+ gst_tracer_log_trace (gst_structure_new ("query",
"ts", G_TYPE_UINT64, ts,
"elem-ix", G_TYPE_UINT, stats->index,
"name", G_TYPE_STRING, GST_QUERY_TYPE_NAME (qry), NULL));