Fix glitch on pause and does not play last second of project

BUG: 371762
parent 74a0be8d
...@@ -754,14 +754,12 @@ void Render::switchPlay(bool play, double speed) ...@@ -754,14 +754,12 @@ void Render::switchPlay(bool play, double speed)
} }
m_mltProducer->set_speed(speed); m_mltProducer->set_speed(speed);
} else { } else {
m_mltConsumer->set("refresh", 0); m_mltConsumer->set("real_time", -1);
m_mltConsumer->purge();
m_mltProducer->set_speed(0.0);
m_mltConsumer->stop();
m_mltConsumer->set("buffer", 0); m_mltConsumer->set("buffer", 0);
m_mltConsumer->set("prefill", 0); m_mltConsumer->set("prefill", 0);
m_mltConsumer->set("real_time", -1); m_mltProducer->set_speed(0.0);
m_mltProducer->seek(m_mltConsumer->position() + 1); m_mltProducer->seek(m_mltConsumer->position() + 1);
m_mltConsumer->purge();
} }
} }
...@@ -1010,9 +1008,7 @@ bool Render::checkFrameNumber(int pos) ...@@ -1010,9 +1008,7 @@ bool Render::checkFrameNumber(int pos)
} }
} else { } else {
m_isRefreshing = false; m_isRefreshing = false;
if (m_mltProducer->get_speed() == 0) { if (m_isZoneMode && m_mltProducer->get_speed() != 0) {
m_mltConsumer->purge();
} else if (m_isZoneMode) {
if (pos >= m_mltProducer->get_int("out") - 1) { if (pos >= m_mltProducer->get_int("out") - 1) {
if (m_isLoopMode) { if (m_isLoopMode) {
m_mltConsumer->purge(); m_mltConsumer->purge();
......
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