mpf-xml-pipeline-dump component

I have committed a new component to SVN to assist with diagnosing MPF (and gstreamer) pipelines: MPF/components/mpf-xml-pipeline-dump.  This component acts as an identity transform, but will dump the structure of the pipeline on the first call to component_process.  The default is a dump to stdout, but the component also supports a "location=filename" parameter to place the XML in a named file.  The dump is performed by the gst_xml_write_file function, and is rather verbose. 

One thing to watch for in the dump is that pads are connected properly, especially when using components that support ghost pads that can remain unconnected at runtime. The following extract shows the connection between fakesrc and the xml-dump component:

        <gst:pad>
          <gst:name>src</gst:name>
          <gst:direction>source</gst:direction>
          <gst:peer>mpfcomponenttemplate_mpf-xml-pipeline-dump0.input</gst:peer>
        </gst:pad>

Examples.

1. Simple fakesink -> fakesrc

gst-launch fakesrc num-buffers=5 ! mpf-xml-pipeline-dump location="dump.xml" ! fakesink

dump.xml:

$ more dump.xml
<?xml version="1.0"?>
<gstreamer xmlns:gst="http://gstreamer.net/gst-core/1.0/">
  <gst:element>
    <gst:name>pipeline0</gst:name>
    <gst:type>pipeline</gst:type>
    <gst:param>
      <gst:name>name</gst:name>
      <gst:value>pipeline0</gst:value>
    </gst:param>
    <gst:param>
      <gst:name>async-handling</gst:name>
      <gst:value>FALSE</gst:value>
    </gst:param>
    <gst:param>
      <gst:name>delay</gst:name>
      <gst:value>0</gst:value>
    </gst:param>
    <gst:param>
      <gst:name>auto-flush-bus</gst:name>
      <gst:value>TRUE</gst:value>
    </gst:param>
    <gst:children>
      <gst:element>
        <gst:name>fakesink0</gst:name>
        <gst:type>fakesink</gst:type>
        <gst:param>
          <gst:name>name</gst:name>
          <gst:value>fakesink0</gst:value>
        </gst:param>
        <gst:param>
          <gst:name>preroll-queue-len</gst:name>
          <gst:value>0</gst:value>
        </gst:param>
        <gst:param>
          <gst:name>sync</gst:name>
          <gst:value>FALSE</gst:value>

        </gst:param>
--More--(15%)