Expand description
A library for reading, writing, and editing the metadata of FLAC-formatted audio files.
§What Is FLAC?
FLAC is the Free Lossless Audio Codec, a popular audio codec which losslessly compresses audio such that the original data can always be restored.
Its notable qualities include:
- Broad support on a wide array of players and devices
- A design that allows for extremely fast decoding speed
- Metadata support for text and images (e.g. cover artwork)
- Data integrity checks including checksummed input and hashed output
§What Can This Crate Do?
Intended to provide comprehensive support for the FLAC format, this crate allows the user to:
- Read and edit FLAC file metadata, via the
metadata
module - Decode FLAC files to PCM samples or bytes, via the
decode
module - Verify FLAC files for correctness via the
decode::verify
function - Encode FLAC files from PCM samples or bytes, via the
encode
module - Analyze the raw structure of FLAC frames, via the
stream
module
It is based heavily on the official FLAC specification (RFC 9639) and verified against the reference implementation.
Check the examples/
directory in the source code
repository for several examples of using this crate for common
FLAC management tasks.
Modules§
- byteorder
- Byte order for PCM samples
- decode
- For decoding FLAC files to PCM samples
- encode
- For encoding PCM samples to FLAC files
- metadata
- For handling a FLAC file’s metadata blocks
- stream
- For handling common FLAC stream items
Enums§
- Error
- A unified FLAC error