mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-22 05:56:31 +00:00
log: make the log tracer more verbose again
Define log formats per message type and print details.
This commit is contained in:
parent
11d6e13d73
commit
75fb1f1a73
2 changed files with 41 additions and 7 deletions
|
@ -166,8 +166,8 @@ Problems / Open items
|
|||
|
||||
Try it
|
||||
======
|
||||
GST_DEBUG="GST_REG*:4,GST_TRACER:4,log:7" GST_TRACE=log gst-launch-1.0 fakesrc num-buffers=10 ! fakesink
|
||||
GST_DEBUG="GST_TRACER:4,GST_BUFFER*:7,log:7" GST_TRACE=log gst-launch-1.0 fakesrc num-buffers=10 ! fakesink
|
||||
- traces for buffer flow in TRACE level and default category
|
||||
|
||||
GST_DEBUG="GST_REG*:4,GST_TRACER:4" GST_TRACE=stats gst-launch-1.0 fakesrc num-buffers=10 ! queue ! fakesink
|
||||
GST_DEBUG="GST_TRACER:4" GST_TRACE=stats gst-launch-1.0 fakesrc num-buffers=10 ! queue ! fakesink
|
||||
- print some pipeline stats on exit
|
||||
|
|
|
@ -27,9 +27,13 @@
|
|||
|
||||
GST_DEBUG_CATEGORY_STATIC (gst_log_debug);
|
||||
#define GST_CAT_DEFAULT gst_log_debug
|
||||
GST_DEBUG_CATEGORY_STATIC (GST_CAT_BUFFER);
|
||||
GST_DEBUG_CATEGORY_STATIC (GST_CAT_BUFFER_LIST);
|
||||
|
||||
#define _do_init \
|
||||
GST_DEBUG_CATEGORY_INIT (gst_log_debug, "log", 0, "log tracer");
|
||||
GST_DEBUG_CATEGORY_INIT (gst_log_debug, "log", 0, "log tracer"); \
|
||||
GST_DEBUG_CATEGORY_GET (GST_CAT_BUFFER, "GST_BUFFER"); \
|
||||
GST_DEBUG_CATEGORY_GET (GST_CAT_BUFFER_LIST, "GST_BUFFER_LIST");
|
||||
#define gst_log_tracer_parent_class parent_class
|
||||
G_DEFINE_TYPE_WITH_CODE (GstLogTracer, gst_log_tracer, GST_TYPE_TRACER,
|
||||
_do_init);
|
||||
|
@ -55,13 +59,43 @@ static void
|
|||
gst_log_tracer_invoke (GstTracer * self, GstTracerHookId hid,
|
||||
GstTracerMessageId mid, va_list var_args)
|
||||
{
|
||||
const gchar *fmt = NULL;
|
||||
GstDebugCategory *cat = GST_CAT_DEFAULT;
|
||||
guint64 ts = va_arg (var_args, guint64);
|
||||
/* TODO(ensonic): log to different categories depending on 'hid'/'mid'
|
||||
* GST_TRACER_HOOK_ID_BUFFERS -> GST_CAT_BUFFER
|
||||
|
||||
/* TODO(ensonic): log to different categories depending on 'mid'
|
||||
* GST_TRACER_HOOK_ID_EVENTS -> GST_CAT_EVENT
|
||||
* GST_TRACER_HOOK_ID_MESSAGES -> GST_CAT_MESSAGE
|
||||
* GST_TRACER_HOOK_ID_QUERIES -> ?
|
||||
* GST_TRACER_HOOK_ID_QUERIES -> (static category)
|
||||
* GST_TRACER_HOOK_ID_TOPLOGY -> ?
|
||||
*/
|
||||
GST_TRACE ("[%d,%d] %" GST_TIME_FORMAT, hid, mid, GST_TIME_ARGS (ts));
|
||||
switch (mid) {
|
||||
case GST_TRACER_MESSAGE_ID_PAD_PUSH_PRE:
|
||||
cat = GST_CAT_BUFFER;
|
||||
fmt = "pad=%" GST_PTR_FORMAT ", buffer=%" GST_PTR_FORMAT;
|
||||
break;
|
||||
case GST_TRACER_MESSAGE_ID_PAD_PUSH_POST:
|
||||
cat = GST_CAT_BUFFER;
|
||||
fmt = "pad=%" GST_PTR_FORMAT ", res=%d";
|
||||
break;
|
||||
case GST_TRACER_MESSAGE_ID_PAD_PUSH_LIST_PRE:
|
||||
cat = GST_CAT_BUFFER_LIST;
|
||||
fmt = "pad=%" GST_PTR_FORMAT ", list=%p";
|
||||
break;
|
||||
case GST_TRACER_MESSAGE_ID_PAD_PUSH_LIST_POST:
|
||||
cat = GST_CAT_BUFFER_LIST;
|
||||
fmt = "pad=%" GST_PTR_FORMAT ", res=%d";
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (fmt) {
|
||||
gchar *str = g_strdup_vprintf (fmt, var_args);
|
||||
GST_CAT_TRACE (cat, "[%d,%d] %" GST_TIME_FORMAT ", %s",
|
||||
hid, mid, GST_TIME_ARGS (ts), str);
|
||||
g_free (str);
|
||||
} else {
|
||||
GST_CAT_TRACE (cat, "[%d,%d] %" GST_TIME_FORMAT,
|
||||
hid, mid, GST_TIME_ARGS (ts));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue