I discovered from reading the header specs here...

That URL seems to be wrong, it points to the same FAQ entry you gave me in your previous post.

Even if the frames are different sizes because of different bit rates, their timespan is always the same. For 44khz joint stereo 16-bit files, that time frame works out to about .02612 seconds.

Well, if that's true, then why do we even need VBR synch headers?


Perhaps so that a player knows that it is a VBR file, and knows its length without having to count the frames? I don't think it could otherwise know either thing, except by scanning the whole file, which is slow and sometimes not even possible (such as when streaming it).

And another thing just occurred to me: there's no way of converting a time code to a byte offset reliably for a VBR file, since all the frames have potentially radically different sizes on disk, so you need some kind of index which tells you where each frame starts, for seeking and resuming.


Edited by Captain_Chaos (27/11/2001 15:45)