From: <j-...@us...> - 2008-07-21 19:24:37
|
Revision: 2337 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=2337&view=rev Author: j-b-m Date: 2008-07-21 19:24:46 +0000 (Mon, 21 Jul 2008) Log Message: ----------- Fix one frame error in clips duration Modified Paths: -------------- branches/KDE4/src/clipmanager.cpp branches/KDE4/src/projectitem.cpp branches/KDE4/src/renderer.cpp Modified: branches/KDE4/src/clipmanager.cpp =================================================================== --- branches/KDE4/src/clipmanager.cpp 2008-07-21 17:34:00 UTC (rev 2336) +++ branches/KDE4/src/clipmanager.cpp 2008-07-21 19:24:46 UTC (rev 2337) @@ -106,7 +106,7 @@ if (type->name().startsWith("image/")) { prod.setAttribute("type", (int) IMAGE); prod.setAttribute("in", "0"); - prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration())); + prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1); } AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true); m_doc->commandStack()->push(command); @@ -121,7 +121,7 @@ uint id = m_clipIdCounter++; prod.setAttribute("id", QString::number(id)); prod.setAttribute("in", "0"); - prod.setAttribute("out", m_doc->getFramePos(duration)); + prod.setAttribute("out", m_doc->getFramePos(duration) - 1); prod.setAttribute("name", name); if (!group.isEmpty()) { prod.setAttribute("groupname", group); @@ -139,7 +139,7 @@ uint id = m_clipIdCounter++; prod.setAttribute("id", QString::number(id)); prod.setAttribute("in", "0"); - prod.setAttribute("out", m_doc->getFramePos(duration) * count); + prod.setAttribute("out", m_doc->getFramePos(duration) * count - 1); prod.setAttribute("ttl", m_doc->getFramePos(duration)); prod.setAttribute("luma_duration", m_doc->getFramePos(luma_duration)); prod.setAttribute("name", name); @@ -172,7 +172,7 @@ } prod.setAttribute("type", (int) TEXT); prod.setAttribute("in", "0"); - prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration())); + prod.setAttribute("out", m_doc->getFramePos(KdenliveSettings::image_duration()) - 1); AddClipCommand *command = new AddClipCommand(m_doc, prod, id, true); m_doc->commandStack()->push(command); } Modified: branches/KDE4/src/projectitem.cpp =================================================================== --- branches/KDE4/src/projectitem.cpp 2008-07-21 17:34:00 UTC (rev 2336) +++ branches/KDE4/src/projectitem.cpp 2008-07-21 19:24:46 UTC (rev 2337) @@ -186,7 +186,6 @@ break; case 4: tip.append(i18n("Color clip")); - setData(1, DurationRole, Timecode::getEasyTimecode(GenTime(m_clip->getProperty("out").toInt(), 25), 25)); break; case 5: tip.append(i18n("Image clip") + "</b><br />" + clipUrl().path()); Modified: branches/KDE4/src/renderer.cpp =================================================================== --- branches/KDE4/src/renderer.cpp 2008-07-21 17:34:00 UTC (rev 2336) +++ branches/KDE4/src/renderer.cpp 2008-07-21 19:24:46 UTC (rev 2337) @@ -1201,18 +1201,7 @@ Mlt::Producer trackProducer(tractor.track(info.track)); Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service()); - /*if (prod == NULL) { - // clip was never used yet - QDomDocument doc; - doc.appendChild(doc.importNode(element, true)); - QString resource = doc.toString(); - kDebug() << "// INSERTING CLIP: " << resource; - char *tmp = decodedString(resource); - prod = new Mlt::Producer(*m_mltProfile, "westley-xml", tmp); - delete[] tmp; - }*/ - - Mlt::Producer *clip = prod->cut(info.cropStart.frames(m_fps), (info.endPos - info.startPos).frames(m_fps)); + Mlt::Producer *clip = prod->cut(info.cropStart.frames(m_fps), (info.endPos - info.startPos).frames(m_fps) - 1); trackPlaylist.insert_at((int) info.startPos.frames(m_fps), *clip, 1); mlt_service_unlock(service.get_service()); @@ -1638,14 +1627,15 @@ Mlt::Producer trackProducer(tractor.track(startTrack)); Mlt::Playlist trackPlaylist((mlt_playlist) trackProducer.get_service()); int clipIndex = trackPlaylist.get_clip_index_at(moveStart + 1); - if (endTrack == startTrack) { //mlt_service_lock(service.get_service()); Mlt::Producer clipProducer(trackPlaylist.replace_with_blank(clipIndex)); trackPlaylist.consolidate_blanks(0); + if (!trackPlaylist.is_blank_at(moveEnd)) { // error, destination is not empty //int ix = trackPlaylist.get_clip_index_at(moveEnd); + kDebug()<<"// ERROR MOVING CLIP TO : "<<moveEnd; mlt_service_unlock(m_mltConsumer->get_service()); m_isBlocked = false; return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |