forked from dbry/WavPack
-
Notifications
You must be signed in to change notification settings - Fork 0
WavPack encode/decode library, command-line programs, and several plugins
License
BSD-3-Clause, BSD-3-Clause licenses found
Licenses found
BSD-3-Clause
license.txt
BSD-3-Clause
COPYING
e9925248/WavPack
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
//////////////////////////////////////////////////////////////////////////// // **** WAVPACK **** // // Hybrid Lossless Wavefile Compressor // // Copyright (c) 1998 - 2013 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. On Windows there are solution and project files for Visual Studio 2008 and additional sourcecode to build the CoolEdit/Audition plugin and the winamp plugin. The CoolEdit/Audition plugin provides a good example for using the library to both read and write WavPack files. Both 32-bit and 64-bit platforms are provided. To build everything on Linux, type: 1. ./configure [--enable-mmx] [--enable-man] 2. make 3. make install (optionally, to install into /usr/local/bin) If you are using the code directly from Git (rather than a distribution) then you will need to do a ./autogen.sh instead of the configure step. For processors that support MMX, use the --enable-mmx switch to utilize MMX intrinsics to speed up encoding of stereo 24-bit (and higher) audio. Notes: 1. There are two documentation files contained in the distribution: doc/library_use.txt contains a detailed description of the API provided by WavPack library appropriate for read and writing WavPack files doc/file_format.txt contains a description of the WavPack file format, including details needed for parsing WavPack blocks and interpreting the block header and flags There is also a description of the WavPack algorithms in the forth edition of David Salomon's book "Data Compression: The Complete Reference". The section on WavPack can be found here: www.wavpack.com/WavPack.pdf 2. This code is designed to be easy to port to other platforms. 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 endian-independent. To maintain compatibility on various platforms, the following conventions are used: A "short" must be 16-bits and an "int" must be 32-bits. The "long" type is not used. The "char" type must be 8-bits, signed or unsigned. The WIN32 macro must be defined on Windows. 3. For opening WavPack files for reading, a library interface in "open_utils.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. The header file "include/wavpack.h" includes everything needed while hiding all the WavPack internals from the application. 4. For WavPack file creation, the library interface in "pack_utils.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. It is also possible to append APEv2 tags to WavPack files during creation and edit APEv2 tags on existing files. 5. The code's modules are organized in such a way that if major chunks of the functionality are not referenced (for example, creating WavPack files) then link-time dependency resolution should provide optimum binary sizes. However, some functionality could not be easily excluded in this way (for example the ability to decode very old WavPack files which is not needed for most applications). For this reason, there are additional macros that may be used to further reduce the binary size of the library. Note that these must be defined for all modules and all modules should still be compiled: VER4_ONLY to only handle WavPack files from versions 4.0 onward NO_SEEKING to not allow seeking to a specific sample index NO_USE_FSTREAMS to not open WavPack files by name using fstreams NO_TAGS to not read specified fields from ID3v1 and APEv2 tags and not create or edit APEv2 tags 6. There are alternate versions of this library available specifically designed for "resource limited" CPUs or hardware encoding and decoding. There is the "tiny decoder" library which works with less than 32k of code and less than 4k of data and has assembly language optimizations for the ARM and Freescale ColdFire CPUs. The "tiny encoder" is also designed for embedded use and handles the pure lossless, lossy, and hybrid lossless modes. Neither of the "tiny" versions use any memory allocation functions nor do they require floating-point arithmetic support. For applications requiring very low latency, there is a special version of the library that supports a variation on the regular WavPack block format to facilitate this. 7. Questions or comments should be directed to david@wavpack.com
About
WavPack encode/decode library, command-line programs, and several plugins
Resources
License
BSD-3-Clause, BSD-3-Clause licenses found
Licenses found
BSD-3-Clause
license.txt
BSD-3-Clause
COPYING
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C 82.2%
- C++ 11.5%
- Objective-C 6.2%
- Other 0.1%