////////////////////////////////////////////////////////////////////////////
// **** WAVPACK **** //
// Hybrid Lossless Wavefile Compressor //
// Copyright (c) 1998 - 2005 Conifer Software. //
// All Rights Reserved. //
// Distributed under the BSD Software License (see license.txt) //
////////////////////////////////////////////////////////////////////////////
This package contains all the source code required to build the WavPack
command-line programs and the WavPack library and it has been tested on many
platforms. For example code using the library you might want to check some
of the plugin sources in the Windows source release.
To build everything, type:
1. ./configure
2. make
3. make install (optionally, to install into /usr/local/bin)
Notes:
1. This code is designed to be much easier to port to other platforms than
the previous version of WavPack. File I/O is done with streams and all file
functions (except "fopen") are handled in a wrapper in the "utils.c"
module. The code is even written to be endian-independent and a compile
option is provided to eliminate the DOS-specific directory searches.
To maintain compatibility on various platforms, the following conventions
are used:
a "short" must be 16-bits
an "int" must be at least 16-bits, but may be larger
For version 4.2 references to "long" variables were eliminated to allow
compilation on 64-bit machines. For version 4.3 "char" types may default
to signed or unsigned.
2. For WavPack file decoding, a library interface in "wputils.c" provides all
the functionality required for both the winamp plugin and the "wvunpack"
command-line program (including the transparent decoding of "correction"
files). There is also an alternate entry point that uses reader callbacks
for all input, although in this case it is the caller's responsibility to
to open the "correction" file. It is no longer necessary to manipulate the
WavPack structures directly; everything is handled with function calls. In
fact, a new header file called "wputils.h" can be used that hides all the
WavPack internals from the application.
3. For WavPack file creation, the library interface in "wputils.c" provides
all the functionality for both the Audition filter and the "wavpack"
command-line program. No file I/O is performed by the library when creating
WavPack files. Instead, the user supplies a "write_block" function that
accepts completed WavPack blocks. For version 4.2 limited functionality
has been added to append APEv2 tags to WavPack files during creation.
4. The following #define's are used to control the optimum configuration of
the library for the desired application and must be the same for the
compilation of ALL files:
UNPACK to unpack audio samples from WavPack files
PACK to create WavPack files from raw audio data
INFO_ONLY to obtain information from WavPack files, but not audio
SEEKING to allow seeking to a specific sample index (unpack only)
USE_FSTREAMS to open WavPack files by name using fstreams (via fopen)
TAGS to read specified fields from ID3v1 and APEv2 tags and
create APEv2 tags
VER3 to handle WavPack files from versions prior to 4.0
WIN32 required for Win32 platform
The following files are required for various configurations:
UNPACK or
INFO_ONLY: wputils.c unpack.c words.c bits.c metadata.c float.c
PACK: wputils.c pack.c extra1.c extra2.c
words.c bits.c metadata.c float.c
PACK and
UNPACK: wputils.c unpack.c pack.c extra1.c extra2.c
words.c bits.c metadata.c float.c
5. An alternate version of this library is available specifically designed
for "resource limited" CPUs or hardware decoding. This "tiny" decoder
library works with less than 32k of code and less than 4k of data.
6. Questions or comments should be directed to david@wavpack.com