Ecasound Ogg Vorbis Audio Decoding Library
Ecasound is a powerful command-line multitrack audio processing tool that relies on dedicated open-source libraries to handle compressed formats. To decode and encode Ogg Vorbis audio streams natively, Ecasound utilizes the reference libvorbis library developed by the Xiph.Org Foundation, specifically depending on its high-level convenience API component, libvorbisfile, alongside libogg. Additionally, Ecasound can decode Ogg Vorbis streams through libsndfile depending on the compilation configuration.
The Primary Library: libvorbis (libvorbisfile)
The primary native engine Ecasound uses for Ogg Vorbis handling is libvorbisfile, a standard component of the official libvorbis package provided by Xiph.Org.
- libogg: Provides container handling, parsing the bitstream structure that houses the audio data.
- libvorbis: Implements the actual Vorbis audio decompression algorithm.
- libvorbisfile: Delivers a high-level, file-like interface that Ecasound interfaces with directly. This allows Ecasound to open, seek, buffer, and read PCM samples from Ogg Vorbis files without having to manually manage low-level bitstream packets and framing.
When processing Ogg Vorbis files natively, Ecasound feeds the
compressed container through libogg and uses
libvorbisfile routines to extract linear PCM audio, which
it then processes through its routing, mixing, or effect chains.
Alternative Decoding via libsndfile
In addition to its native Vorbis subsystem, Ecasound can also decode Ogg Vorbis files via libsndfile.
If Ecasound is compiled with libsndfile support, and
libsndfile itself was built against libvorbis,
Ecasound can use this abstraction layer to read Ogg Vorbis files
transparently alongside other PCM audio containers like WAV and
AIFF.
Build and Dependency Requirements
For Ecasound to support Ogg Vorbis decoding during compilation, the build environment must detect the development headers for the reference Vorbis implementation:
vorbis/vorbisfile.hvorbis/codec.hogg/ogg.h
Without the libvorbis and libogg
development libraries present on the host system, native Vorbis
processing will be disabled in Ecasound's configuration stage.