summaryrefslogtreecommitdiffstats
path: root/DOCS/xml/en/bugreports.xml
blob: f72489ff63914f02d6a2ca546f9905d52160af2e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<appendix id="bugreports">
<title>How to report bugs</title>

<para>
Good bug reports are a very valuable contribution to the development of any
software project. But just like writing good software, good problem reports
involve some work. Please realize that most developers are extremely busy and
receive obscene amounts of email. So while your feedback is crucial in improving
<application>MPlayer</application> and very much appreciated, please understand
that you have to provide <emphasis role="bold">all</emphasis> of the information
we request and follow the instructions in this document closely.
</para>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_security">
<title>Report security related bugs</title>

<para>
In case you have found an exploitable bug and you would like to do the
right thing and let us fix it before you disclose it, we would be happy
to get your security advisory at
<ulink url="mailto:&#115;&#101;&#99;&#117;&#114;&#105;&#116;&#121;&#64;&#109;&#112;&#108;&#97;&#121;&#101;&#114;&#104;&#113;&#46;&#104;&#117;">&#115;&#101;&#99;&#117;&#114;&#105;&#116;&#121;&#64;&#109;&#112;&#108;&#97;&#121;&#101;&#114;&#104;&#113;&#46;&#104;&#117;</ulink>.
Please add [SECURITY] or [ADVISORY] in the subject.
Be sure that your report contains complete and detailed analysis of the bug.
Sending a fix is highly appreciated.
Please don't delay your report to write proof-of-concept exploit, you can
send that one with another mail.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_fix">
<title>How to fix bugs</title>

<para>
If you feel have the necessary skills you are invited to have a go at fixing the
bug yourself. Or maybe you already did that? Please read
<ulink url="../../tech/patches.txt">this short document</ulink> to find out how
to get your code included in <application>MPlayer</application>. The people on
the
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-dev-eng">MPlayer-dev-eng</ulink>
mailing list will assist you if you have questions.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_regression_test">
<title>How to do regression testing using Subversion</title>

<para>
A problem that can happen sometimes is 'it used to work before, now it
doesn't anymore...'.
Here is a step by step procedure to try to pinpoint when the problem
occurred. This is <emphasis role="bold">not</emphasis> for casual users.
</para>

<para>
First, you'd need to fetch MPlayer's source tree from Subversion.
Instructions can be found in the
<ulink url="http://www.mplayerhq.hu/design7/dload.html#svn">Subversion section of the download page</ulink>.
</para>

<para>
You will have now in the mplayer/ directory an image of the Subversion tree, on
the client side.
Now update this image to the date you want:
<screen>
cd mplayer/
svn update -r {"2004-08-23"}
</screen>
The date format is YYYY-MM-DD HH:MM:SS.
Using this date format ensure that you will be able to extract patches
according to the date at which they were committed, as in the
<ulink url="http://lists.mplayerhq.hu/pipermail/mplayer-cvslog/">MPlayer-cvslog archive</ulink>.
</para>

<para>
Now proceed as for a normal update:
<screen>
./configure
make
</screen>
</para>

<para>
If any non-programmer reads this, the fastest method to get at the point
where the problem occurred is to use a binary search &mdash; that is,
search the date of the breakage by repeatedly dividing the search
interval in half.
For example, if the problem occurred in 2003, start at mid-year, then ask
"Is the problem already here?".
If yes, go back to the first of April; if not, go to the first of October,
and so on.
</para>

<para>
If you have lot of free hard disk space (a full compile currently takes
100 MB, and around 300-350 MB if debugging symbols are enabled), copy the
oldest known working version before updating it; this will save time if
you need to go back.
(It is usually necessary to run 'make distclean' before recompiling an
earlier version, so if you do not make a backup copy of your original
source tree, you will have to recompile everything in it when you come
back to the present.)
Alternatively you may use <ulink url="http://ccache.samba.org/">ccache</ulink>
to speed up compilation.
</para>

<para>
When you have found the day where the problem happened, continue the search
using the mplayer-cvslog archive (sorted by date) and a more precise svn
update including hour, minute and second:
<screen>
svn update -r {"2004-08-23 15:17:25"}
</screen>
This will allow you to easily find the exact patch that did it.
</para>

<para>
If you find the patch that is the cause of the problem, you have almost won;
report about it to the
<ulink url="http://bugzilla.mplayerhq.hu/">MPlayer Bugzilla</ulink> or
subscribe to
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users">MPlayer-users</ulink>
and post it there.
There is a chance that the author will jump in to suggest a fix.
You may also look hard at the patch until it is coerced to reveal where
the bug is :-).
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_report">
<title>How to report bugs</title>

<para>
First of all please try the latest Subversion version of
<application>MPlayer</application>
as your bug might already be fixed there. Development moves extremely fast,
most problems in official releases are reported within days or even hours,
so please use <emphasis role="bold">only Subversion</emphasis> to report bugs.
This includes binary packages of <application>MPlayer</application>.
Subversion instructions can be found at the bottom of
<ulink url="http://www.mplayerhq.hu/dload.html">this page</ulink> or in
the README. If this did not help please refer to the rest of the documentation.
If your problem is not known or not solvable by our instructions,
then please report the bug.
</para>

