Merge branch 'master' into 0.11
[platform/upstream/gstreamer.git] / docs / faq / troubleshooting.xml
1 <sect1 id="chapter-troubleshooting">
2   <title id="title-troubleshooting">Troubleshooting GStreamer</title>
3   <qandaset defaultlabel="qanda">
4
5     <qandaentry>
6       <question id="troubleshooting-missing-plug-in">
7         <para>
8 Some application is telling me that I am missing a plug-in.  What do I do ?
9         </para>
10       </question>
11
12       <answer>
13         <para>
14 Well, start by checking if you really are missing the plug-in.
15   <programlisting>
16 gst-inspect (plug-in)
17   </programlisting>
18 and replace (plug-in) with the plug-in you think is missing.
19 If this doesn't return any result, then you either don't have it or your
20 registry cannot find it.
21         </para>
22         <para>
23 If you're not sure either way, then chances are good that you don't have
24 it.  You should get the plug-in and run gst-register to register it.
25 How to get the plug-in depends on your distribution.
26 <itemizedlist>
27 <listitem><para>if you run GStreamer using packages for your distribution, you
28 should check what packages are available for your distribution and see
29 if any of the available packages contains the plug-in.
30 </para></listitem>
31 <listitem><para>if you run GStreamer from a source install, there's a good chance
32 the plug-in didn't get built because you are missing an external library.
33 When you ran configure, you should have gotten output of what plug-ins are
34 going to be built.  You can re-run configure to see if it's there.
35 If it isn't, there is a good reason why it is not getting built.
36 The most likely is that you're missing the library you need for it.
37 Check the README file in gst-plugins to see what library you need.
38 Make sure to remember to re-run configure after installing the supporting
39 library !
40 </para></listitem>
41 <listitem><para>
42 if you run GStreamer from git, the same logic applies as for a source install.
43 Go over the reasons why the plug-in didn't get configured for build.
44 Check output of config.log for a clue as to why it doesn't get built if
45 you're sure you have the library needed installed in a sane place.
46 </para></listitem>
47 </itemizedlist>
48
49         </para>
50       </answer>
51      </qandaentry>
52
53      <qandaentry>
54       <question id="troubleshooting-old-plug-ins">
55         <para>
56 I get an error that says something like
57
58 (process:26626): GLib-GObject-WARNING **: specified instance size for type 
59 `DVDReadSrc' is smaller than the parent type's `GstElement' instance size
60 What's  wrong ?
61         </para>
62       </question>
63
64       <answer>
65         <para>
66 If you run GStreamer from git uninstalled, it means that something changed in
67 the core that requires a recompilation in the plugins. Recompile the
68 plugins by doing "make clean &amp;&amp; make".
69         </para>
70         <para>
71 If you run GStreamer installed, it probably means that you run the plugins
72 against a different (incompatible) version than they were compiled against,
73 which ususally means that you run multiple installations of GStreamer.
74 Remove the old ones and - if needed - recompile again to ensure that it is
75 using the right version.
76         </para>
77         <para>
78 Note that we strongly recommend using Debian or RPM packages, since you will
79 not get such issues if you use provided packages.
80         </para>
81       </answer>
82     </qandaentry>
83
84     <qandaentry>
85       <question id="troubleshooting-segfault">
86         <para>
87 The GStreamer application I used stops with a segmentation fault.  What can
88 I do ?
89         </para>
90       </question>
91
92       <answer>
93         <para>
94 There are two things you can do.  If you compiled GStreamer with specific
95 optimization compilation flags, you should try recompiling GStreamer,
96 the application and the plug-ins without any optimization flags.  This allows
97 you to verify if the problem is due to optimization or due to bad code.
98 Second, it will also allow you to provide a reasonable backtrace in case
99 the segmentation fault still occurs.
100         </para>
101         <para>
102 The second thing you can do is look at the backtrace to get an idea of where
103 things are going wrong, or give us an idea of what is going wrong.
104 To provide a backtrace, you should
105 <orderedlist>
106 <listitem><para>
107   run the application in gdb by starting it with
108   <programlisting>
109     gdb (gst-application)
110   </programlisting>
111   (If the application is in a source tree instead of installed on the system,
112   you might want to put "libtool" before "gdb")
113 </para></listitem>
114 <listitem><para>
115   Pass on the command line arguments to the application by typing
116   <programlisting>
117     set args (the arguments to the application)
118   </programlisting>
119   at the (gdb) prompt
120 </para></listitem>
121 <listitem><para>
122   Type "run" at the (gdb) prompt and wait for the application to
123   segfault.  The application will run a lot slower, however.
124 </para></listitem>
125 <listitem><para>
126   After the segfault, type "bt" to get a backtrace.  This is a stack of
127   function calls detailing the path from main () to where the code is
128   currently at.
129 </para></listitem>
130 <listitem><para>
131   If the application you're trying to debug contains threads, it is also
132   useful to do
133   <programlisting>
134     info threads
135   </programlisting>
136   and get backtraces of all of the threads involved, by switching to
137   a different thread using "thread (number)" and then again requesting
138   a backtrace using "bt".
139 </para></listitem>
140 <listitem><para>
141   If you can't or don't want to work out the problem yourself, a copy and paste
142   of all this information should be included in your 
143   <link linkend="using-bugs-where">bug report</link>.
144 </para></listitem>
145 </orderedlist>
146         </para>
147       </answer>
148     </qandaentry>
149
150     <qandaentry>
151       <question id="troubleshooting-gst-register">
152         <para>
153 On my system there is no gst-register command.
154         </para>
155       </question>
156
157       <answer>
158         <para>
159 GStreamer version 0.10 does not need this anymore. The registry will
160 be rebuilt automatically. If you suspect the registry is broken, just delete the
161 <filename>registry.*.xml</filename> files under <filename>$HOME/.gstreamer-0.X/</filename>
162 and run
163 <programlisting>
164   gst-inspect
165 </programlisting>
166 to rebuild the registry.
167         </para>
168       </answer>
169     </qandaentry>
170     
171   </qandaset>
172 </sect1>