diff --git a/src/capture/mediacapture.cpp b/src/capture/mediacapture.cpp --- a/src/capture/mediacapture.cpp +++ b/src/capture/mediacapture.cpp @@ -88,8 +88,8 @@ QAudioEncoderSettings audioSettings; //audioSettings.setCodec("audio/x-flac"); - audioSettings.setBitRate(48000); // Bit rate is set to 48,0000 - audioSettings.setChannelCount(2); + audioSettings.setSampleRate(KdenliveSettings::audiocapturesamplerate()); + audioSettings.setChannelCount(KdenliveSettings::audiocapturechannels()); m_audioRecorder->setEncodingSettings(audioSettings); m_audioRecorder->setOutputLocation(m_path); m_audioRecorder->record(); diff --git a/src/dialogs/kdenlivesettingsdialog.h b/src/dialogs/kdenlivesettingsdialog.h --- a/src/dialogs/kdenlivesettingsdialog.h +++ b/src/dialogs/kdenlivesettingsdialog.h @@ -85,6 +85,8 @@ void slotReloadBlackMagic(); void slotReloadShuttleDevices(); void loadExternalProxyProfiles(); + void slotUpdateAudioCaptureChannels(int index); + void slotUpdateAudioCaptureSampleRate(int index); private: KPageWidgetItem *m_page1; diff --git a/src/dialogs/kdenlivesettingsdialog.cpp b/src/dialogs/kdenlivesettingsdialog.cpp --- a/src/dialogs/kdenlivesettingsdialog.cpp +++ b/src/dialogs/kdenlivesettingsdialog.cpp @@ -298,6 +298,16 @@ &KdenliveSettingsDialog::slotUpdateGrabProfile); connect(m_configCapture.grab_showprofileinfo, &QAbstractButton::clicked, m_configCapture.grab_parameters, &QWidget::setVisible); + m_configCapture.audiocapturechannels->setCurrentIndex(KdenliveSettings::audiocapturechannels() == 1 ? 0 : 1); + connect(m_configCapture.audiocapturechannels, static_cast(&QComboBox::currentIndexChanged), this, + &KdenliveSettingsDialog::slotUpdateAudioCaptureChannels); + + m_configCapture.audiocapturesamplerate->setCurrentIndex(KdenliveSettings::audiocapturesamplerate() == 44100 ? 0 : 1); + connect(m_configCapture.audiocapturesamplerate, static_cast(&QComboBox::currentIndexChanged), this, + &KdenliveSettingsDialog::slotUpdateAudioCaptureSampleRate); + + m_configCapture.labelNoAudioDevices->setVisible(false); + // Timeline preview act = new QAction(QIcon::fromTheme(QStringLiteral("configure")), i18n("Configure profiles"), this); act->setData(1); @@ -398,6 +408,10 @@ bool KdenliveSettingsDialog::initAudioRecDevice() { QStringList audioDevices = pCore->getAudioCaptureDevices(); + + //show a hint to the user to know what to check for in case the device list are empty (common issue) + m_configCapture.labelNoAudioDevices->setVisible(audioDevices.empty()); + m_configCapture.kcfg_defaultaudiocapture->addItems(audioDevices); connect(m_configCapture.kcfg_defaultaudiocapture, static_cast(&QComboBox::currentIndexChanged), [&]() { QString currentDevice = m_configCapture.kcfg_defaultaudiocapture->currentText(); @@ -1584,3 +1598,13 @@ QTimer::singleShot(200, this, SLOT(slotUpdateShuttleDevice())); #endif // USE_JOGSHUTTLE } + +void KdenliveSettingsDialog::slotUpdateAudioCaptureChannels(int index) +{ + KdenliveSettings::setAudiocapturechannels(index == 0 ? 1 : 2); +} + +void KdenliveSettingsDialog::slotUpdateAudioCaptureSampleRate(int index) +{ + KdenliveSettings::setAudiocapturesamplerate(index == 0 ? 44100 : 48000); +} diff --git a/src/kdenlivesettings.kcfg b/src/kdenlivesettings.kcfg --- a/src/kdenlivesettings.kcfg +++ b/src/kdenlivesettings.kcfg @@ -469,6 +469,16 @@ 100 + + + 2 + + + + + 48000 + + 0 diff --git a/src/ui/configcapture_ui.ui b/src/ui/configcapture_ui.ui --- a/src/ui/configcapture_ui.ui +++ b/src/ui/configcapture_ui.ui @@ -639,14 +639,55 @@ Audio - + + + + Sample Rate + + + + - Audio Capture Volume + Capture Volume + + + + + + + Qt::Vertical + + + + 20 + 661 + + + + + + + + Channels - + + + + + 44100 Hz + + + + + 48000 Hz + + + + + 100 @@ -671,28 +712,41 @@ + + + + + Mono (1 Channel) + + + + + Stereo (2 Channels) + + + + + + + - Detected devices + Device - - - - - - - Qt::Vertical + + + + + 10 + - - - 20 - 661 - + + Make sure you have audio plugins installed on your system - +