]> git.sesse.net Git - kdenlive/blobdiff - src/projecttree/cutclipjob.cpp
Cleanup transcode clip dialog
[kdenlive] / src / projecttree / cutclipjob.cpp
index e52a7f3663636f5b36cc8567815d9d9717398f7f..47c4daf000800bac55555d38bc6c4a5a01a9b09e 100644 (file)
 
 CutClipJob::CutClipJob(CLIPTYPE cType, const QString &id, QStringList parameters) : AbstractClipJob(CUTJOB, cType, id, parameters)
 {
-    description = i18n("clip cut");
+    jobStatus = JOBWAITING;
     m_dest = parameters.at(0);
     m_src = parameters.at(1);
     m_start = parameters.at(2);
     m_end = parameters.at(3);
+    if (m_start.isEmpty()) {
+        // this is a transcoding job
+        description = i18n("Transcode clip");
+    }
+    else description = i18n("Cut clip");
     m_jobDuration = parameters.at(4).toInt();
     addClipToProject = parameters.at(5).toInt();
     if (parameters.count() == 7) m_cutExtraParams = parameters.at(6).simplified();
@@ -43,8 +48,8 @@ QProcess *CutClipJob::startJob(bool *ok)
     if (clipType == AV || clipType == AUDIO || clipType == VIDEO) {
        QStringList parameters;
         parameters << "-i" << m_src;
-        parameters << "-ss" << m_start <<"-t" << m_end;
-        parameters << "-acodec" << "copy" << "-vcodec" << "copy";
+        if (!m_start.isEmpty())
+            parameters << "-ss" << m_start <<"-t" << m_end;
         if (!m_cutExtraParams.isEmpty()) {
             foreach(const QString &s, m_cutExtraParams.split(' '))
                 parameters << s;
@@ -69,14 +74,13 @@ QProcess *CutClipJob::startJob(bool *ok)
 
 int CutClipJob::processLogInfo()
 {
-    if (!m_jobProcess || m_jobDuration == 0) return -1;
+    if (!m_jobProcess || m_jobDuration == 0 || jobStatus == JOBABORTED) return JOBABORTED;
     QString log = m_jobProcess->readAll();
     if (!log.isEmpty()) m_errorMessage.append(log + '\n');
     int progress;
     // Parse FFmpeg output
     if (log.contains("frame=")) {
         int progress = log.section("frame=", 1, 1).simplified().section(' ', 0, 0).toInt();
-        kDebug()<<"// PROgress: "<<progress<<", DUR: "<<m_jobDuration;
         return (int) (100.0 * progress / m_jobDuration);
     }
     else if (log.contains("time=")) {
@@ -86,7 +90,6 @@ int CutClipJob::processLogInfo()
             progress = numbers.at(0).toInt() * 3600 + numbers.at(1).toInt() * 60 + numbers.at(2).toDouble();
         }
         else progress = (int) time.toDouble();
-        kDebug()<<"// PROgress: "<<progress<<", DUR: "<<m_jobDuration;
         return (int) (100.0 * progress / m_jobDuration);
     }
     return -1;
@@ -107,4 +110,21 @@ stringMap CutClipJob::cancelProperties()
     return props;
 }
 
+const QString CutClipJob::statusMessage()
+{
+    QString statusInfo;
+    switch (jobStatus) {
+        case JOBWORKING:
+            if (m_start.isEmpty()) statusInfo = i18n("Transcoding clip");
+            else statusInfo = i18n("Extracting clip cut");
+            break;
+        case JOBWAITING:
+            if (m_start.isEmpty()) statusInfo = i18n("Waiting - transcode clip");
+            else statusInfo = i18n("Waiting - cut clip");
+            break;
+        default:
+            break;
+    }
+    return statusInfo;
+}