Quote:

Because the frames are fixed length (38th of a second), and might have some silence in them.



And, further, the MP3 algorithm can't encode arbitrary data starting at sample 0 -- it needs a bit of a "run up". So MP3 encoders typically only attempt to represent the input waveform starting at a point several hundred samples into the output waveform. Lame stores a special header saying exactly where in the actual output waveform, the intended output waveform begins. Other encoders don't, and you've got to use heuristics.

Peter