<para>
Please do not send bug reports privately to individual developers. This is
community work and thus there might be several people interested in it.
Sometimes other users already experienced your troubles and know how to
circumvent a problem even if it is a bug in <application>MPlayer</application>
code.
</para>

<para>
Please describe your problem in as much detail as possible. Do a little
detective work to narrow down the circumstances under which the problem occurs.
Does the bug only show up in certain situations? Is it specific to certain
files or file types? Does it occur with only one codec or is it codec
independent? Can you reproduce it with all output drivers? The more information
you provide the better are our chances at fixing your problem. Please do not
forget to also include the valuable information requested below, we will be
unable to properly diagnose your problem otherwise.
</para>

<para>
An excellent and well written guide to asking questions in public forums is
<ulink url="http://www.catb.org/~esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</ulink>
by <ulink url="http://www.catb.org/~esr/">Eric S. Raymond</ulink>.
There is another called
<ulink url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">How to Report Bugs Effectively</ulink>
by <ulink url="http://www.chiark.greenend.org.uk/~sgtatham/">Simon Tatham</ulink>.
If you follow these guidelines you should be able to get help. But please
understand that we all follow the mailing lists voluntarily in our free time. We
are very busy and cannot guarantee that you will get a solution for your problem
or even an answer.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_where">
<title>Where to report bugs</title>

<para>
Subscribe to the MPlayer-users mailing list:
<ulink url="http://lists.mplayerhq.hu/mailman/listinfo/mplayer-users"/>
and send your bug report to
<ulink url="mailto:mplayer-users@mplayerhq.hu"/> where you can discuss it.
</para>

<para>
If you prefer, you can use our brand-new
<ulink url="http://bugzilla.mplayerhq.hu/">Bugzilla</ulink> instead.
</para>

<para>
The language of this list is <emphasis role="bold">English</emphasis>.
Please follow the standard
<ulink url="http://www.ietf.org/rfc/rfc1855.txt">Netiquette Guidelines</ulink>
and <emphasis role="bold">do not send HTML mail</emphasis> to any of our
mailing lists. You will only get ignored or
banned. If you do not know what HTML mail is or why it is evil, read this
<ulink url="http://efn.no/html-bad.html">fine document</ulink>.
It explains all the details and has instructions for turning HTML off. Also
note that we will not individually CC (carbon-copy) people so it is a good idea
to subscribe to actually receive your answer.
</para>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_what">
<title>What to report</title>

<para>
You may need to include log, configuration or sample files in your bug report.
If some of them are quite big then it is better to upload them to our
<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/">FTP server</ulink> in a
compressed format (gzip and bzip2 preferred) and include only the path and file
name in your bug report. Our mailing lists have a message size limit of 80k, if
you have something bigger you have to compress or upload it.
</para>

<!-- ********** -->

<sect2 id="bugreports_system">
<title>System Information</title>

<para>
<itemizedlist>
<listitem><para>
  Your Linux distribution or operating system and version e.g.:
  <itemizedlist>
    <listitem><para>Red Hat 7.1</para></listitem>
    <listitem><para>Slackware 7.0 + devel packs from 7.1 ...</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  kernel version:
  <screen>uname -a</screen>
</para></listitem>
<listitem><para>
  libc version:
  <screen>ls -l /lib/libc[.-]*</screen>
</para></listitem>
<listitem><para>
  gcc and ld versions:
  <screen>
gcc -v
ld -v<!--
  --></screen>
</para></listitem>
<listitem><para>
  binutils version:
  <screen>as --version</screen>
</para></listitem>
<listitem><para>
  If you have problems with fullscreen mode:
  <itemizedlist>
    <listitem><para>Window manager type and version</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  If you have problems with XVIDIX:
  <itemizedlist>
  <listitem><para>
    X colour depth:
    <screen>xdpyinfo | grep "depth of root"</screen>
  </para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  If only the GUI is buggy:
  <itemizedlist>
    <listitem><para>GTK version</para></listitem>
    <listitem><para>GLIB version</para></listitem>
    <listitem><para>GUI situation in which the bug occurs</para></listitem>
  </itemizedlist>
</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_hardware">
<title>Hardware and drivers</title>

<para>
<itemizedlist>
<listitem><para>
  CPU info (this works on Linux only):
  <screen>cat /proc/cpuinfo</screen>
