[flac-dev] Questions about FLAC documentation

Gravis flac at adaptivetime.com
Sat Oct 6 02:01:42 PDT 2012


I'm implementing a FLAC decoder from scratch (save OGG stuff if I can
help it) because libFLAC simply will not fit my embedded platform,
For the most part I'm implementing using just the documentation but
not all of the documentation is concise (especially about variable
sized fields) and after looking at the libFLAC source I find myself
befuddled so I thought it best to get the information from the people
who know these things.  So...

In "FRAME_HEADER" there is a field of a variable size field with the
description "if(variable blocksize) \n <8-56> : 'UTF-8' coded sample
number (decoded number is 36 bits)" and I find the encoding scheme is
somehow alien (I can't figure out what it has to do with UTF-8)  and
it's two following fields to be incomprehensible.  There doesn't seem
to be any information indicating their purpose either.

The location and coding of audio samples is very nebulous in that I
don't know where they are or the specifics of how any of their
encoding scheme work.  More details, links to more information and
maybe even some pseudo code would be very helpful.  The documentation
about the metadata is great...  but it kinda goes downhill after that.
 It would be fantastic if someone could update the documentation with
more information and details.

Just a side note, the code seems to be written as if it were intended
to be written in C++ (even to comments talk about it as if it were),
so why not just make it C++ and put a C frontend on it?

-Gravis


More information about the flac-dev mailing list