From: Jean-Baptiste Mardelle Date: Sun, 16 Mar 2008 12:24:51 +0000 (+0000) Subject: Add command line for advanced video4linux config X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=f43509e723f4586f1a1234dfdf3f08724eb614ef;p=kdenlive Add command line for advanced video4linux config svn path=/branches/KDE4/; revision=2065 --- diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg index 6760855a..6e02f045 100644 --- a/src/kdenlivesettings.kcfg +++ b/src/kdenlivesettings.kcfg @@ -72,7 +72,7 @@ - m4v + video4linux2 @@ -90,20 +90,35 @@ /dev/dsp - + + + 320x240 + + + - 320 + m4v - + - 240 + 15 + + + + + + + + + + diff --git a/src/kdenlivesettingsdialog.cpp b/src/kdenlivesettingsdialog.cpp index 18ee2947..adcb99bd 100644 --- a/src/kdenlivesettingsdialog.cpp +++ b/src/kdenlivesettingsdialog.cpp @@ -51,6 +51,15 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog( m_configCapture.capturefolderurl->lineEdit()->setObjectName("kcfg_capturefolder"); page4 = addPage(p4, i18n("Capture"), "audio-card"); + connect(m_configCapture.kcfg_video4vdevice, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4adevice, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4vformat, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4aformat, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4vencoding, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4aencoding, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4size, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + connect(m_configCapture.kcfg_video4rate, SIGNAL(editingFinished ()), this, SLOT(rebuildVideo4Commands())); + QStringList profilesNames = ProfilesDialog::getProfileNames(); m_configMisc.profiles_list->addItems(profilesNames); m_defaulfProfile = ProfilesDialog::getSettingsFromFile(KdenliveSettings::default_profile()).value("description"); @@ -63,6 +72,18 @@ KdenliveSettingsDialog::KdenliveSettingsDialog(QWidget * parent): KConfigDialog( KdenliveSettingsDialog::~KdenliveSettingsDialog() {} +void KdenliveSettingsDialog::rebuildVideo4Commands() { + QString captureCommand; + if (!m_configCapture.kcfg_video4adevice->text().isEmpty()) captureCommand = "-f " + m_configCapture.kcfg_video4aformat->text() + " -i " + m_configCapture.kcfg_video4adevice->text(); + + captureCommand += " -f " + m_configCapture.kcfg_video4vformat->text() + " -s " + m_configCapture.kcfg_video4size->text() + " -r " + QString::number(m_configCapture.kcfg_video4rate->value()) + " -i " + m_configCapture.kcfg_video4vdevice->text() + " -f " + m_configCapture.kcfg_video4vencoding->text(); + m_configCapture.kcfg_video4capture->setText(captureCommand); + + QString playbackCommand; + playbackCommand = "-f " + m_configCapture.kcfg_video4vencoding->text(); + m_configCapture.kcfg_video4playback->setText(playbackCommand); +} + bool KdenliveSettingsDialog::hasChanged() { kDebug() << "// // // KCONFIG hasChanged called"; if (m_configMisc.profiles_list->currentText() != m_defaulfProfile) return true; diff --git a/src/kdenlivesettingsdialog.h b/src/kdenlivesettingsdialog.h index 9f637155..975e1a54 100644 --- a/src/kdenlivesettingsdialog.h +++ b/src/kdenlivesettingsdialog.h @@ -42,6 +42,7 @@ protected: private slots: void slotUpdateDisplay(); + void rebuildVideo4Commands(); private: KPageWidgetItem *page1; diff --git a/src/recmonitor.cpp b/src/recmonitor.cpp index 98037694..bdb3fb68 100644 --- a/src/recmonitor.cpp +++ b/src/recmonitor.cpp @@ -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); diff --git a/src/widgets/configcapture_ui.ui b/src/widgets/configcapture_ui.ui index a177b4fe..647a8136 100644 --- a/src/widgets/configcapture_ui.ui +++ b/src/widgets/configcapture_ui.ui @@ -5,8 +5,8 @@ 0 0 - 422 - 339 + 502 + 374 @@ -31,160 +31,360 @@ + + + + Capture folder + + + + + + - - - Firewire config + + + + 401 + 0 + + + + 0 - - - - - Default format - - - - - - + + + + 0 + 0 + 482 + 233 + + + + Firewire / dvgrab + + + + + + Default format + + + + + + + + DV Raw + + + + + DV AVI type 1 + + + + + DV AVI type 2 + + + + + HDV + + + + + + + + Qt::Horizontal + + + + 241 + 20 + + + + + + + + Qt::Vertical + + + + 20 + 188 + + + + + + + + + + 0 + 0 + 482 + 233 + + + + Video4Linux2 / FFmpeg + + + + - DV Raw + Video + + + + + + + Qt::Horizontal - - + + + + - DV AVI type 1 + Device + + + + + + + + 0 + 0 + - - - DV AVI type 2 + /dev/video0 + + + + + + + + 0 + 0 + - - - HDV + Format - - - - - - - - - - Video4Linux - - - - - - Video device - - - - - - - /dev/video0 - - - - - - - Format - - - - - - - m4v - - - - - - - Audio device - - - - - - - /dev/dsp - - - - - - - Format - - - - - - - oss - - - - - - - Image width - - - - - - - 2000 - - - 320 - - - - - - - Image height - - - - - - - 2000 - - - 240 - - - - - - - Frame rate - - - - - - - 15 - - - - + + + + + + + 0 + 0 + + + + video4linux2 + + + + + + + + 0 + 0 + + + + Encoding + + + + + + + + 0 + 0 + + + + ogg + + + + + + + Audio + + + + + + + Qt::Horizontal + + + + + + + Device + + + + + + + /dev/dsp + + + + + + + + 0 + 0 + + + + Format + + + + + + + + 0 + 0 + + + + oss + + + + + + + + 0 + 0 + + + + Encoding + + + + + + + + 0 + 0 + + + + + + + + Qt::Horizontal + + + + + + + Image size + + + + + + + 320x240 + + + + + + + Frame rate + + + + + + + 15 + + + + + + + Capture params + + + + + + + + + + Playback params + + + + + + + + kcfg_video4vdevice + label_7 + line + label_3 + label_5 + kcfg_video4vformat + kcfg_video4vencoding + label_14 + kcfg_video4aencoding + kcfg_video4adevice + line_2 + label_9 + label_16 + label_15 + label_13 + line_3 + label_4 + label_6 + kcfg_video4size + label_11 + kcfg_video4rate + kcfg_video4capture + kcfg_video4playback + label_12 + kcfg_video4aformat + - + Qt::Vertical @@ -197,16 +397,6 @@ - - - - Capture folder - - - - - -