Tremor documentation | Tremor version 1.0 - 20020403

# Tremor: Building libvorbisidec

The C source in the Tremor package will build on any ANSI C compiler and function completely and properly on any platform. The included build system assumes GNU build system and make tools (m4, automake, autoconf, libtool and gmake). GCC is not required, although GCC is the most tested compiler. To build using GNU tools, type in the source directory:

    ./autogen.sh
    gmake

or if GNU make is the standard make on the build system:

    ./autogen.sh
    make

Currently, the source implements playback in pure C on all platforms except ARM, where a [currently] small amount of assembly (see the file asm_arm.h) is used to implement 64 bit math operations and fast LSP computation. If building on ARM without the benefit of GNU build system tools, be sure that `_ARM_ASSEM_` is #defined by the build system if this assembly is desired, else the resulting library will use whatever 64 bit math builtins the compiler implements.

No math library is required by this source. No floating point operations are used at any point in either setup or decode. This decoder library will properly decode any past, current or future Vorbis I file or stream.

The GNU build system produces static and, when supported by the OS, dynamic libraries named 'libvorbisidec'. This library exposes an API nearly identical to the BSD reference library's 'libvorbisfile', including all the features familiar to users of vorbisfile. This API is similar enough that the proper header file to include is named 'ivorbisfile.h', included in the source build directory. Lower level libvorbis-style headers and structures are in 'ivorbiscodec.h', also included in the source build directory. A simple example program, ivorbisfile_example.c, can be built with 'make ivorbisfile_example'.

(We've summarized differences between the free, reference vorbisfile library and Tremor's libvorbisidec in a separate document.)

### Notes

Tremor requires a native 64 bit integer type to compile and function; The GNU build system will locate and typedef `ogg_int64_t` to the appropriate native type. If not using the GNU build tools, you will need to define `ogg_int64_t` as a 64-bit type inside your system's project file/Makefile, etc. On win32, for example, this should be defined as `__int64`.

copyright © 2002 Xiph.org | Ogg Vorbis
Tremor documentation | Tremor version 1.0 - 20020403