[prev in list] [next in list] [prev in thread] [next in thread]
List: taglib-devel
Subject: [PATCH] Fix calculation of length and bitrate in Xing header
From: "Xavier Duret" <xaviour.maillists () gmail ! com>
Date: 2007-01-16 19:10:28
Message-ID: d3ef58310701161110q4320f1f3r3514fd1681e863d9 () mail ! gmail ! com
[Download RAW message or body]
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic