<chapter id="cha-programs">
  <title>Programs</title>
  <para> 
  </para>

  <sect1>
    <title><command>gstreamer-config</command></title>
    <para> 
      <command>gstreamer-config</command> is a script to get information about the installed 
      version of <application>GStreamer</application>.
      This program "knows" what compiler switches are needed to compile programs that use 
      <application>GStreamer</application>. 
    </para>
      
    <para> 
      <command>gstreamer-config</command> accepts the following options:
 
     <itemizedlist>
       <listitem>
         <para>
          <option>--version</option> Print the currently installed version of 
	     <application>GStreamer</application> on the standard output. 
         </para>
       </listitem>
       <listitem>
         <para>
          <option>--libs</option> Print the linker flags that are necessary to link a 
	    <application>GStreamer</application> program. 
         </para>
       </listitem>
       <listitem>
         <para>
           <option>--cflags</option> Print the compiler flags that are necessary to compile a 
	     <application>GStreamer</application> program. 
         </para>
       </listitem>
       <listitem>
         <para>
           <option>--prefix=<replaceable>PREFIX</replaceable></option>
             If specified, use <replaceable>PREFIX</replaceable> instead of the installation 
	     prefix that <application>GStreamer</application> was built with when computing the
             output for the <option>--cflags</option> and <option>--libs</option> options. 
	     This option is also used for the exec prefix if 
	     <option>--exec-prefix</option> was not specified. This option must be specified before any 
	     <option>--libs</option> or <option>--cflags</option> options. 
         </para>
       </listitem>
       <listitem>
         <para>
           <option>--exec-prefix=<replaceable>PREFIX</replaceable></option> 
             If specified, use <replaceable>PREFIX</replaceable> instead of the installation exec 
	     prefix that <application>GStreamer</application> was built with when computing the
             output for the <option>--cflags</option> and <option>--libs</option> options. This option must be 
	     specified before any <option>--libs</option> or <option>--cflags</option>
             options. 
         </para>
       </listitem>
     </itemizedlist>
    </para>
    <para>
      A simple <filename>Makefile</filename> will contain something like:
      <programlisting>
CC = gcc

helloworld2: helloworld2.c
   $(CC) -Wall `gstreamer-config --cflags --libs` helloworld2.c -o helloworld2

clean:
   rm -f *.o helloworld2
      </programlisting>
    </para>
  </sect1>

  <sect1>
    <title><command>gstreamer-register</command></title>
    <para> 
      <command>gstreamer-register</command> is used to rebuild the database of plugins.
      It is used after a new plugin has been added to the system. The plugin database
      can be found in <filename>/etc/gstreamer/reg.xml</filename>.
    </para>
  </sect1>

  <sect1>
    <title><command>gstreamer-launch</command></title>
    <para> 
      This is a tool that will construct pipelines based on a command-line
      syntax.  
    </para> 
    <para> 
      A simple commandline looks like:

    <screen>
gstreamer-launch disksrc hello.mp3 ! mp3parse ! mpg123 ! audiosink-oss
    </screen>

      A more complex pipeline looks like:

    <screen>
gstreamer-launch disksrc redpill.vob ! css-descramble ! private_stream_1.0 ! \
         (ac3parse ! ac3dec ! audiosink) video_0 ! (mpeg2dec ! videosink)
    </screen>

    </para>
  </sect1>

  <sect1>
    <title><command>gstmediaplay</command></title>
    <para> 
      A sample media player.
    </para>
  </sect1>

</chapter>