summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libwavpack/README
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libwavpack/README')
-rw-r--r--lib/rbcodec/codecs/libwavpack/README52
1 files changed, 52 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libwavpack/README b/lib/rbcodec/codecs/libwavpack/README
new file mode 100644
index 0000000000..b373235e1c
--- /dev/null
+++ b/lib/rbcodec/codecs/libwavpack/README
@@ -0,0 +1,52 @@
1////////////////////////////////////////////////////////////////////////////
2// **** WAVPACK **** //
3// Hybrid Lossless Wavefile Compressor //
4// Copyright (c) 1998 - 2004 Conifer Software. //
5// All Rights Reserved. //
6// Distributed under the BSD Software License (see license.txt) //
7////////////////////////////////////////////////////////////////////////////
8
9This package contains a tiny version of the WavPack 4.0 decoder that might
10be used in a "resource limited" CPU environment or form the basis for a
11hardware decoding implementation. It is packaged with a demo command-line
12program that accepts a WavPack audio file on stdin and outputs a RIFF wav
13file to stdout. The program is standard C, and a win32 executable is
14included which was compiled under MS Visual C++ 6.0 using this command:
15
16cl /O1 /DWIN32 wvfilter.c wputils.c unpack.c float.c metadata.c words.c bits.c
17
18WavPack data is read with a stream reading callback. No direct seeking is
19provided for, but it is possible to start decoding anywhere in a WavPack
20stream. In this case, WavPack will be able to provide the sample-accurate
21position when it synchs with the data and begins decoding.
22
23For demonstration purposes this uses a single static copy of the
24WavpackContext structure, so obviously it cannot be used for more than one
25file at a time. Also, this decoder will not handle "correction" files, plays
26only the first two channels of multi-channel files, and is limited in
27resolution in some large integer or floating point files (but always
28provides at least 24 bits of resolution). It also will not accept WavPack
29files from before version 4.0.
30
31To make this code viable on the greatest number of hardware platforms, the
32following are true:
33
34 speed is about 4x realtime on an AMD K6 300 MHz
35 ("high" mode 16/44 stereo; normal mode is about twice that fast)
36
37 no floating-point math required; just 32b * 32b = 32b int multiply
38
39 large data areas are static and less than 4K total
40 executable code and tables are less than 32K
41 no malloc / free usage
42
43To maintain compatibility on various platforms, the following conventions
44are used:
45
46 a "short" must be 16-bits
47 a "long" must be 32-bits
48 an "int" must be at least 16-bits, but may be larger
49 a "char" must default to signed
50
51
52Questions or comments should be directed to david@wavpack.com