21.9. "sndhdr" --- Determine type of sound file
***********************************************

**Source code:** Lib/sndhdr.py

======================================================================

The "sndhdr" provides utility functions which attempt to determine the
type of sound data which is in a file.  When these functions are able
to determine what type of sound data is stored in a file, they return
a tuple "(type, sampling_rate, channels, frames, bits_per_sample)".
The value for *type* indicates the data type and will be one of the
strings "'aifc'", "'aiff'", "'au'", "'hcom'", "'sndr'", "'sndt'",
"'voc'", "'wav'", "'8svx'", "'sb'", "'ub'", or "'ul'".  The
*sampling_rate* will be either the actual value or "0" if unknown or
difficult to decode.  Similarly, *channels* will be either the number
of channels or "0" if it cannot be determined or if the value is
difficult to decode.  The value for *frames* will be either the number
of frames or "-1".  The last item in the tuple, *bits_per_sample*,
will either be the sample size in bits or "'A'" for A-LAW or "'U'" for
u-LAW.

sndhdr.what(filename)

   Determines the type of sound data stored in the file *filename*
   using "whathdr()".  If it succeeds, returns a tuple as described
   above, otherwise "None" is returned.

sndhdr.whathdr(filename)

   Determines the type of sound data stored in a file based on the
   file  header. The name of the file is given by *filename*.  This
   function returns a tuple as described above on success, or "None".