</para></listitem>
<listitem><para>
  Video card manufacturer and model, e.g.:
  <itemizedlist>
    <listitem><para>ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM</para></listitem>
    <listitem><para>Matrox G400 DH 32MB SGRAM</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Video driver type &amp; version, e.g.:
  <itemizedlist>
    <listitem><para>X built-in driver</para></listitem>
    <listitem><para>nVidia 0.9.623</para></listitem>
    <listitem><para>Utah-GLX CVS 2001-02-17</para></listitem>
    <listitem><para>DRI from X 4.0.3</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  Sound card type &amp; driver, e.g.:
  <itemizedlist>
    <listitem><para>Creative SBLive! Gold with OSS driver from oss.creative.com</para></listitem>
    <listitem><para>Creative SB16 with kernel OSS drivers</para></listitem>
    <listitem><para>GUS PnP with ALSA OSS emulation</para></listitem>
  </itemizedlist>
</para></listitem>
<listitem><para>
  If in doubt include <command>lspci -vv</command> output on Linux systems.
</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_configure">
<title>Configure problems</title>

<para>
If you get errors while running <command>./configure</command>, or autodetection
of something fails, read <filename>configure.log</filename>. You may find the
answer there, for example multiple versions of the same library mixed on your
system, or you forgot to install the development package (those with the -dev
suffix). If you think there is a bug, include <filename>configure.log</filename>
in your bug report.
</para>
</sect2>

<sect2 id="bugreports_compilation">
<title>Compilation problems</title>

<para>
Please include these files:
<itemizedlist>
  <listitem><para>config.h</para></listitem>
  <listitem><para>config.mak</para></listitem>
</itemizedlist>
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_playback">
<title>Playback problems</title>

<para>
Please include the output of <application>MPlayer</application> at verbosity
level 1, but remember to
<emphasis role="bold">not truncate the output</emphasis> when
you paste it into your mail. The developers need all of the messages to properly
diagnose a problem. You can direct the output into a file like this:
<screen>
mplayer -v <replaceable>options</replaceable> <replaceable>filename</replaceable> &gt; mplayer.log 2&gt;&amp;1
</screen>
</para>

<para>
If your problem is specific to one or more files,
then please upload the offender(s) to:
<ulink url="ftp://upload.mplayerhq.hu/MPlayer/incoming/"/>
</para>

<para>
Also upload a small text file having the same base name as your file with a .txt
extension. Describe the problem you are having with the particular file there
and include your email address as well as the output of
<application>MPlayer</application> at verbosity level 1.
Usually the first 1-5 MB of a file are enough to reproduce
the problem, but to be sure we ask you to:
<screen>
dd if=<replaceable>yourfile</replaceable> of=<replaceable>smallfile</replaceable> bs=1024k count=5
</screen>
It will take the first five megabytes of
'<emphasis role="bold">your-file</emphasis>' and write it to
'<emphasis role="bold">small-file</emphasis>'. Then try again on
this small file and if the bug still shows up your sample is sufficient for us.
Please <emphasis role="bold">do not ever</emphasis> send such files via mail!
Upload it, and send only the path/filename of the file on the FTP-server. If the
file is accessible on the net, then sending the
<emphasis role="bold">exact</emphasis> URL is sufficient.
</para>
</sect2>

<!-- ********** -->

<sect2 id="bugreports_crash">
<title>Crashes</title>

<para>
You have to run <application>MPlayer</application> inside <command>gdb</command>
and send us the complete output or if you have a <filename>core</filename> dump
of the crash you can extract useful information from the Core file. Here's how:
</para>


<sect3 id="bugreports_debug">
<title>How to conserve information about a reproducible crash</title>

<para>
Recompile <application>MPlayer</application> with debugging code enabled:
<screen>
./configure --enable-debug=3
make
</screen>
and then run <application>MPlayer</application> within gdb using:
<screen>gdb ./mplayer</screen>
You are now within gdb. Type:
<screen>
run -v <replaceable>options-to-mplayer</replaceable> <replaceable>filename</replaceable>
</screen>
and reproduce your crash. As soon as you did it, gdb will return you to the
command line prompt where you have to enter
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
</para>
</sect3>


<sect3 id="bugreports_core">
<title>How to extract meaningful information from a core dump</title>

<para>
Create the following command file:
<screen>
bt
disass $pc-32 $pc+32
info all-registers
</screen>
Then simply execute this command:
<screen>
gdb mplayer --core=core -batch --command=command_file &gt; mplayer.bug
</screen>
</para>
</sect3>
</sect2>
</sect1>


<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->


<sect1 id="bugreports_advusers">
<title>I know what I am doing...</title>

<para>
If you created a proper bug report following the steps above and you are
confident it is a bug in <application>MPlayer</application>, not a compiler
problem or broken file, you have already read the documentation and you could
not find a solution, your sound drivers are OK, then you might want to
subscribe to the MPlayer-advusers list and send your bug report there to get
a better and faster answer.
</para>

<para>
Please be advised that if you post newbie questions or questions answered in the
manual there, you will be ignored or flamed instead of getting an appropriate
answer. So do not flame us and subscribe to -advusers only if you really know
what you are doing and feel like being an advanced
<application>MPlayer</application> user or developer. If you meet these
criteria it should not be difficult to find out how to subscribe...
</para>
</sect1>

</appendix>