From 4fc801f6cd839f0e4e1a5f5d72a697da8181c3e8 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Tue, 25 Nov 2008 14:26:19 +0000 Subject: [PATCH] Fix move of slowmotion clips: http://www.kdenlive.org/mantis/view.php?id=375 svn path=/branches/KDE4/; revision=2735 --- src/customtrackview.cpp | 4 ++-- src/renderer.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/customtrackview.cpp b/src/customtrackview.cpp index 443efc5c..4487a8ea 100644 --- a/src/customtrackview.cpp +++ b/src/customtrackview.cpp @@ -1514,7 +1514,7 @@ void CustomTrackView::mouseReleaseEvent(QMouseEvent * event) { GenTime timeOffset = GenTime(m_selectionGroup->scenePos().x(), m_document->fps()) - m_selectionGroupInfo.startPos; const int trackOffset = m_selectionGroup->track() - m_selectionGroupInfo.track; - kDebug() << "&DROPPED GRPOUP:" << timeOffset.frames(25) << "TRK OFF: " << trackOffset; + // kDebug() << "&DROPPED GRPOUP:" << timeOffset.frames(25) << "TRK OFF: " << trackOffset; if (timeOffset != GenTime() || trackOffset != 0) { QUndoCommand *moveClips = new QUndoCommand(); moveClips->setText("Move clips"); @@ -1738,7 +1738,6 @@ void CustomTrackView::changeClipSpeed() { } void CustomTrackView::doChangeClipSpeed(ItemInfo info, const double speed, const double oldspeed, const QString &id) { - DocClipBase *baseclip = m_document->clipManager()->getClipById(id); ClipItem *item = getClipItemAt((int) info.startPos.frames(m_document->fps()) + 1, info.track); info.track = m_scene->m_tracksList.count() - item->track(); @@ -1748,6 +1747,7 @@ void CustomTrackView::doChangeClipSpeed(ItemInfo info, const double speed, const item->updateRectGeometry(); if (item->cropDuration().frames(m_document->fps()) > endPos) item->AbstractClipItem::resizeEnd(info.startPos.frames(m_document->fps()) + endPos, speed); + m_document->setModified(true); } void CustomTrackView::cutSelectedClips() { diff --git a/src/renderer.cpp b/src/renderer.cpp index 5f4d2dab..467632e6 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -2120,7 +2120,12 @@ bool Render::mltMoveClip(int startTrack, int endTrack, int moveStart, int moveEn Mlt::Producer clipProducer(trackPlaylist.replace_with_blank(clipIndex)); trackPlaylist.consolidate_blanks(0); destTrackPlaylist.consolidate_blanks(1); - Mlt::Producer *clip = prod->cut(clipProducer.get_in(), clipProducer.get_out()); + Mlt::Producer *clip; + // check if we are moving a slowmotion producer + QString serv = clipProducer.parent().get("mlt_service"); + if (serv == "framebuffer") { + clip = &clipProducer; + } else clip = prod->cut(clipProducer.get_in(), clipProducer.get_out()); // move all effects to the correct producer Mlt::Service clipService(clipProducer.get_service()); -- 2.39.5