rockbox/apps/codecs/libwavpack
Dave Chapman 219b1f58a6 Remove some unrequired SIMULATOR checks - the CPU_* family of defines are never defined for the sim.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14711 a1c6a512-1295-4272-9138-f99709370657
2007-09-15 16:49:28 +00:00
..
arm.S More WavPack optimizations. Restored 24-bit file playback. 2006-02-26 08:22:34 +00:00
arml.S More WavPack optimizations. Restored 24-bit file playback. 2006-02-26 08:22:34 +00:00
bits.c Big Patch adds primarily: Samplerate and format selection to recording for SWCODEC. Supprort for samplerates changing in playback (just goes with the recording part inseparably). Samplerates to all encoders. Encoders can be configured individually on a menu specific to the encoder in the recording menu. File creation is delayed until flush time to reduce spinups when splitting. Misc: statusbar icons for numbers are individual digits to display any number. Audio buffer was rearranged to maximize memory available to recording and properly reinitialized when trashed. ColdFire PCM stuff moved to target tree to avoid a complicated mess when adding samplerate switching. Some needed API changes and to neaten up growing gap between hardware and software codecs. 2006-11-06 18:07:30 +00:00
coldfire.S We clear our accumulators after we're done with them on Coldfire. No need to clear them on init. 2005-06-08 13:41:07 +00:00
float.c Update libwavpack with latest changes from the tiny_encoder. This allows 2007-01-08 04:24:32 +00:00
LICENSE Initial import of libwavpack 2005-02-25 17:05:30 +00:00
make.bat Initial import of libwavpack 2005-02-25 17:05:30 +00:00
Makefile Update several codec Makefiles so that the codec libs build again on Coldfire targets, after the recent move of system-related things to the target tree. (Note to admins: make errors aren't detected on the CVS build page. :)) 2006-10-30 18:14:12 +00:00
metadata.c Move WavPack metadata parsing to its own file and add handling of non-standard sampling rates 2007-08-12 06:36:06 +00:00
pack.c Eliminate references to "long" types for 64-bit compiles; return audio data 2006-03-26 22:54:15 +00:00
README Initial import of libwavpack 2005-02-25 17:05:30 +00:00
README.rockbox Initial import of libwavpack 2005-02-25 17:05:30 +00:00
SOURCES Remove some unrequired SIMULATOR checks - the CPU_* family of defines are never defined for the sim. 2007-09-15 16:49:28 +00:00
unpack.c Move WavPack metadata parsing to its own file and add handling of non-standard sampling rates 2007-08-12 06:36:06 +00:00
wavpack.h Move WavPack metadata parsing to its own file and add handling of non-standard sampling rates 2007-08-12 06:36:06 +00:00
words.c Update libwavpack to the latest stream specification, and cross fingers 2006-04-22 22:21:36 +00:00
wputils.c Update libwavpack to the latest stream specification, and cross fingers 2006-04-22 22:21:36 +00:00

////////////////////////////////////////////////////////////////////////////
//                           **** WAVPACK ****                            //
//                  Hybrid Lossless Wavefile Compressor                   //
//              Copyright (c) 1998 - 2004 Conifer Software.               //
//                          All Rights Reserved.                          //
//      Distributed under the BSD Software License (see license.txt)      //
////////////////////////////////////////////////////////////////////////////

This package contains a tiny version of the WavPack 4.0 decoder that might
be used in a "resource limited" CPU environment or form the basis for a
hardware decoding implementation. It is packaged with a demo command-line
program that accepts a WavPack audio file on stdin and outputs a RIFF wav
file to stdout. The program is standard C, and a win32 executable is
included which was compiled under MS Visual C++ 6.0 using this command:

cl /O1 /DWIN32 wvfilter.c wputils.c unpack.c float.c metadata.c words.c bits.c

WavPack data is read with a stream reading callback. No direct seeking is
provided for, but it is possible to start decoding anywhere in a WavPack
stream. In this case, WavPack will be able to provide the sample-accurate
position when it synchs with the data and begins decoding.

For demonstration purposes this uses a single static copy of the
WavpackContext structure, so obviously it cannot be used for more than one
file at a time. Also, this decoder will not handle "correction" files, plays
only the first two channels of multi-channel files, and is limited in
resolution in some large integer or floating point files (but always
provides at least 24 bits of resolution). It also will not accept WavPack
files from before version 4.0.

To make this code viable on the greatest number of hardware platforms, the
following are true:

   speed is about 4x realtime on an AMD K6 300 MHz
      ("high" mode 16/44 stereo; normal mode is about twice that fast)

   no floating-point math required; just 32b * 32b = 32b int multiply

   large data areas are static and less than 4K total
   executable code and tables are less than 32K
   no malloc / free usage

To maintain compatibility on various platforms, the following conventions
are used:

   a "short" must be 16-bits
   a "long" must be 32-bits
   an "int" must be at least 16-bits, but may be larger
   a "char" must default to signed


Questions or comments should be directed to david@wavpack.com