]> git.sesse.net Git - kdenlive/blobdiff - src/recmonitor.cpp
Add command line for advanced video4linux config
[kdenlive] / src / recmonitor.cpp
index 9803769475203ea489e216b4878add0fd49763b2..bdb3fb68979427873a7d91c0328d943be3740cba 100644 (file)
@@ -82,6 +82,19 @@ RecMonitor::RecMonitor(QString name, QWidget *parent)
     env << "SDL_WINDOWID=" + QString::number(ui.video_frame->winId());
     displayProcess->setEnvironment(env);
 
+    if (KdenliveSettings::video4capture().isEmpty()) {
+       QString captureCommand;
+       if (!KdenliveSettings::video4adevice().isEmpty()) captureCommand = "-f " + KdenliveSettings::video4aformat() + " -i " + KdenliveSettings::video4adevice();
+
+       captureCommand +=  " -f " + KdenliveSettings::video4vformat() + " -s " + KdenliveSettings::video4size() + " -r " + QString::number(KdenliveSettings::video4rate()) + " -i " + KdenliveSettings::video4vdevice() + " -f " + KdenliveSettings::video4vencoding();
+       KdenliveSettings::setVideo4capture(captureCommand);
+    }
+
+    if (KdenliveSettings::video4playback().isEmpty()) {
+       QString playbackCommand;
+       playbackCommand =  "-f " + KdenliveSettings::video4vencoding();
+       KdenliveSettings::setVideo4playback(playbackCommand);
+    }
     kDebug() << "/////// BUILDING MONITOR, ID: " << ui.video_frame->winId();
 }
 
@@ -214,9 +227,8 @@ void RecMonitor::slotStartCapture(bool play) {
         m_captureArgs << "--format" << "hdv" << "-i" << "capture" << "-";
         m_displayArgs << "-f" << "mpegts" << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
     } else {
-        if (!KdenliveSettings::video4adevice().isEmpty()) m_captureArgs << "-f" << KdenliveSettings::video4aformat() << "-i" << KdenliveSettings::video4adevice();
-        m_captureArgs << "-f" << "video4linux2" << "-s" << QString::number(KdenliveSettings::video4width()) + "x" + QString::number(KdenliveSettings::video4height()) << "-r" << QString::number(KdenliveSettings::video4rate()) << "-i" << KdenliveSettings::video4vdevice() << "-f" << KdenliveSettings::video4vformat() << "-";
-        m_displayArgs << "-f" << KdenliveSettings::video4vformat() << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
+       m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << "-";
+        m_displayArgs << KdenliveSettings::video4playback().simplified().split(' ') << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
     }
 
     captureProcess->setStandardOutputProcess(displayProcess);
@@ -276,9 +288,8 @@ void RecMonitor::slotRecord() {
             m_captureArgs << "--format" << "hdv" << "-i" << "capture" << "-";
             m_displayArgs << "-f" << "mpegts" << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
         } else {
-            if (!KdenliveSettings::video4adevice().isEmpty()) m_captureArgs << "-f" << KdenliveSettings::video4aformat() << "-i" << KdenliveSettings::video4adevice();
-            m_captureArgs << "-f" << "video4linux2" << "-s" << QString::number(KdenliveSettings::video4width()) + "x" + QString::number(KdenliveSettings::video4height()) << "-r" << QString::number(KdenliveSettings::video4rate()) << "-i" << KdenliveSettings::video4vdevice() << "-y" << "-f" << KdenliveSettings::video4vformat() << m_captureFile.path() << "-f" << KdenliveSettings::video4vformat() << "-";
-            m_displayArgs << "-f" << KdenliveSettings::video4vformat() << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
+           m_captureArgs << KdenliveSettings::video4capture().simplified().split(' ') << "-y" << m_captureFile.path() << "-f" << KdenliveSettings::video4vencoding() << "-";
+           m_displayArgs << KdenliveSettings::video4playback().simplified().split(' ') << "-x" << QString::number(ui.video_frame->width()) << "-y" << QString::number(ui.video_frame->height()) << "-";
         }
 
         captureProcess->setStandardOutputProcess(displayProcess);