summaryrefslogtreecommitdiff
path: root/gst
diff options
context:
space:
mode:
authorArun Raghavan <arun@accosted.net>2014-10-25 17:16:25 +0530
committerArun Raghavan <git@arunraghavan.net>2014-12-18 17:19:36 +0530
commite4d6896d0c756844b558e9adc5e41479788d7367 (patch)
tree3d0db10f7a49a500721562f8b47b684aff11d9d3 /gst
parent537384898f749b5544191ec7854f84a256f2ea20 (diff)
debugutils: Truncate parameter values that are too long
This removes some information from the dumps, but improves readability. https://bugzilla.gnome.org/show_bug.cgi?id=739165
Diffstat (limited to 'gst')
-rw-r--r--gst/gstdebugutils.c35
-rw-r--r--gst/gstdebugutils.h13
2 files changed, 37 insertions, 11 deletions
diff --git a/gst/gstdebugutils.c b/gst/gstdebugutils.c
index 291bc4419..02a7456b8 100644
--- a/gst/gstdebugutils.c
+++ b/gst/gstdebugutils.c
@@ -90,13 +90,15 @@ debug_dump_get_element_state (GstElement * element)
}
static gchar *
-debug_dump_get_element_params (GstElement * element)
+debug_dump_get_element_params (GstElement * element,
+ GstDebugGraphDetails details)
{
gchar *param_name = NULL;
GParamSpec **properties, *property;
GValue value = { 0, };
guint i, number_of_properties;
gchar *tmp, *value_str;
+ const gchar *ellipses;
/* get paramspecs and show non-default properties */
properties =
@@ -118,14 +120,30 @@ debug_dump_get_element_params (GstElement * element)
tmp = g_strdup_value_contents (&value);
value_str = g_strescape (tmp, NULL);
g_free (tmp);
- if (param_name) {
+
+ /* too long, ellipsize */
+ if (!(details & GST_DEBUG_GRAPH_SHOW_FULL_PARAMS) &&
+ strlen (value_str) > 80)
+ ellipses = "...";
+ else
+ ellipses = "";
+
+ if (param_name)
tmp = param_name;
- param_name = g_strdup_printf ("%s\\n%s=%s",
- tmp, property->name, value_str);
- g_free (tmp);
+ else
+ tmp = (char *) "";
+
+ if (details & GST_DEBUG_GRAPH_SHOW_FULL_PARAMS) {
+ param_name = g_strdup_printf ("%s\\n%s=%s", tmp, property->name,
+ value_str);
} else {
- param_name = g_strdup_printf ("\\n%s=%s", property->name, value_str);
+ param_name = g_strdup_printf ("%s\\n%s=%.80s%s", tmp, property->name,
+ value_str, ellipses);
}
+
+ if (tmp[0] != '\0')
+ g_free (tmp);
+
g_free (value_str);
}
g_value_unset (&value);
@@ -514,7 +532,8 @@ debug_dump_element (GstBin * bin, GstDebugGraphDetails details,
state_name = debug_dump_get_element_state (GST_ELEMENT (element));
}
if (details & GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS) {
- param_name = debug_dump_get_element_params (GST_ELEMENT (element));
+ param_name = debug_dump_get_element_params (GST_ELEMENT (element),
+ details);
}
/* elements */
g_string_append_printf (str, "%ssubgraph cluster_%s {\n", spc,
@@ -627,7 +646,7 @@ debug_dump_header (GstBin * bin, GstDebugGraphDetails details, GString * str)
state_name = debug_dump_get_element_state (GST_ELEMENT (bin));
}
if (details & GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS) {
- param_name = debug_dump_get_element_params (GST_ELEMENT (bin));
+ param_name = debug_dump_get_element_params (GST_ELEMENT (bin), details);
}
/* write header */
diff --git a/gst/gstdebugutils.h b/gst/gstdebugutils.h
index 4b1019711..06618f9d9 100644
--- a/gst/gstdebugutils.h
+++ b/gst/gstdebugutils.h
@@ -33,9 +33,14 @@ G_BEGIN_DECLS
* GstDebugGraphDetails:
* @GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE: show caps-name on edges
* @GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS: show caps-details on edges
- * @GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS: show modified parameters on elements
+ * @GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS: show modified parameters on
+ * elements
* @GST_DEBUG_GRAPH_SHOW_STATES: show element states
- * @GST_DEBUG_GRAPH_SHOW_ALL: show all details
+ * @GST_DEBUG_GRAPH_SHOW_FULL_PARAMS: show full element parameter values even
+ * if they are very long
+ * @GST_DEBUG_GRAPH_SHOW_ALL: show all the typical details that one might want
+ * @GST_DEBUG_GRAPH_SHOW_VERBOSE: show all details regardless of how large or
+ * verbose they make the resulting output
*
* Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
* and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().
@@ -45,7 +50,9 @@ typedef enum {
GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS = (1<<1),
GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS = (1<<2),
GST_DEBUG_GRAPH_SHOW_STATES = (1<<3),
- GST_DEBUG_GRAPH_SHOW_ALL = ((1<<4)-1)
+ GST_DEBUG_GRAPH_SHOW_FULL_PARAMS = (1<<4),
+ GST_DEBUG_GRAPH_SHOW_ALL = ((1<<4)-1),
+ GST_DEBUG_GRAPH_SHOW_VERBOSE = (-1)
} GstDebugGraphDetails;