diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-06-09 21:00:38 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2018-06-09 21:00:38 +0000 |
| commit | e9de5431a1a5e9d7808cae45c234bb5cb9fd473a (patch) | |
| tree | 29809d99a1732a537c203b205b69b30b4d65dd2f /src/plugins/Input/mpeg/decodermpegfactory.cpp | |
| parent | ce79cbc21b6559f54d11da95fef7364616c3d872 (diff) | |
| download | qmmp-e9de5431a1a5e9d7808cae45c234bb5cb9fd473a.tar.gz qmmp-e9de5431a1a5e9d7808cae45c234bb5cb9fd473a.tar.bz2 qmmp-e9de5431a1a5e9d7808cae45c234bb5cb9fd473a.zip | |
continue optimization, fixed memory leak
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@8008 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Input/mpeg/decodermpegfactory.cpp')
| -rw-r--r-- | src/plugins/Input/mpeg/decodermpegfactory.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/plugins/Input/mpeg/decodermpegfactory.cpp b/src/plugins/Input/mpeg/decodermpegfactory.cpp index 6c841e7f1..4c6fef295 100644 --- a/src/plugins/Input/mpeg/decodermpegfactory.cpp +++ b/src/plugins/Input/mpeg/decodermpegfactory.cpp @@ -197,16 +197,16 @@ Decoder *DecoderMPEGFactory::create(const QString &, QIODevice *input) return d; } -QList<TrackInfo *> DecoderMPEGFactory::createPlayList(const QString &fileName, TrackInfo::Parts parts, QStringList *) +QList<TrackInfo *> DecoderMPEGFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *) { - TrackInfo *info = new TrackInfo(fileName); - TagLib::Tag *tag = 0; + TrackInfo *info = new TrackInfo(path); - TagLib::FileStream stream(QStringToFileName(fileName), true); - TagLib::MPEG::File fileRef(&stream, TagLib::ID3v2::FrameFactory::instance()); + if(parts == TrackInfo::NoParts) + return QList<TrackInfo*>() << info; - if(fileRef.audioProperties()) - info->setDuration(fileRef.audioProperties()->lengthInMilliseconds()); + TagLib::Tag *tag = 0; + TagLib::FileStream stream(QStringToFileName(path), true); + TagLib::MPEG::File fileRef(&stream, TagLib::ID3v2::FrameFactory::instance()); if (parts & TrackInfo::MetaData) { @@ -317,6 +317,7 @@ QList<TrackInfo *> DecoderMPEGFactory::createPlayList(const QString &fileName, T case TagLib::MPEG::Header::Version2_5: info->setValue(Qmmp::FORMAT_NAME, QString("MPEG-2.5 layer %1").arg(fileRef.audioProperties()->layer())); } + info->setDuration(fileRef.audioProperties()->lengthInMilliseconds()); } if(parts & TrackInfo::ReplayGainInfo) |
