]> git.sesse.net Git - kdenlive/blobdiff - src/projecttree/cutclipjob.cpp
Add more QLatin1String
[kdenlive] / src / projecttree / cutclipjob.cpp
index b13f5bae3bbbbcea0f84c3c1420fd8cb97ee85b2..5b7d72102d56d3290ced44aeb0f99cc0c60cdea0 100644 (file)
 #include "kdenlivedoc.h"
 
 #include <KDebug>
-#include <KLocale>
+#include <KLocalizedString>
 
-CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, QStringList parameters) : AbstractClipJob(CUTJOB, cType, id, parameters)
+CutClipJob::CutClipJob(ClipType cType, const QString &id, const QStringList &parameters) : AbstractClipJob(CUTJOB, cType, id, parameters)
 {
-    jobStatus = JOBWAITING;
+    m_jobStatus = JobWaiting;
     m_dest = parameters.at(0);
     m_src = parameters.at(1);
     m_start = parameters.at(2);
@@ -47,27 +47,26 @@ CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, QStringList parameters
 void CutClipJob::startJob()
 {
     // Special case: playlist clips (.mlt or .kdenlive project files)
-    if (clipType == AV || clipType == AUDIO || clipType == VIDEO) {
+    if (clipType == AV || clipType == Audio || clipType == Video) {
         QStringList parameters;
-        parameters << "-i" << m_src;
+        parameters << QLatin1String("-i") << m_src;
         if (!m_start.isEmpty())
-            parameters << "-ss" << m_start <<"-t" << m_end;
+            parameters << QLatin1String("-ss") << m_start <<QLatin1String("-t") << m_end;
         if (!m_cutExtraParams.isEmpty()) {
-            foreach(const QString &s, m_cutExtraParams.split(' '))
+            foreach(const QString &s, m_cutExtraParams.split(QLatin1Char(' ')))
                 parameters << s;
         }
 
         // Make sure we don't block when proxy file already exists
-        parameters << "-y";
+        parameters << QLatin1String("-y");
         parameters << m_dest;
         m_jobProcess = new QProcess;
         m_jobProcess->setProcessChannelMode(QProcess::MergedChannels);
-        // kDebug()<<"// STARTING CUT JOB: "<<parameters;
-        m_jobProcess->start("ffmpeg", parameters);
+        m_jobProcess->start(KdenliveSettings::ffmpegpath(), parameters);
         m_jobProcess->waitForStarted();
         while (m_jobProcess->state() != QProcess::NotRunning) {
             processLogInfo();
-            if (jobStatus == JOBABORTED) {
+            if (m_jobStatus == JobAborted) {
                 m_jobProcess->close();
                 m_jobProcess->waitForFinished();
                 QFile::remove(m_dest);
@@ -75,21 +74,21 @@ void CutClipJob::startJob()
             m_jobProcess->waitForFinished(400);
         }
         
-        if (jobStatus != JOBABORTED) {
+        if (m_jobStatus != JobAborted) {
             int result = m_jobProcess->exitStatus();
             if (result == QProcess::NormalExit) {
                 if (QFileInfo(m_dest).size() == 0) {
                     // File was not created
                     processLogInfo();
                     m_errorMessage.append(i18n("Failed to create file."));
-                    setStatus(JOBCRASHED);
+                    setStatus(JobCrashed);
                 } else {
-                    setStatus(JOBDONE);
+                    setStatus(JobDone);
                 }
             } else if (result == QProcess::CrashExit) {
                 // Proxy process crashed
                 QFile::remove(m_dest);
-                setStatus(JOBCRASHED);
+                setStatus(JobCrashed);
             }
         }
         delete m_jobProcess;
@@ -97,25 +96,25 @@ void CutClipJob::startJob()
     } else {
         m_errorMessage = i18n("Cannot process this clip type.");
     }
-    setStatus(JOBCRASHED);
+    setStatus(JobCrashed);
     return;
 }
 
 void CutClipJob::processLogInfo()
 {
-    if (!m_jobProcess || m_jobDuration == 0 || jobStatus == JOBABORTED) return;
-    QString log = m_jobProcess->readAll();
-    if (!log.isEmpty()) m_logDetails.append(log + '\n');
+    if (!m_jobProcess || m_jobDuration == 0 || m_jobStatus == JobAborted) return;
+    QString log = QString::fromUtf8(m_jobProcess->readAll());
+    if (!log.isEmpty()) m_logDetails.append(log + QLatin1Char('\n'));
     int progress;
     // Parse FFmpeg output
-    if (log.contains("frame=")) {
-        progress = log.section("frame=", 1, 1).simplified().section(' ', 0, 0).toInt();
+    if (log.contains(QLatin1String("frame="))) {
+        progress = log.section(QLatin1String("frame="), 1, 1).simplified().section(QLatin1Char(' '), 0, 0).toInt();
         emit jobProgress(m_clipId, (int) (100.0 * progress / m_jobDuration), jobType);
     }
-    else if (log.contains("time=")) {
-        QString time = log.section("time=", 1, 1).simplified().section(' ', 0, 0);
-        if (time.contains(':')) {
-            QStringList numbers = time.split(':');
+    else if (log.contains(QLatin1String("time="))) {
+        QString time = log.section(QLatin1String("time="), 1, 1).simplified().section(QLatin1Char(' '), 0, 0);
+        if (time.contains(QLatin1Char(':'))) {
+            QStringList numbers = time.split(QLatin1Char(':'));
             progress = numbers.at(0).toInt() * 3600 + numbers.at(1).toInt() * 60 + numbers.at(2).toDouble();
         }
         else progress = (int) time.toDouble();
@@ -141,12 +140,12 @@ stringMap CutClipJob::cancelProperties()
 const QString CutClipJob::statusMessage()
 {
     QString statusInfo;
-    switch (jobStatus) {
-        case JOBWORKING:
+    switch (m_jobStatus) {
+        case JobWorking:
             if (m_start.isEmpty()) statusInfo = i18n("Transcoding clip");
             else statusInfo = i18n("Extracting clip cut");
             break;
-        case JOBWAITING:
+        case JobWaiting:
             if (m_start.isEmpty()) statusInfo = i18n("Waiting - transcode clip");
             else statusInfo = i18n("Waiting - cut clip");
             break;
@@ -161,3 +160,5 @@ bool CutClipJob::isExclusive()
     return false;
 }
 
+
+#include "cutclipjob.moc"