if (!audioDriver.isEmpty())
m_mltConsumer->set("audio_driver", audioDriver.toUtf8().constData());
- int volume = KdenliveSettings::volume();
- m_mltConsumer->set("volume", (float)volume / 100);
-
m_mltConsumer->set("progressive", 1);
m_mltConsumer->set("audio_buffer", 1024);
m_mltConsumer->set("frequency", 48000);
if (getenv("SDL_VIDEO_YUV_HWACCEL") != NULL && currentDriver == "x11") currentDriver = "x11_noaccel";
QString background = KdenliveSettings::window_background().name();
QString currentBackground = m_mltConsumer->get("window_background");
- int volume = KdenliveSettings::volume();
- int currentVolume = (int)(QString(m_mltConsumer->get("volume")).toDouble() * 100.0);
- if (m_activeProfile == profileName && currentDriver == videoDriver && volume == currentVolume && background == currentBackground) {
+ if (m_activeProfile == profileName && currentDriver == videoDriver && background == currentBackground) {
kDebug() << "reset to same profile, nothing to do";
return 1;
}
} else return -1;
m_mltConsumer->purge();
-
m_isBlocked = true;
if (m_mltProducer) {
m_mltProducer->set_speed(0);
if (producer) {
m_mltProducer = new Mlt::Producer(producer->get_producer());
} else m_mltProducer = m_blackClip->cut(0, 50);
+
/*if (KdenliveSettings::dropbframes()) {
m_mltProducer->set("skip_loop_filter", "all");
m_mltProducer->set("skip_frame", "bidir");
kDebug() << " WARNING - - - - -INVALID PLAYLIST: ";
return -1;
}
-
+ int volume = KdenliveSettings::volume();
+ m_mltProducer->set("meta.volume", (double)volume / 100);
m_fps = m_mltProducer->get_fps();
int error = connectPlaylist();
m_mltProducer = m_blackClip->cut(0, 50);
error = -1;
}
-
+ int volume = KdenliveSettings::volume();
+ m_mltProducer->set("meta.volume", (double)volume / 100);
m_mltProducer->optimise();
/*if (KdenliveSettings::osdtimecode()) {
refresh();
}
-void Render::setVolume(double /*volume*/)
+int Render::volume() const
+{
+ if (!m_mltConsumer || !m_mltProducer) return -1;
+ return ((int) 100 * m_mltProducer->get_double("meta.volume"));
+}
+
+void Render::slotSetVolume(int volume)
{
if (!m_mltConsumer || !m_mltProducer) return;
+ m_mltProducer->set("meta.volume", (double)volume / 100.0);
+ return;
/*osdTimer->stop();
m_mltConsumer->set("refresh", 0);
// Attach filter for on screen display of timecode