Just FYI, here's how the bitrate is fetched in ioB, for cbr and vbr MP3.
Code:
int CMP3Info::getBitrate() {
if (VBitRate) {
// get average frame size by deviding fileSize by the number of frames
float medFrameSize = (float)fileSize / (float)getNumberOfFrames();
/* Now using the formula for FrameSizes which looks different,
depending on which mpeg version we're using, for mpeg v1:
FrameSize = 12 * BitRate / SampleRate + Padding (if there is padding)
for mpeg v2 the same thing is:
FrameSize = 144 * BitRate / SampleRate + Padding (if there is padding)
remember that bitrate is in kbps and sample rate in Hz, so we need to
multiply our BitRate with 1000.
For our purpose, just getting the average frame size, will make the
padding obsolete, so our formula looks like:
FrameSize = (mpeg1?12:144) * 1000 * BitRate / SampleRate;
*/
return (int)(
( medFrameSize * (float)header.getFrequency() ) /
( 1000.0 * ( (header.getLayerIndex()==3) ? 12.0 : 144.0))
);
}
else return header.getBitrate();
}