The previous version made the compiler use an integer division which lead to timePerFrame being equal to 0. If this leads to the other extreme (overflow) then a 64 bits integer could be used. diff -ruN taglib/mpeg/mpegproperties.cpp.old taglib/mpeg/mpegproperties.cpp --- taglib/mpeg/mpegproperties.cpp.old 2007-01-16 18:37:30.000000000 +0100 +++ taglib/mpeg/mpegproperties.cpp 2007-01-16 18:36:03.000000000 +0100 @@ -213,8 +213,7 @@ { static const int blockSize[] = { 0, 384, 1152, 1152 }; - double timePerFrame = blockSize[firstHeader.layer()] / firstHeader.sampleRate(); - d->length = int(timePerFrame * d->xingHeader->totalFrames()); + d->length = (blockSize[firstHeader.layer()] * d->xingHeader->totalFrames()) / firstHeader.sampleRate(); d->bitrate = d->length > 0 ? d->xingHeader->totalSize() * 8 / d->length / 1000 : 0; } else { _______________________________________________ taglib-devel mailing list taglib-devel@kde.org https://mail.kde.org/mailman/listinfo/taglib-devel