diff --git a/flac/flacproperties.cpp b/flac/flacproperties.cpp index 0a18c337..821de3ca 100644 --- a/flac/flacproperties.cpp +++ b/flac/flacproperties.cpp @@ -129,10 +129,11 @@ void FLAC::Properties::read() // The last 4 bits are the most significant 4 bits for the 36 bit // stream length in samples. (Audio files measured in days) - uint highLength = (((flags & 0xf) << 28) / d->sampleRate) << 4; + uint highLength =d->sampleRate > 0 ? (((flags & 0xf) << 28) / d->sampleRate) << 4 : 0; pos += 4; - d->length = (d->data.mid(pos, 4).toUInt(true)) / d->sampleRate + highLength; + d->length = d->sampleRate > 0 ? + (d->data.mid(pos, 4).toUInt(true)) / d->sampleRate + highLength : 0; pos += 4; // Uncompressed bitrate: @@ -141,9 +142,5 @@ void FLAC::Properties::read() // Real bitrate: - if(d->length) - d->bitrate = ((d->streamLength * 8L) / d->length) / 1000; - else - d->bitrate = 0; - + d->bitrate = d->length > 0 ? ((d->streamLength * 8L) / d->length) / 1000 : 0; } diff --git a/mpc/mpcproperties.cpp b/mpc/mpcproperties.cpp index ef966faa..2c333edc 100644 --- a/mpc/mpcproperties.cpp +++ b/mpc/mpcproperties.cpp @@ -133,8 +133,8 @@ void MPC::Properties::read() } unsigned int samples = frames * 1152 - 576; - d->length = (samples + (d->sampleRate / 2)) / d->sampleRate; + d->length = d->sampleRate > 0 ? (samples + (d->sampleRate / 2)) / d->sampleRate : 0; if(!d->bitrate) - d->bitrate = ((d->streamLength * 8L) / d->length) / 1000; + d->bitrate = d->length > 0 ? ((d->streamLength * 8L) / d->length) / 1000 : 0; } diff --git a/mpeg/mpegproperties.cpp b/mpeg/mpegproperties.cpp index ab65f0ff..ba245b20 100644 --- a/mpeg/mpegproperties.cpp +++ b/mpeg/mpegproperties.cpp @@ -190,9 +190,9 @@ void MPEG::Properties::read() static const int blockSize[] = { 0, 384, 1152, 1152 }; double timePerFrame = blockSize[firstHeader.layer()]; - timePerFrame = timePerFrame / firstHeader.sampleRate(); + timePerFrame = firstHeader.sampleRate() > 0 ? timePerFrame / firstHeader.sampleRate() : 0; d->length = int(timePerFrame * xingHeader.totalFrames()); - d->bitrate = d->length == 0 ? 0 : xingHeader.totalSize() * 8 / d->length / 1000; + d->bitrate = d->length > 0 ? xingHeader.totalSize() * 8 / d->length / 1000 : 0; } // Since there was no valid Xing header found, we hope that we're in a constant diff --git a/ogg/flac/oggflacfile.h b/ogg/flac/oggflacfile.h index 4c6e92d5..94ec5750 100644 --- a/ogg/flac/oggflacfile.h +++ b/ogg/flac/oggflacfile.h @@ -55,7 +55,7 @@ namespace TagLib { * information specific to Ogg FLAC files. */ - class File : public TagLib::Ogg::File + class File : public Ogg::File { public: /*!