base libraries and tools

base libraries

The base libraries required for Annodex are:

  • libogg, liboggz
  • libvorbis, libtheora, libfishsound
  • libannodex
  • libexpat
  • libcmml

For development, you want to check out all the base Annodex libraries, including the Xiph.org codecs with:
http://svn.annodex.net/annodex-core/

liboggplay

OggPlay is a library that simplies decoding and playback of Ogg media files.

There are several layers to a typical ogg playing application:

  1. Parsing of the ogg container format (handled by libogg and made usable by liboggz) and routing of packets
  2. Decoding of individual ogg packets (handled by libtheora, libvorbis, libfishsound, libcmml, etc. depending on contents)
  3. Maintenance of synchronisation between individual raw data streams
  4. Presentation of raw data to the user (via the screen / sound card / etc.)

liboggplay handles the first 3 layers for you, leaving just the actual presentation for the application writer.

RPM packages

Thomas Vander Stichele developed rpm packages for the base libraries. Find them on http://rpmfind.net/linux/RPM/index.html.

debian packages

Library dependencies

The following hyperlinked graph shows the dependencies of the Annodex.net base libraries.

  • Upstream libraries are shown in grey.
  • Annodex.net libraries are shown in red.
  • Annodex.net importers are shown in green.

libfishsound

FishSound (libfishsound) provides a simple programming interface for decoding and encoding audio data using the Xiph.Org codecs Vorbis and Speex.

libfishsound is a wrapper around the existing codec libraries and provides a consistent, higher-level programming interface. It has been designed for use in a wide variety of applications; it has no direct dependencies on Annodex or Ogg encapsulation, though it is most commonly used in conjunction with liboggz to decode or encode Ogg encapsulated Vorbis or Speex files.

libannodex

The libannodex source distribution comprises the C library libannodex, plugins for importing media (CMML, theora, vorbis, speex), and some command-line tools.

These command-line tools are useful for creating and inspecting Annodex media:

  • anxenc: Encapsulate annotations and data into annodexed media.
  • anxrip: Extract annotations and data tracks from annodexed media.
  • anxgrep: Search for a pattern in annodexed media files. New in version 0.6.1
  • anxinfo: Display information about annodexed media contents.

liboggz

Oggz provides a simple programming interface for reading and writing Xiph.Org files and streams. The tarball contains the liboggz library and some command-line tools.

The following command-line tools are useful for debugging and testing Ogg bitstreams:

  • oggzinfo: Display information about one or more Ogg files and their bitstreams.
  • oggzdump: Hexdump packets of an Ogg file, or revert an Ogg file from such a hexdump.
  • oggzdiff: Hexdump the packets of two Ogg files and output differences.
  • oggzmerge: Merge Ogg files together, interleaving pages in order of presentation time.
  • oggzrip: Extract one or more logical bitstreams from an Ogg file.
  • oggz-scan: Scan an Ogg file and output characteristic landmarks. New in version 0.9.3
  • oggz-validate:
    Validate the Ogg framing of one or more files.

libcmml

The libcmml tarball comprises the C library and some command-line tools.

These command-line tools are useful for creating and fixing CMML files: