diff --git a/taglib/mpeg/mpegproperties.cpp b/taglib/mpeg/mpegproperties.cpp index d8b7bd50..5eec84f7 100644 --- a/taglib/mpeg/mpegproperties.cpp +++ b/taglib/mpeg/mpegproperties.cpp @@ -200,13 +200,14 @@ void MPEG::Properties::read(File *file) const long lastFrameOffset = file->lastFrameOffset(); if(lastFrameOffset < 0) { debug("MPEG::Properties::read() -- Could not find an MPEG frame in the stream."); - return; } - - const Header lastHeader(file, lastFrameOffset, false); - const long streamLength = lastFrameOffset - firstFrameOffset + lastHeader.frameLength(); - if(streamLength > 0) - d->length = static_cast(streamLength * 8.0 / d->bitrate + 0.5); + else + { + const Header lastHeader(file, lastFrameOffset, false); + const long streamLength = lastFrameOffset - firstFrameOffset + lastHeader.frameLength(); + if (streamLength > 0) + d->length = static_cast(streamLength * 8.0 / d->bitrate + 0.5); + } } d->sampleRate = firstHeader.sampleRate();