aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-06-08 20:59:57 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2018-06-08 20:59:57 +0000
commitce79cbc21b6559f54d11da95fef7364616c3d872 (patch)
treefabf04494ba44e2b08a7d74842064727858a4d03 /src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
parentc8488b0a00f62504667eb9d3a6f4074e1f424980 (diff)
downloadqmmp-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/ffmpeg/decoderffmpegfactory.cpp')
-rw-r--r--src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
index c1ea7c370..944ac98ec 100644
--- a/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
+++ b/src/plugins/Input/ffmpeg/decoderffmpegfactory.cpp
@@ -156,7 +156,11 @@ Decoder *DecoderFFmpegFactory::create(const QString &path, QIODevice *input)
QList<TrackInfo *> DecoderFFmpegFactory::createPlayList(const QString &path, TrackInfo::Parts parts, QStringList *)
{
- QList <TrackInfo*> list;
+ TrackInfo *info = new TrackInfo(path);
+
+ if(parts == TrackInfo::NoParts)
+ return QList<TrackInfo*>() << info;
+
AVFormatContext *in = 0;
#ifdef Q_OS_WIN
@@ -166,9 +170,10 @@ QList<TrackInfo *> DecoderFFmpegFactory::createPlayList(const QString &path, Tra
#endif
{
qDebug("DecoderFFmpegFactory: unable to open file");
- return list;
+ delete info;
+ return QList<TrackInfo*>();
}
- TrackInfo *info = new TrackInfo(path);
+
avformat_find_stream_info(in, 0);
if(parts & TrackInfo::MetaData)
@@ -225,14 +230,12 @@ QList<TrackInfo *> DecoderFFmpegFactory::createPlayList(const QString &path, Tra
info->setValue(Qmmp::BITS_PER_SAMPLE, c->bits_per_raw_sample);
//info->setValue(Qmmp::FORMAT_NAME, QString::fromLatin1(avcodec_get_name(c->codec_id)));
-
+ info->setDuration(in->duration * 1000 / AV_TIME_BASE);
}
}
- info->setDuration(in->duration * 1000 / AV_TIME_BASE);
avformat_close_input(&in);
- list << info;
- return list;
+ return QList<TrackInfo*>() << info;
}
MetaDataModel* DecoderFFmpegFactory::createMetaDataModel(const QString &path, QObject *parent)