• Home
  • History
  • Annotate
  • current directory
Name Date Size #Lines LOC

..16-Aug-2019-

cli/H16-Aug-2019-

doc/H16-Aug-2019-

include/H16-Aug-2019-

man/H16-Aug-2019-

src/H16-Aug-2019-

AUTHORSH A D06-May-2016119 43

COPYINGH A D19-Jan-20171.5 KiB2622

ChangeLogH A D19-Jan-201730.7 KiB693572

Makefile.amH A D30-Nov-2016400 2619

Makefile.inH A D16-Aug-201926.9 KiB866770

NEWSH A D06-May-20160

READMEH A D02-Dec-20166.5 KiB12597

acinclude.m4H A D06-May-20161.7 KiB5652

aclocal.m4H A D17-Jan-2017345.2 KiB9,8098,839

compileH A D06-May-20167.2 KiB348258

config.guessH A D06-May-201644.2 KiB1,5591,352

config.subH A D06-May-201634.7 KiB1,7921,654

configureH A D16-Aug-2019469.5 KiB16,27413,582

configure.acH A D17-Jan-20176.6 KiB221178

depcompH A D06-May-201623 KiB792502

install-shH A D06-May-201613.7 KiB528351

ltmain.shH A D06-May-2016277 KiB9,6627,310

missingH A D06-May-20166.7 KiB216143

wavpack.pc.inH A D06-May-2016247 1412

README

1////////////////////////////////////////////////////////////////////////////
2//                           **** WAVPACK ****                            //
3//                  Hybrid Lossless Wavefile Compressor                   //
4//                Copyright (c) 1998 - 2016 David Bryant.                 //
5//                          All Rights Reserved.                          //
6//      Distributed under the BSD Software License (see license.txt)      //
7////////////////////////////////////////////////////////////////////////////
8
9This package contains all the source code required to build the WavPack
10library (libwavpack) and the command-line programs and it has been tested
11on many platforms. Assembly language optimizations are provided for x86
12and x86-64 (AMD64) processors (encoding and decoding) and ARMv7 (decoding
13only). The x86 assembly code includes a runtime check for MMX capability,
14so it will work on legacy i386 processors.
15
16On Windows there are solution and project files for Visual Studio 2008 and
17additional sourcecode to build the CoolEdit/Audition plugin and the winamp
18plugin. The CoolEdit/Audition plugin provides a good example for using the
19library to both read and write WavPack files and the winamp plugin makes
20extensive use of APEv2 tag reading and writing. Both 32-bit and 64-bit
21platforms are provided.
22
23Visual Studio 2008 does not support projects with x64 assembly very well. I
24have provided a copy of the edited masm.rules file that works for me, but I
25can't provide support if your build does not work. Please make a copy of
26your masm.rules file first. On my system it lives here:
27
28C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\VCProjectDefaults
29
30To build everything on Linux, type:
31
321. ./configure [--disable-asm] [--enable-man] [--enable-rpath] [--enable-tests]
33               [--disable-apps] [--disable-dsd] [--enable-legacy]
342. make
353. make install (optionally, to install into /usr/local/bin)
36
37If you are using the code directly from Git (rather than a distribution)
38then you will need to do a ./autogen.sh instead of the configure step. If
39assembly optimizations are available for your processor they will be
40automatically enabled, but if there is a problem with them then use the
41--disable-asm option to revert to pure C. For Clang-based build systems
42(Darwin, FreeBSD, etc.) Clang version 3.5 or higher is required.
43
44If you get a WARNING about unexpected libwavpack version when you run the
45command-line programs, you might try using --enable-rpath to hardcode the
46library location in the executables, or simply force static linking with
47--disable-shared.
48
49There is now a cli program to do a full suite of stress tests for libwavpack,
50and this is particularly useful for packagers to make sure that the assembly
51language optimizations are working correctly on various platforms. It is
52built with the configure option --enable-tests and requires Pthreads (it
53worked out-of-the-box on all the platforms I tried it on). There are lots of
54options, but the default test suite (consisting of 192 tests) is executed
55with "wvtest --default". There is also a seeking test. On Windows a third-
56party Pthreads library is required, so I am not including this in the build
57for now.
58
59Notes:
60
611. There are four documentation files contained in the distribution:
62
63   doc/wavpack_doc.html:  contains user-targeted documentation for the
64                          command-line programs
65
66   doc/WavPack5PortingGuide.pdf:  this document is targeted at developers who
67                          are migrating to WavPack 5, and it provides a short
68                          description of the major improvements and how to
69                          utilize them
70
71   doc/WavPack5LibraryDoc.pdf:  contains a detailed description of the API
72                          provided by WavPack library appropriate for read
73                          and writing WavPack files and manipulating APEv2 tags
74
75   doc/WavPack5FileFormat.pdf:  contains a description of the WavPack file
76                          format, including details needed for parsing WavPack
77                          blocks and interpreting the block header and flags
78
79   There is also a description of the WavPack algorithms in the forth edition
80   of David Salomon's book "Data Compression: The Complete Reference". The
81   section on WavPack can be found here:
82
83   www.wavpack.com/WavPack.pdf
84
852. This code is designed to be easy to port to other platforms. It is endian-
86   agnostic and usually uses callbacks for I/O, although there's a convenience
87   function for reading files that accepts filename strings and automatically
88   handles correction files (and on Windows there is now an option to select
89   UTF-8 instead of ANSI).
90
91   To maintain compatibility on various platforms, the following conventions
92   are used: the "char" type must be 8-bits (signed or unsigned), a "short"
93   must be 16-bits and the "int" and "long" types must be at least 32-bits.
94
953. The code's modules are organized in such a way that if major chunks of the
96   functionality are not referenced (for example, creating WavPack files) then
97   link-time dependency resolution should provide optimum binary sizes.
98
99   However, some functionality could not be easily excluded in this way and so
100   there are additional macros that may be used to further reduce the size of
101   the binary. Note that these must be defined for all modules:
102
103   NO_SEEKING      to not allow seeking to a specific sample index
104                    (for applications that always read entire files)
105
106   NO_TAGS         to not read specified fields from ID3v1 and APEv2 tags and
107                    not create or edit APEv2 tags
108
109   ENABLE_LEGACY   include support for Wavpack files from before version 4.0
110                    (this was eliminated by default with WavPack 5)
111
112   ENABLE_DSD      include support for DSD audio (new for WavPack 5 and the
113                    default, but obviously not universally required)
114
1154. There are alternate versions of this library available specifically designed
116   for "resource limited" CPUs or hardware encoding and decoding. There is the
117   "tiny decoder" library which works with less than 32k of code and less than
118   4k of data and has assembly language optimizations for the ARM and Freescale
119   ColdFire CPUs.  The "tiny encoder" is also designed for embedded use and
120   handles the pure lossless, lossy, and hybrid lossless modes. Neither of the
121   "tiny" versions use any memory allocation functions nor do they require
122   floating-point arithmetic support.
123
1245. Questions or comments should be directed to david@wavpack.com
125