//////////////////////////////////////////////////////////////////////////// // **** 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