From ce79cbc21b6559f54d11da95fef7364616c3d872 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 8 Jun 2018 20:59:57 +0000 Subject: optimization git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8007 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Input/aac/decoderaacfactory.cpp | 40 +++++++++++++++++++---------- 1 file changed, 26 insertions(+), 14 deletions(-) (limited to 'src/plugins/Input/aac/decoderaacfactory.cpp') diff --git a/src/plugins/Input/aac/decoderaacfactory.cpp b/src/plugins/Input/aac/decoderaacfactory.cpp index 5f53437de..e641db1c7 100644 --- a/src/plugins/Input/aac/decoderaacfactory.cpp +++ b/src/plugins/Input/aac/decoderaacfactory.cpp @@ -55,27 +55,39 @@ Decoder *DecoderAACFactory::create(const QString &, QIODevice *input) QList DecoderAACFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *) { + TrackInfo *info = new TrackInfo(path); + + if(parts == TrackInfo::NoParts) + return QList() << info; + QFile file(path); - if (file.open(QIODevice::ReadOnly)) + if(!file.open(QIODevice::ReadOnly)) { - TrackInfo *info = new TrackInfo(path); - AACFile aac_file(&file, parts); + delete info; + return QList() << info; + } - if(parts & TrackInfo::MetaData) - info->setValues(aac_file.metaData()); + AACFile aac_file(&file, parts & TrackInfo::MetaData); - if(parts & TrackInfo::Properties) - { - info->setValue(Qmmp::BITRATE, aac_file.bitrate()); - info->setValue(Qmmp::SAMPLERATE, aac_file.samplerate()); - //info->setValue(Qmmp::CHANNELS, aac_file. - info->setValue(Qmmp::FORMAT_NAME, "AAC"); - } + if(!aac_file.isValid()) + { + delete info; + return QList(); + } + + if(parts & TrackInfo::MetaData) + info->setValues(aac_file.metaData()); + if(parts & TrackInfo::Properties) + { + info->setValue(Qmmp::BITRATE, aac_file.bitrate()); + info->setValue(Qmmp::SAMPLERATE, aac_file.samplerate()); + //info->setValue(Qmmp::CHANNELS, aac_file. + info->setValue(Qmmp::FORMAT_NAME, "AAC"); info->setDuration(aac_file.duration()); - return QList() << info; } - return QList(); + + return QList() << info; } MetaDataModel* DecoderAACFactory::createMetaDataModel(const QString &path, QObject *parent) -- cgit v1.2.3-13-gbd6f