aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/vorbis/decodervorbisfactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Input/vorbis/decodervorbisfactory.cpp')
-rw-r--r--src/plugins/Input/vorbis/decodervorbisfactory.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/plugins/Input/vorbis/decodervorbisfactory.cpp b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
index 0ea5264eb..359347d1e 100644
--- a/src/plugins/Input/vorbis/decodervorbisfactory.cpp
+++ b/src/plugins/Input/vorbis/decodervorbisfactory.cpp
@@ -67,12 +67,12 @@ QList<TrackInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName,
{
TrackInfo *info = new TrackInfo(fileName);
+ if(parts == TrackInfo::NoParts)
+ return QList<TrackInfo*>() << info;
+
TagLib::FileStream stream(QStringToFileName(fileName), true);
TagLib::Ogg::Vorbis::File fileRef(&stream);
- if(fileRef.audioProperties())
- info->setDuration(fileRef.audioProperties()->lengthInMilliseconds());
-
if((parts & TrackInfo::MetaData) && fileRef.tag() && !fileRef.tag()->isEmpty())
{
TagLib::Ogg::XiphComment *tag = fileRef.tag();
@@ -90,8 +90,9 @@ QList<TrackInfo *> DecoderVorbisFactory::createPlayList(const QString &fileName,
info->setValue(Qmmp::BITRATE, fileRef.audioProperties()->bitrate());
info->setValue(Qmmp::SAMPLERATE, fileRef.audioProperties()->sampleRate());
info->setValue(Qmmp::CHANNELS, fileRef.audioProperties()->channels());
- info->setValue(Qmmp::BITS_PER_SAMPLE, 16);
+ info->setValue(Qmmp::BITS_PER_SAMPLE, 32); //float
info->setValue(Qmmp::FORMAT_NAME, "Ogg Vorbis");
+ info->setDuration(fileRef.audioProperties()->lengthInMilliseconds());
}
if((parts & TrackInfo::ReplayGainInfo) && fileRef.tag() && !fileRef.tag()->isEmpty())