diff options
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) |
