#lossless #decoder #codec #free

flac

An implementation of FLAC (free lossless audio codec)

5 releases (breaking)

Uses old Rust 2015

0.5.0 Jun 12, 2016
0.4.0 Apr 24, 2016
0.3.0 Mar 9, 2016
0.2.0 Feb 7, 2016
0.1.0 Jan 9, 2016

#1138 in Audio

BSD-3-Clause

175KB
4K SLoC

FLAC

Build Status

An implementation of FLAC, free lossless audio codec, written in Rust.

Documentation

Install

flac is on crates.io and can be included in your Cargo file like so:

[dependencies]

flac = "^0.5.0"

Followed by including it in you code:

extern crate flac;

Implementation Status

The status of this FLAC implementation:

Currently this project fully parses every FLAC file I've thrown at it and the decoder is working great for any file that has a bit sample size of 16 and before. This is based on the test suite I have on this project and the tests do fail when the bit sample size is larger than 16.

Now that I have the varied size integers, making the buffer allocation more efficient, I want to start on the encoding side of FLAC. It will be a bit slower as I am busy with work but that is a goal of the project for sure.

  • serialization
    • metadata
      • header
      • data
        • stream info
        • padding
        • application
        • seek table
        • vorbis comment
        • cuesheet
        • picture
        • unknown
    • frame
      • header
      • footer
      • sub-frame
        • header
        • constant
        • fixed
        • LPC
        • verbatim
  • encoder
    • frame
      • left side
      • right side
      • midpoint side
    • sub-frame
      • fixed
      • LPC

Dependencies

~5MB
~100K SLoC