<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>

<HEAD>
	<TITLE>
	Bug Reporting
	</TITLE>
	<META NAME="Author"      CONTENT="Erik de Castro Lopo (erikd AT mega-nerd DOT com)">
	<LINK REL="stylesheet" HREF="libsndfile.css" TYPE="text/css" MEDIA="all">
	<LINK REL="stylesheet" HREF="print.css" TYPE="text/css" MEDIA="print">
</HEAD>

<BODY>

<CENTER>
		<H1><B>Reporting Bugs in libsndfile</B></H1>
</CENTER>
<P>
	Before even attempting to report a bug in libsndfile please make sure you have
	read the
		<A HREF="FAQ.html">Frequently Asked Questions</A>.
	If you are having a problem writing code using libsndfile make sure you read
	the
		<A HREF="api.html">Application Programming Interface</A>
	documentation.
</P>
<P>
	That said, I am interested in finding and fixing all genuine bugs in libsndfile.
	Bugs I want to fix include any of the following problems (and probably others) :
</P>
	<UL>
	<LI>	Compilation problems on new platforms.
	<LI>	Errors being detected during the `make check' process.
	<LI>	Segmentation faults occuring inside libsndfile.
	<LI>	libsndfile hanging when opening a file.
	<LI>	Supported sound file types being incorrectly read or written.
	<LI>	Omissions, errors or spelling mistakes in the documentation.
	</UL>

<P>
	When submitting a bug report you must include :
</P>
	<UL>
	<LI>	Your system (CPU and memory size should be enough).
	<LI>	The operating system you are using.
	<LI>	Whether you are using a package provided by your distribution or you
			compiled it youself.
	<LI>	If you compiled it yourself, the compiler you are using. (Also make
			sure to run 'make check'.)
	<LI>	A description of the problem.
	<LI>	Information generated by the sndfile-info program (see next paragraph).
	<LI>	If you are having problems with sndfile-play and ALSA on Linux, I will
			need information about your kernel, ALSA version, compiler version,
			whether you compiled the kernel/ALSA your self or installed from a
			package etc.
	</UL>

<P>
	If libsndfile compiles and installs correctly but has difficulty reading a particular
	file or type of file you should run the <B>sndfile-info</B> program (from the examples
	directory of the libsndfile distribution) on the file. See
		<A HREF="sndfile_info.html">here</A>
	for an example of the use of the <B>sndfile-info</B> program.
</P>
<P>
	Please do not send me a sound file which fails to open under libsndfile unless I
	specifically ask you to. The above information should usually suffice for most
	problems.
</P>
<P>
	Once you have the above information you should email it to one of the
		 <A HREF="lists.html">mailing lists</a>
	(posting to these lists is limited to the list subscribers).

</P>
</BODY>
</HTML>
