<sect1 id="chapter-troubleshooting">
  <title id="title-troubleshooting">Troubleshooting GStreamer</title>
  <qandaset defaultlabel="qanda">

    <qandaentry>
      <question id="troubleshooting-missing-plug-in">
        <para>
Some application is telling me that I am missing a plug-in.  What do I do ?
        </para>
      </question>

      <answer>
        <para>
Well, start by checking if you really are missing the plug-in.
  <programlisting>
gst-inspect (plug-in)
  </programlisting>
and replace (plug-in) with the plug-in you think is missing.
If this doesn't return any result, then you either don't have it or your
registry cannot find it.
        </para>
        <para>
If you're not sure either way, then chances are good that you don't have
it.  You should get the plug-in and run gst-register to register it.
How to get the plug-in depends on your distribution.
<itemizedlist>
<listitem><para>if you run GStreamer using packages for your distribution, you
should check what packages are available for your distribution and see
if any of the available packages contains the plug-in.
</para></listitem>
<listitem><para>if you run GStreamer from a source install, there's a good chance
the plug-in didn't get built because you are missing an external library.
When you ran configure, you should have gotten output of what plug-ins are
going to be built.  You can re-run configure to see if it's there.
If it isn't, there is a good reason why it is not getting built.
The most likely is that you're missing the library you need for it.
Check the README file in gst-plugins to see what library you need.
Make sure to remember to re-run configure after installing the supporting
library !
</para></listitem>
<listitem><para>
if you run GStreamer from git, the same logic applies as for a source install.
Go over the reasons why the plug-in didn't get configured for build.
Check output of config.log for a clue as to why it doesn't get built if
you're sure you have the library needed installed in a sane place.
</para></listitem>
</itemizedlist>

        </para>
      </answer>
     </qandaentry>

     <qandaentry>
      <question id="troubleshooting-old-plug-ins">
        <para>
I get an error that says something like

(process:26626): GLib-GObject-WARNING **: specified instance size for type 
`DVDReadSrc' is smaller than the parent type's `GstElement' instance size
What's  wrong ?
        </para>
      </question>

      <answer>
        <para>
If you run GStreamer from git uninstalled, it means that something changed in
the core that requires a recompilation in the plugins. Recompile the
plugins by doing "make clean &amp;&amp; make".
        </para>
        <para>
If you run GStreamer installed, it probably means that you run the plugins
against a different (incompatible) version than they were compiled against,
which ususally means that you run multiple installations of GStreamer.
Remove the old ones and - if needed - recompile again to ensure that it is
using the right version.
        </para>
        <para>
Note that we strongly recommend using Debian or RPM packages, since you will
not get such issues if you use provided packages.
        </para>
      </answer>
    </qandaentry>

    <qandaentry>
      <question id="troubleshooting-segfault">
        <para>
The GStreamer application I used stops with a segmentation fault.  What can
I do ?
        </para>
      </question>

      <answer>
        <para>
There are two things you can do.  If you compiled GStreamer with specific
optimization compilation flags, you should try recompiling GStreamer,
the application and the plug-ins without any optimization flags.  This allows
you to verify if the problem is due to optimization or due to bad code.
Second, it will also allow you to provide a reasonable backtrace in case
the segmentation fault still occurs.
        </para>
        <para>
The second thing you can do is look at the backtrace to get an idea of where
things are going wrong, or give us an idea of what is going wrong.
To provide a backtrace, you should
<orderedlist>
<listitem><para>
  run the application in gdb by starting it with
  <programlisting>
    gdb (gst-application)
  </programlisting>
  (If the application is in a source tree instead of installed on the system,
  you might want to put "libtool" before "gdb")
</para></listitem>
<listitem><para>
  Pass on the command line arguments to the application by typing
  <programlisting>
    set args (the arguments to the application)
  </programlisting>
  at the (gdb) prompt
</para></listitem>
<listitem><para>
  Type "run" at the (gdb) prompt and wait for the application to
  segfault.  The application will run a lot slower, however.
</para></listitem>
<listitem><para>
  After the segfault, type "bt" to get a backtrace.  This is a stack of
  function calls detailing the path from main () to where the code is
  currently at.
</para></listitem>
<listitem><para>
  If the application you're trying to debug contains threads, it is also
  useful to do
  <programlisting>
    info threads
  </programlisting>
  and get backtraces of all of the threads involved, by switching to
  a different thread using "thread (number)" and then again requesting
  a backtrace using "bt".
</para></listitem>
<listitem><para>
  If you can't or don't want to work out the problem yourself, a copy and paste
  of all this information should be included in your 
  <link linkend="using-bugs-where">bug report</link>.
</para></listitem>
</orderedlist>
        </para>
      </answer>
    </qandaentry>

    <qandaentry>
      <question id="troubleshooting-gst-register">
        <para>
On my system there is no gst-register command.
        </para>
      </question>

      <answer>
        <para>
GStreamer version 0.10 does not need this anymore. The registry will
be rebuilt automatically. If you suspect the registry is broken, just delete the
<filename>registry.*.xml</filename> files under <filename>$HOME/.gstreamer-0.X/</filename>
and run
<programlisting>
  gst-inspect
</programlisting>
to rebuild the registry.
        </para>
      </answer>
    </qandaentry>
    
  </qandaset>
</sect1>
