From 2d90d938fea9f6ba740f862f1cb005976135d1b6 Mon Sep 17 00:00:00 2001 From: Nick Shaforostov Date: Fri, 2 Mar 2018 16:18:10 +0100 Subject: [PATCH] fix reading audioproperties for broken mp3 files --- taglib/mpeg/mpegproperties.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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();