GType gst_tracer_get_type (void);
-void gst_tracer_register_hook (GstTracer *tracer, GstTracerHookId id,
+void gst_tracer_register_hook (GstTracer *tracer, const gchar *detail,
GstTracerHookFunction func);
+void gst_tracer_register_hook_id (GstTracer *tracer, GQuark detail,
+ GstTracerHookFunction func);
+
+void gst_tracer_log_trace (GstStructure * s);
G_END_DECLS
#ifndef GST_DISABLE_GST_DEBUG
+/* tracer quarks */
+
+/* These strings must match order and number declared in the GstTracerQuarkId
+ * enum in gsttracerutils.h! */
+static const gchar *_quark_strings[] = {
+ "pad-push-pre", "pad-push-post", "pad-push-list-pre", "pad-push-list-post",
+ "pad-pull-range-pre", "pad-pull-range-post", "pad-push-event-pre",
+ "pad-push-event-post", "element-post-message-pre",
+ "element-post-message-post", "element-query-pre", "element-query-post"
+};
+
+GQuark _priv_gst_tracer_quark_table[GST_TRACER_QUARK_MAX];
+
/* tracing helpers */
gboolean _priv_tracer_enabled = FALSE;
-/* TODO(ensonic): use array of GPtrArray* ? */
-GList *_priv_tracers[GST_TRACER_HOOK_ID_LAST] = { NULL, };
+GHashTable *_priv_tracers = NULL;
typedef struct
{
GST_INFO ("enabling tracers: '%s'", env);
+ if (G_N_ELEMENTS (_quark_strings) != GST_TRACER_QUARK_MAX)
+ g_warning ("the quark table is not consistent! %d != %d",
+ (gint) G_N_ELEMENTS (_quark_strings), GST_TRACER_QUARK_MAX);
+
+ for (i = 0; i < GST_TRACER_QUARK_MAX; i++) {
+ _priv_gst_tracer_quark_table[i] =
+ g_quark_from_static_string (_quark_strings[i]);
+ }
+
+ _priv_tracers = g_hash_table_new (NULL, NULL);
+
+ i = 0;
while (t[i]) {
// check t[i] for params
if ((params = strchr (t[i], '('))) {
void
_priv_gst_tracer_deinit (void)
{
- gint i;
- GList *node;
+ GList *h_list, *h_node, *t_node;
GstTracerHook *hook;
+ _priv_tracer_enabled = FALSE;
+ if (!_priv_tracers)
+ return;
+
/* shutdown tracers for final reports */
- for (i = 0; i < GST_TRACER_HOOK_ID_LAST; i++) {
- for (node = _priv_tracers[i]; node; node = g_list_next (node)) {
- hook = (GstTracerHook *) node->data;
+ h_list = g_hash_table_get_values (_priv_tracers);
+ for (h_node = h_list; h_node; h_node = g_list_next (h_node)) {
+ for (t_node = h_node->data; t_node; t_node = g_list_next (t_node)) {
+ hook = (GstTracerHook *) t_node->data;
gst_object_unref (hook->tracer);
g_slice_free (GstTracerHook, hook);
}
- g_list_free (_priv_tracers[i]);
- _priv_tracers[i] = NULL;
+ g_list_free (h_node->data);
}
- _priv_tracer_enabled = FALSE;
+ g_list_free (h_list);
+ g_hash_table_destroy (_priv_tracers);
+ _priv_tracers = NULL;
}
void
-gst_tracer_register_hook (GstTracer * tracer, GstTracerHookId id,
+gst_tracer_register_hook_id (GstTracer * tracer, GQuark detail,
GstTracerHookFunction func)
{
+ gpointer key = GINT_TO_POINTER (detail);
+ GList *list = g_hash_table_lookup (_priv_tracers, key);
GstTracerHook *hook = g_slice_new0 (GstTracerHook);
hook->tracer = gst_object_ref (tracer);
hook->func = func;
- _priv_tracers[id] = g_list_prepend (_priv_tracers[id], hook);
- GST_DEBUG_OBJECT (tracer, "added tracer to hook %d", id);
+
+ list = g_list_prepend (list, hook);
+ g_hash_table_replace (_priv_tracers, key, list);
+ GST_DEBUG ("registering tracer for '%s', list.len=%d",
+ (detail ? g_quark_to_string (detail) : "*"), g_list_length (list));
_priv_tracer_enabled = TRUE;
}
void
-gst_tracer_dispatch (GstTracerHookId id, ...)
+gst_tracer_register_hook (GstTracer * tracer, const gchar * detail,
+ GstTracerHookFunction func)
+{
+ gst_tracer_register_hook_id (tracer, g_quark_try_string (detail), func);
+}
+
+void
+gst_tracer_dispatch (GQuark detail, ...)
{
va_list var_args;
- GList *node;
+ gpointer key = GINT_TO_POINTER (detail);
+ GList *list, *node;
GstTracerHook *hook;
- for (node = _priv_tracers[id]; node; node = g_list_next (node)) {
+ list = g_hash_table_lookup (_priv_tracers, key);
+ GST_DEBUG ("calling %d tracers for '%s'", g_list_length (list),
+ g_quark_to_string (detail));
+ for (node = list; node; node = g_list_next (node)) {
+ hook = (GstTracerHook *) node->data;
+ va_start (var_args, detail);
+ hook->func (hook->tracer, var_args);
+ va_end (var_args);
+ }
+ list = g_hash_table_lookup (_priv_tracers, NULL);
+ GST_DEBUG ("calling %d tracers for '*'", g_list_length (list));
+ for (node = list; node; node = g_list_next (node)) {
hook = (GstTracerHook *) node->data;
- va_start (var_args, id);
+ va_start (var_args, detail);
hook->func (hook->tracer, var_args);
va_end (var_args);
}
#ifndef GST_DISABLE_GST_DEBUG
-/* tracer hook message ids */
-
-typedef enum
-{
- GST_TRACER_HOOK_ID_PAD_PUSH_PRE = 0,
- GST_TRACER_HOOK_ID_PAD_PUSH_POST,
- GST_TRACER_HOOK_ID_PAD_PUSH_LIST_PRE,
- GST_TRACER_HOOK_ID_PAD_PUSH_LIST_POST,
- GST_TRACER_HOOK_ID_PAD_PULL_RANGE_PRE,
- GST_TRACER_HOOK_ID_PAD_PULL_RANGE_POST,
- GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_PRE,
- GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_POST,
- GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_PRE,
- GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_POST,
- GST_TRACER_HOOK_ID_ELEMENT_QUERY_PRE,
- GST_TRACER_HOOK_ID_ELEMENT_QUERY_POST,
- GST_TRACER_HOOK_ID_LAST
-} GstTracerHookId;
-
/* tracing hooks */
void _priv_gst_tracer_init (void);
/* tracing helpers */
-void gst_tracer_dispatch (GstTracerHookId id, ...);
+void gst_tracer_dispatch (GQuark detail, ...);
-/* tracing module helpers */
+/* tracer quarks */
-void gst_tracer_log_trace (GstStructure * s);
+/* These enums need to match the number and order
+ * of strings declared in _quark_table, in gsttracerutils.c */
+typedef enum _GstTracerQuarkId
+{
+ GST_TRACER_QUARK_HOOK_PAD_PUSH_PRE = 0,
+ GST_TRACER_QUARK_HOOK_PAD_PUSH_POST,
+ GST_TRACER_QUARK_HOOK_PAD_PUSH_LIST_PRE,
+ GST_TRACER_QUARK_HOOK_PAD_PUSH_LIST_POST,
+ GST_TRACER_QUARK_HOOK_PAD_PULL_RANGE_PRE,
+ GST_TRACER_QUARK_HOOK_PAD_PULL_RANGE_POST,
+ GST_TRACER_QUARK_HOOK_PAD_PUSH_EVENT_PRE ,
+ GST_TRACER_QUARK_HOOK_PAD_PUSH_EVENT_POST,
+ GST_TRACER_QUARK_HOOK_ELEMENT_POST_MESSAGE_PRE,
+ GST_TRACER_QUARK_HOOK_ELEMENT_POST_MESSAGE_POST,
+ GST_TRACER_QUARK_HOOK_ELEMENT_QUERY_PRE,
+ GST_TRACER_QUARK_HOOK_ELEMENT_QUERY_POST,
+ GST_TRACER_QUARK_MAX
+} GstTracerQuarkId;
+
+extern GQuark _priv_gst_tracer_quark_table[GST_TRACER_QUARK_MAX];
+
+#define GST_TRACER_QUARK(q) _priv_gst_tracer_quark_table[GST_TRACER_QUARK_##q]
+
+/* tracing module helpers */
extern gboolean _priv_tracer_enabled;
-extern GList *_priv_tracers[GST_TRACER_HOOK_ID_LAST];
+extern GHashTable *_priv_tracers;
#define GST_TRACER_IS_ENABLED(id) \
- (_priv_tracer_enabled && (_priv_tracers[id] != NULL))
+ (_priv_tracer_enabled && \
+ (g_hash_table_contains (_priv_tracers, GINT_TO_POINTER(id))))
#define GST_TRACER_TS \
GST_CLOCK_DIFF (_priv_gst_info_start_time, gst_util_get_timestamp ())
/* tracing hooks */
#define GST_TRACER_PAD_PUSH_PRE(pad, buffer) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PUSH_PRE)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PUSH_PRE, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PUSH_PRE))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PUSH_PRE), \
GST_TRACER_TS, \
pad, buffer); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PUSH_POST(pad, res) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PUSH_POST)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PUSH_POST, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PUSH_POST))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PUSH_POST), \
GST_TRACER_TS, \
pad, res); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PUSH_LIST_PRE(pad, list) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PUSH_LIST_PRE)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PUSH_LIST_PRE, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PUSH_LIST_PRE))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PUSH_LIST_PRE), \
GST_TRACER_TS, \
pad, list); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PUSH_LIST_POST(pad, res) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PUSH_LIST_POST)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PUSH_LIST_POST, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PUSH_LIST_POST))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PUSH_LIST_POST), \
GST_TRACER_TS, \
pad, res); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PULL_RANGE_PRE(pad, offset, size) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PULL_RANGE_PRE)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PULL_RANGE_PRE, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PULL_RANGE_PRE))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PULL_RANGE_PRE), \
GST_TRACER_TS, \
pad, offset, size); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PULL_RANGE_POST(pad, buffer, res) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PULL_RANGE_POST)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PULL_RANGE_POST, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PULL_RANGE_POST))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PULL_RANGE_POST), \
GST_TRACER_TS, \
pad, buffer, res); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PUSH_EVENT_PRE(pad, event) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_PRE)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_PRE, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PUSH_EVENT_PRE))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PUSH_EVENT_PRE), \
GST_TRACER_TS, \
pad, event); \
} \
}G_STMT_END
#define GST_TRACER_PAD_PUSH_EVENT_POST(pad, res) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_POST)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_POST, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_PAD_PUSH_EVENT_POST))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_PAD_PUSH_EVENT_POST), \
GST_TRACER_TS, \
pad, res); \
} \
}G_STMT_END
#define GST_TRACER_ELEMENT_POST_MESSAGE_PRE(element, message) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_PRE)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_PRE, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_ELEMENT_POST_MESSAGE_PRE))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_ELEMENT_POST_MESSAGE_PRE), \
GST_TRACER_TS, \
element, message); \
} \
}G_STMT_END
#define GST_TRACER_ELEMENT_POST_MESSAGE_POST(element, res) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_POST)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_POST, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_ELEMENT_POST_MESSAGE_POST))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_ELEMENT_POST_MESSAGE_POST), \
GST_TRACER_TS, \
element, res); \
} \
}G_STMT_END
#define GST_TRACER_ELEMENT_QUERY_PRE(element, query) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_ELEMENT_QUERY_PRE)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_ELEMENT_QUERY_PRE, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_ELEMENT_QUERY_PRE))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_ELEMENT_QUERY_PRE), \
GST_TRACER_TS, \
element, query); \
} \
}G_STMT_END
#define GST_TRACER_ELEMENT_QUERY_POST(element, res) G_STMT_START{ \
- if (GST_TRACER_IS_ENABLED(GST_TRACER_HOOK_ID_ELEMENT_QUERY_POST)) { \
- gst_tracer_dispatch (GST_TRACER_HOOK_ID_ELEMENT_QUERY_POST, \
+ if (GST_TRACER_IS_ENABLED(GST_TRACER_QUARK(HOOK_ELEMENT_QUERY_POST))) { \
+ gst_tracer_dispatch (GST_TRACER_QUARK(HOOK_ELEMENT_QUERY_POST), \
GST_TRACER_TS, \
element, res); \
} \
gst_latency_tracer_init (GstLatencyTracer * self)
{
GstTracer *tracer = GST_TRACER (self);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_PRE,
- do_push_buffer_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_LIST_PRE,
- do_push_buffer_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_POST,
- do_push_buffer_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_LIST_POST,
- do_push_buffer_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PULL_RANGE_PRE,
- do_pull_range_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PULL_RANGE_POST,
- do_pull_range_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_PRE,
- do_push_event_pre);
- /*
- - we should also replace GstTracerHookId with a 'detail' string like in
- signals
- - then we can attach to *all* hooks with 'null' as detail
- gst_tracer_register_hook (self, gchar *detail, func);
- gst_tracer_register_hook_id (self, GQuark detail, func);
- */
+ gst_tracer_register_hook (tracer, "pad-push-pre", do_push_buffer_pre);
+ gst_tracer_register_hook (tracer, "pad-push-list-pre", do_push_buffer_pre);
+ gst_tracer_register_hook (tracer, "pad-push-post", do_push_buffer_post);
+ gst_tracer_register_hook (tracer, "pad-push-list-post", do_push_buffer_post);
+ gst_tracer_register_hook (tracer, "pad-pull-range-pre", do_pull_range_pre);
+ gst_tracer_register_hook (tracer, "pad-pull-range-post", do_pull_range_post);
+ gst_tracer_register_hook (tracer, "pad-push-event-pre", do_push_event_pre);
}
{
GstTracer *tracer = GST_TRACER (self);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_PRE,
- do_push_buffer_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_POST,
- do_push_buffer_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_LIST_PRE,
+ gst_tracer_register_hook (tracer, "pad-push-pre", do_push_buffer_pre);
+ gst_tracer_register_hook (tracer, "pad-push-post", do_push_buffer_post);
+ gst_tracer_register_hook (tracer, "pad-push-list-pre",
do_push_buffer_list_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_LIST_POST,
+ gst_tracer_register_hook (tracer, "pad-push-list-post",
do_push_buffer_list_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PULL_RANGE_PRE,
- do_pull_range_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PULL_RANGE_POST,
- do_pull_range_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_PRE,
- do_push_event_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_POST,
- do_push_event_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_PRE,
+ gst_tracer_register_hook (tracer, "pad-pull-range-pre", do_pull_range_pre);
+ gst_tracer_register_hook (tracer, "pad-pull-range-post", do_pull_range_post);
+ gst_tracer_register_hook (tracer, "pad-push-event-pre", do_push_event_pre);
+ gst_tracer_register_hook (tracer, "pad-push-event-post", do_push_event_post);
+ gst_tracer_register_hook (tracer, "element-post-message-pre",
do_post_message_pre);
- gst_tracer_register_hook (tracer,
- GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_POST, do_post_message_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_ELEMENT_QUERY_PRE,
- do_query_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_ELEMENT_QUERY_POST,
- do_query_post);
+ gst_tracer_register_hook (tracer, "element-post-message-post",
+ do_post_message_post);
+ gst_tracer_register_hook (tracer, "element-query-pre", do_query_pre);
+ gst_tracer_register_hook (tracer, "element-query-post", do_query_post);
}
gst_rusage_tracer_init (GstRUsageTracer * self)
{
GstTracer *tracer = GST_TRACER (self);
- gint i;
- for (i = 0; i < GST_TRACER_HOOK_ID_LAST; i++) {
- gst_tracer_register_hook (tracer, i, do_stats);
- }
+ gst_tracer_register_hook_id (tracer, 0, do_stats);
self->threads = g_hash_table_new_full (NULL, NULL, NULL, free_thread_stats);
{
GstTracer *tracer = GST_TRACER (self);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_PRE,
+ gst_tracer_register_hook (tracer, "pad-push-pre",
(GstTracerHookFunction) do_push_buffer_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_POST,
+ gst_tracer_register_hook (tracer, "pad-push-post",
(GstTracerHookFunction) do_push_buffer_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_LIST_PRE,
+ gst_tracer_register_hook (tracer, "pad-push-list-pre",
(GstTracerHookFunction) do_push_buffer_list_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_LIST_POST,
+ gst_tracer_register_hook (tracer, "pad-push-list-post",
(GstTracerHookFunction) do_push_buffer_list_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PULL_RANGE_PRE,
+ gst_tracer_register_hook (tracer, "pad-pull-range-pre",
(GstTracerHookFunction) do_pull_range_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PULL_RANGE_POST,
+ gst_tracer_register_hook (tracer, "pad-pull-range-post",
(GstTracerHookFunction) do_pull_range_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_PRE,
+ gst_tracer_register_hook (tracer, "pad-push-event-pre",
(GstTracerHookFunction) do_push_event_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_PAD_PUSH_EVENT_POST,
+ gst_tracer_register_hook (tracer, "pad-push-event-post",
(GstTracerHookFunction) do_push_event_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_PRE,
+ gst_tracer_register_hook (tracer, "element-post-message-pre",
(GstTracerHookFunction) do_post_message_pre);
- gst_tracer_register_hook (tracer,
- GST_TRACER_HOOK_ID_ELEMENT_POST_MESSAGE_POST,
+ gst_tracer_register_hook (tracer, "element-post-message-post",
(GstTracerHookFunction) do_post_message_post);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_ELEMENT_QUERY_PRE,
+ gst_tracer_register_hook (tracer, "element-query-pre",
(GstTracerHookFunction) do_query_pre);
- gst_tracer_register_hook (tracer, GST_TRACER_HOOK_ID_ELEMENT_QUERY_POST,
+ gst_tracer_register_hook (tracer, "element-query-post",
(GstTracerHookFunction) do_query_post);
-
self->elements = g_ptr_array_new_with_free_func (free_element_stats);
self->pads = g_ptr_array_new_with_free_func (free_pad_stats);
}