m_paused = true;
m_mltProducer->set_speed(0.0);
m_mltConsumer->set("refresh", 0);
+ if (!m_mltConsumer->is_stopped()) m_mltConsumer->stop();
m_mltProducer->seek(m_mltConsumer->position());
}
m_paused = true;
m_mltProducer->set_speed(0.0);
m_mltConsumer->set("refresh", 0);
+ if (!m_mltConsumer->is_stopped()) m_mltConsumer->stop();
m_mltProducer->seek(m_mltConsumer->position());
- if (!m_mltConsumer->is_stopped()) m_mltConsumer->stop();
- if (m_isZoneMode) resetZoneMode();
-
- //emitConsumerStopped();
- /*m_mltConsumer->set("refresh", 0);
- m_mltConsumer->stop();
- m_mltConsumer->purge();
- m_mltProducer->set_speed(0.0);
- //m_framePosition = m_mltProducer->position();
- m_mltProducer->seek(m_framePosition);
- emit rendererPosition(m_framePosition);*/
}
}
if (!m_mltProducer) return;
double current_speed = m_mltProducer->get_speed();
if (current_speed == speed) return;
+ if (m_isZoneMode) resetZoneMode();
// if (speed == 0.0) m_mltProducer->set("out", m_mltProducer->get_length() - 1);
m_mltProducer->set_speed(speed);
if (m_mltConsumer->is_stopped() && speed != 0) {
requestedSeekPosition = SEEK_INACTIVE;
if (!m_mltProducer || !m_mltConsumer)
return;
+ m_paused = false;
m_mltProducer->seek((int)(startTime.frames(m_fps)));
m_mltProducer->set_speed(1.0);
m_mltConsumer->set("refresh", 1);
if (!m_isZoneMode) m_originalOut = m_mltProducer->get_playtime() - 1;
m_mltProducer->set("out", (int)(stopTime.frames(m_fps)));
m_mltProducer->seek((int)(startTime.frames(m_fps)));
+ m_paused = false;
m_mltProducer->set_speed(1.0);
m_mltConsumer->set("refresh", 1);
if (m_mltConsumer->is_stopped()) m_mltConsumer->start();