| <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-1.0 (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 && 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> |
| Since GStreamer version 0.10 this is not needed 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-1.X/</filename> |
| and run |
| <programlisting> |
| gst-inspect-1.0 |
| </programlisting> |
| to rebuild the registry. |
| </para> |
| </answer> |
| </qandaentry> |
| |
| </qandaset> |
| </sect1> |