************************************************************************ LAME API For a general outline of the code, see the file API. Also, main.c is a simple front end to libmp3lame.a The guts of the code are called from lame_encode_buffer(). lame_encode_buffer() handles buffering, resampling, filtering, and then calls lame_encode_frame() for each frame: lame_encode_frame(): l3psycho_anal() compute masking thresholds mdct_sub() compute MDCT coefficients iteration_loop() choose scalefactors (via iteration) which determine noise shapping, and choose best huffman tables for lossless compression format_bitstream format the bitstream. when data+headers are complete, output to internal bit buffer. copy_buffer() copy internal bit buffer into user's mp3 buffer ************************************************************************ Avoid using float or double, and instead use: (defined in machine.h). FLOAT default: 4 byte floating point. FLOAT8 default: 8 byte floating point. On some machines, FLOAT8 is actually faster than FLOAT. On some machines, the math routines require FLOAT8, so using FLOAT results in a lot of conversions.