- if (GST_IS_GHOST_PAD (pad)) {
- if ((tmp_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (pad)))) {
- if ((target_pad = gst_pad_get_peer (tmp_pad))) {
- target_pad_name =
- debug_dump_make_object_name (GST_OBJECT (target_pad));
- if ((target_element = gst_pad_get_parent_element (target_pad))) {
- target_element_name =
- debug_dump_make_object_name (GST_OBJECT (target_element));
- } else {
- target_element_name = g_strdup ("");
- }
- /* src ghostpad relationship */
- fprintf (out, "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n", spc,
- target_element_name, target_pad_name, element_name, pad_name);
-
- g_free (target_pad_name);
- g_free (target_element_name);
- if (target_element)
- gst_object_unref (target_element);
- gst_object_unref (target_pad);
- }
- gst_object_unref (tmp_pad);
- }
- }
- if (GST_IS_GHOST_PAD (peer_pad)) {
- if ((tmp_pad = gst_ghost_pad_get_target (GST_GHOST_PAD (peer_pad)))) {
- if ((target_pad = gst_pad_get_peer (tmp_pad))) {
- target_pad_name =
- debug_dump_make_object_name (GST_OBJECT (target_pad));
- if ((target_element = gst_pad_get_parent_element (target_pad))) {
- target_element_name =
- debug_dump_make_object_name (GST_OBJECT (target_element));
- } else {
- target_element_name = g_strdup ("");
- }
- /* sink ghostpad relationship */
- fprintf (out, "%s%s_%s -> %s_%s [style=dashed, minlen=0]\n", spc,
- peer_element_name, peer_pad_name,
- target_element_name, target_pad_name);
- /* FIXME: we are missing links from the proxy pad
- * theoretically we need to:
- * pad=gst_object_ref(target_pad);
- * goto line 280: if ((peer_pad = gst_pad_get_peer (pad)))
- * as this would be ugly we need to refactor ...
- */
- debug_dump_element_pad_link (target_pad, target_element, details, out,
- indent);
- g_free (target_pad_name);
- g_free (target_element_name);
- if (target_element)
- gst_object_unref (target_element);
- gst_object_unref (target_pad);
- }
- gst_object_unref (tmp_pad);
- }
- }
-