diff --git a/taglib/riff/aiff/aiffproperties.cpp b/taglib/riff/aiff/aiffproperties.cpp index 4a1a3001..0ef9c239 100644 --- a/taglib/riff/aiff/aiffproperties.cpp +++ b/taglib/riff/aiff/aiffproperties.cpp @@ -156,5 +156,5 @@ void RIFF::AIFF::Properties::read(const ByteVector &data) double sampleRate = ConvertFromIeeeExtended(reinterpret_cast(data.mid(8, 10).data())); d->sampleRate = sampleRate; d->bitrate = (sampleRate * d->sampleWidth * d->channels) / 1000.0; - d->length = d->sampleFrames / d->sampleRate; + d->length = d->sampleRate > 0 ? d->sampleFrames / d->sampleRate : 0; } diff --git a/taglib/riff/wav/wavproperties.cpp b/taglib/riff/wav/wavproperties.cpp index 10d10eca..c8b7fd6b 100644 --- a/taglib/riff/wav/wavproperties.cpp +++ b/taglib/riff/wav/wavproperties.cpp @@ -124,5 +124,6 @@ void RIFF::WAV::Properties::read(const ByteVector &data) d->bitrate = byteRate * 8 / 1000; d->length = byteRate > 0 ? d->streamLength / byteRate : 0; - d->sampleFrames = d->streamLength / (d->channels * (d->sampleWidth / 8)); + if(d->channels > 0 && d->sampleWidth > 0) + d->sampleFrames = d->streamLength / (d->channels * (d->sampleWidth / 8)); }