Members of the KDE Community are recommended to subscribe to the kde-community mailing list at to allow them to participate in important discussions and receive other important announcements

Disable the sdl pulseaudio autodetection, which caused sound problems:

svn path=/trunk/kdenlive/; revision=3698
parent f6be70b3
......@@ -176,7 +176,7 @@ MainWindow::MainWindow(const QString &MltPath, const KUrl & Url, QWidget *parent
m_clipMonitorDock = new QDockWidget(i18n("Clip Monitor"), this);
......@@ -1575,6 +1575,9 @@ void MainWindow::slotEditProfiles()
void MainWindow::slotDetectAudioDriver()
/* WARNING: do not use this method because sometimes detects wrong driver (pulse instead of alsa),
leading to no audio output, see bug #934 */
//decide which audio driver is really best, in some cases SDL is wrong
if (KdenliveSettings::audiodrivername().isEmpty()) {
QString driver;
......@@ -1857,7 +1860,7 @@ void MainWindow::slotPreferences(int page, int option)
// create it :
KdenliveSettingsDialog* dialog = new KdenliveSettingsDialog(this);
connect(dialog, SIGNAL(settingsChanged(const QString&)), this, SLOT(updateConfiguration()));
connect(dialog, SIGNAL(doResetProfile()), this, SLOT(slotDetectAudioDriver()));
//connect(dialog, SIGNAL(doResetProfile()), this, SLOT(slotDetectAudioDriver()));
connect(dialog, SIGNAL(doResetProfile()), m_monitorManager, SLOT(slotResetProfiles()));
connect(dialog, SIGNAL(updatePreviewSettings()), this, SLOT(slotUpdatePreviewSettings()));
connect(dialog, SIGNAL(updateCaptureFolder()), m_recMonitor, SLOT(slotUpdateCaptureFolder()));
......@@ -29,6 +29,7 @@
#include "definitions.h"
#include <mlt++/Mlt.h>
//#include <framework/mlt_log.h>
#include <KDebug>
#include <KStandardDirs>
......@@ -42,6 +43,16 @@
#include <stdlib.h>
static void kdenlive_callback(void* ptr, int level, const char* fmt, va_list vl)
if (level > MLT_LOG_ERROR) return;
QString error;
QProcess::startDetached("kdialog", QStringList() << "--error" << error.vsprintf(fmt, vl));
static void consumer_frame_show(mlt_consumer, Render * self, mlt_frame frame_ptr)
// detect if the producer has finished playing. Is there a better way to do it?
......@@ -134,6 +145,7 @@ void Render::buildConsumer()
// FIXME: the event object returned by the listen gets leaked...
m_mltConsumer->listen("consumer-frame-show", this, (mlt_listener) consumer_frame_show);
m_mltConsumer->set("rescale", "nearest");
QString audioDevice = KdenliveSettings::audiodevicename();
if (!audioDevice.isEmpty()) {
......@@ -149,8 +161,13 @@ void Render::buildConsumer()
QString audioDriver = KdenliveSettings::audiodrivername();
// Disabled because the "auto" detected driver was sometimes wrong
if (audioDriver.isEmpty())
audioDriver = KdenliveSettings::autoaudiodrivername();
if (!audioDriver.isEmpty()) {
tmp = decodedString(audioDriver);
m_mltConsumer->set("audio_driver", tmp);
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment