X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frenderer.cpp;h=816d19ae42f5276931bc04393b07b8f0af499bf2;hb=f8b94e4037e9eea645fabfddc2e373ace81dafed;hp=512afae1c6b29923b57314528874e326bcea2543;hpb=4af6675294267a037dfbd0598062b8cfbfdcbb5b;p=kdenlive diff --git a/src/renderer.cpp b/src/renderer.cpp index 512afae1..816d19ae 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -239,8 +239,8 @@ void Render::buildConsumer(const QString &profileName) if (m_mltConsumer->is_valid()) { externalConsumer = true; m_mltConsumer->set("terminate_on_pause", 0); - m_mltConsumer->set("deinterlace_method", "onefield"); - m_mltConsumer->set("rescale", "nearest"); + m_mltConsumer->set("deinterlace_method", KdenliveSettings::mltdeinterlacer().toUtf8().constData()); + m_mltConsumer->set("rescale", KdenliveSettings::mltinterpolation().toUtf8().constData()); m_mltConsumer->set("buffer", "1"); m_mltConsumer->set("real_time", KdenliveSettings::mltthreads()); } @@ -274,7 +274,7 @@ void Render::buildConsumer(const QString &profileName) // Set defaults for decklink consumer if (m_mltConsumer) { m_mltConsumer->set("terminate_on_pause", 0); - m_mltConsumer->set("deinterlace_method", "onefield"); + m_mltConsumer->set("deinterlace_method", KdenliveSettings::mltdeinterlacer().toUtf8().constData()); externalConsumer = true; } } @@ -300,7 +300,7 @@ void Render::buildConsumer(const QString &profileName) } //m_mltConsumer->set("resize", 1); m_mltConsumer->set("window_background", KdenliveSettings::window_background().name().toUtf8().constData()); - m_mltConsumer->set("rescale", "nearest"); + m_mltConsumer->set("rescale", KdenliveSettings::mltinterpolation().toUtf8().constData()); mlt_log_set_callback(kdenlive_callback); QString audioDevice = KdenliveSettings::audiodevicename(); @@ -1757,11 +1757,7 @@ void Render::setDropFrames(bool show) int dropFrames = KdenliveSettings::mltthreads(); if (show == false) dropFrames = -dropFrames; m_mltConsumer->stop(); - if (m_winid == 0) - m_mltConsumer->set("real_time", dropFrames); - else - m_mltConsumer->set("play.real_time", dropFrames); - + m_mltConsumer->set("real_time", dropFrames); if (m_mltConsumer->start() == -1) { kDebug(QtWarningMsg) << "ERROR, Cannot start monitor"; } @@ -1769,6 +1765,19 @@ void Render::setDropFrames(bool show) } } +void Render::setConsumerProperty(const QString &name, const QString &value) +{ + QMutexLocker locker(&m_mutex); + if (m_mltConsumer) { + m_mltConsumer->stop(); + m_mltConsumer->set(name.toUtf8().constData(), value.toUtf8().constData()); + if (m_isActive && m_mltConsumer->start() == -1) { + kDebug(QtWarningMsg) << "ERROR, Cannot start monitor"; + } + + } +} + bool Render::isPlaying() const { if (!m_mltConsumer || m_mltConsumer->is_stopped()) return false;