86 lines
4.1 KiB
Plaintext
86 lines
4.1 KiB
Plaintext
|
////////////////////////////////////////////////////////////////////////////
|
||
|
// **** 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
|