+static void
+debug_dump_header (GstBin * bin, GstDebugGraphDetails details, GString * str)
+{
+ gchar *state_name = NULL;
+ gchar *param_name = NULL;
+
+ if (details & GST_DEBUG_GRAPH_SHOW_STATES) {
+ state_name = debug_dump_get_element_state (GST_ELEMENT (bin));
+ }
+ if (details & GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS) {
+ param_name = debug_dump_get_object_params (G_OBJECT (bin), details, NULL);
+ }
+
+ /* write header */
+ g_string_append_printf (str,
+ "digraph pipeline {\n"
+ " rankdir=LR;\n"
+ " fontname=\"sans\";\n"
+ " fontsize=\"10\";\n"
+ " labelloc=t;\n"
+ " nodesep=.1;\n"
+ " ranksep=.2;\n"
+ " label=\"<%s>\\n%s%s%s\";\n"
+ " node [style=\"filled,rounded\", shape=box, fontsize=\"9\", fontname=\"sans\", margin=\"0.0,0.0\"];\n"
+ " edge [labelfontsize=\"6\", fontsize=\"9\", fontname=\"monospace\"];\n"
+ " \n"
+ " legend [\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, [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 : "")
+ );
+
+ if (state_name)
+ g_free (state_name);
+ if (param_name)
+ g_free (param_name);
+}
+
+static void
+debug_dump_footer (GString * str)
+{
+ g_string_append_printf (str, "}\n");
+}
+
+/**
+ * gst_debug_bin_to_dot_data: