/* GStreamer
* Copyright (C) 2007 Stefan Kost <ensonic@users.sf.net>
*
- * gstdebugutils.c: debugging and analysis utillities
+ * gstdebugutils.c: debugging and analysis utilities
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
/* TODO:
* edge [ constraint=false ];
* this creates strange graphs ("minlen=0" is better)
- * try puting src/sink ghostpads for each bin into invisible clusters
+ * try putting src/sink ghostpads for each bin into invisible clusters
*
* for more compact nodes, try
* - changing node-shape from box into record
#define PARAM_MAX_LENGTH 80
-const gchar spaces[] = {
+static const gchar spaces[] = {
" " /* 32 */
" " /* 64 */
" " /* 96 */
param_name =
debug_dump_get_object_params (G_OBJECT (pad), details, ignore_propnames);
if (details & GST_DEBUG_GRAPH_SHOW_STATES) {
- gchar pad_flags[4];
+ gchar pad_flags[5];
const gchar *activation_mode = "-><";
const gchar *task_mode = "";
GstTask *task;
GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_FLUSHING) ? 'F' : 'f';
pad_flags[2] =
GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_BLOCKING) ? 'B' : 'b';
- pad_flags[3] = '\0';
+ pad_flags[3] = GST_OBJECT_FLAG_IS_SET (pad, GST_PAD_FLAG_EOS) ? 'E' : '\0';
+ pad_flags[4] = '\0';
g_string_append_printf (str,
"%s %s_%s [color=black, fillcolor=\"%s\", label=\"%s%s\\n[%c][%s]%s\", height=\"0.2\", style=\"%s\"];\n",
" pos=\"0,0!\",\n"
" margin=\"0.05,0.05\",\n"
" style=\"filled\",\n"
- " label=\"Legend\\lElement-States: [~] void-pending, [0] null, [-] ready, [=] paused, [>] playing\\lPad-Activation: [-] none, [>] push, [<] pull\\lPad-Flags: [b]locked, [f]lushing, [b]locking; upper-case is set\\lPad-Task: [T] has started task, [t] has paused task\\l\",\n"
+ " label=\"Legend\\lElement-States: [~] void-pending, [0] null, [-] ready, [=] paused, [>] playing\\lPad-Activation: [-] none, [>] push, [<] pull\\lPad-Flags: [b]locked, [f]lushing, [b]locking, [E]OS; upper-case is set\\lPad-Task: [T] has started task, [t] has paused task\\l\",\n"
" ];"
"\n", G_OBJECT_TYPE_NAME (bin), GST_OBJECT_NAME (bin),
(state_name ? state_name : ""), (param_name ? param_name : "")
g_string_append_printf (str, "}\n");
}
-/*
+/**
* gst_debug_bin_to_dot_data:
* @bin: the top-level pipeline that should be analyzed
+ * @details: type of #GstDebugGraphDetails to use
*
* To aid debugging applications one can use this method to obtain the whole
* network of gstreamer elements that form the pipeline into an dot file.
return g_string_free (str, FALSE);
}
-/*
+/**
* gst_debug_bin_to_dot_file:
* @bin: the top-level pipeline that should be analyzed
- * @file_name: output base filename (e.g. "myplayer")
+ * @details: type of #GstDebugGraphDetails to use
+ * @file_name: (type filename): output base filename (e.g. "myplayer")
*
* To aid debugging applications one can use this method to write out the whole
* network of gstreamer elements that form the pipeline into an dot file.
g_free (full_file_name);
}
-/*
+/**
* gst_debug_bin_to_dot_file_with_ts:
* @bin: the top-level pipeline that should be analyzed
- * @file_name: output base filename (e.g. "myplayer")
+ * @details: type of #GstDebugGraphDetails to use
+ * @file_name: (type filename): output base filename (e.g. "myplayer")
*
* This works like gst_debug_bin_to_dot_file(), but adds the current timestamp
* to the filename, so that it can be used to take multiple snapshots.