X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frenderer.cpp;h=a1106196a3d2df9db4778ffc6502f674efbdb136;hb=7e5766e97e9b0db202d7d85a64b7d2567f35f282;hp=70cf139d6770ae92924376b201d9cb8efeb4050c;hpb=10ac0b917d1f4cad9e08fea4ac8dda37cd3103e1;p=kdenlive diff --git a/src/renderer.cpp b/src/renderer.cpp index 70cf139d..a1106196 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -1612,8 +1612,7 @@ void Render::playZone(const GenTime & startTime, const GenTime & stopTime) { requestedSeekPosition = SEEK_INACTIVE; if (!m_mltProducer || !m_mltConsumer) - return; - if (!m_isZoneMode) m_originalOut = m_mltProducer->get_playtime() - 1; + return; m_mltProducer->set("out", (int)(stopTime.frames(m_fps))); m_mltProducer->seek((int)(startTime.frames(m_fps))); m_paused = false; @@ -1626,7 +1625,7 @@ void Render::playZone(const GenTime & startTime, const GenTime & stopTime) void Render::resetZoneMode() { if (!m_isZoneMode && !m_isLoopMode) return; - m_mltProducer->set("out", m_originalOut); + m_mltProducer->set("out", m_mltProducer->get_length()); //m_mltProducer->set("eof", "pause"); m_isZoneMode = false; m_isLoopMode = false; @@ -1865,6 +1864,7 @@ void Render::mltCheckLength(Mlt::Tractor *tractor) int trackNb = tractor->count(); int duration = 0; int trackDuration; + if (m_isZoneMode) resetZoneMode(); if (trackNb == 1) { Mlt::Producer trackProducer(tractor->track(0)); duration = trackProducer.get_playtime() - 1;