diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-06-08 20:59:57 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-06-08 20:59:57 +0000 |
| commit | ce79cbc21b6559f54d11da95fef7364616c3d872 (patch) | |
| tree | fabf04494ba44e2b08a7d74842064727858a4d03 /src/plugins/Input/aac/decoderaacfactory.cpp | |
| parent | c8488b0a00f62504667eb9d3a6f4074e1f424980 (diff) | |
| download | qmmp-ce79cbc21b6559f54d11da95fef7364616c3d872.tar.gz qmmp-ce79cbc21b6559f54d11da95fef7364616c3d872.tar.bz2 qmmp-ce79cbc21b6559f54d11da95fef7364616c3d872.zip | |
optimization
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8007 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/aac/decoderaacfactory.cpp')
| -rw-r--r-- | src/plugins/Input/aac/decoderaacfactory.cpp | 40 |
1 files changed, 26 insertions, 14 deletions
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<TrackInfo *> DecoderAACFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *) { + TrackInfo *info = new TrackInfo(path); + + if(parts == TrackInfo::NoParts) + return QList<TrackInfo*>() << 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<TrackInfo*>() << 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<TrackInfo *>(); + } + + 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<TrackInfo*>() << info; } - return QList<TrackInfo *>(); + + return QList<TrackInfo*>() << info; } MetaDataModel* DecoderAACFactory::createMetaDataModel(const QString &path, QObject *parent) |
