Main Page Modules Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# FLAC/_decoder.h: decoder interfaces
[FLAC C API]

This module describes the three decoder layers provided by libFLAC. More...

## Modules
FLAC/file_decoder.h: file decoder interface
| This module contains the functions which implement the file decoder.

FLAC/seekable_stream_decoder.h: seekable stream decoder interface
| This module contains the functions which implement the seekable stream decoder.

FLAC/stream_decoder.h: stream decoder interface
| This module contains the functions which implement the stream decoder.

## Detailed Description

This module describes the three decoder layers provided by libFLAC.

For decoding FLAC streams, libFLAC provides three layers of access. The lowest layer is non-seekable stream-level decoding, the next is seekable stream-level decoding, and the highest layer is file-level decoding. The interfaces are described in the stream decoder, seekable stream decoder, and file decoder modules respectively. Typically you will choose the highest layer that your input source will support.

The stream decoder relies on callbacks for all input and output and has no provisions for seeking. The seekable stream decoder wraps the stream decoder and exposes functions for seeking. However, you must provide extra callbacks for seek-related operations on your stream, like seek and tell. The file decoder wraps the seekable stream decoder and supplies most of the callbacks internally, simplifying the processing of standard files.