From: <j-...@us...> - 2009-09-17 13:15:00
|
Revision: 3906 http://kdenlive.svn.sourceforge.net/kdenlive/?rev=3906&view=rev Author: j-b-m Date: 2009-09-17 13:14:48 +0000 (Thu, 17 Sep 2009) Log Message: ----------- Fix bug in slowmotion clip creation Modified Paths: -------------- trunk/kdenlive/src/renderer.cpp Modified: trunk/kdenlive/src/renderer.cpp =================================================================== --- trunk/kdenlive/src/renderer.cpp 2009-09-17 12:10:52 UTC (rev 3905) +++ trunk/kdenlive/src/renderer.cpp 2009-09-17 13:14:48 UTC (rev 3906) @@ -1996,21 +1996,22 @@ int clipIndex = trackPlaylist.get_clip_index_at(startPos); int clipLength = trackPlaylist.clip_length(clipIndex); - Mlt::Producer *clip = trackPlaylist.get_clip(clipIndex); - if (clip == NULL) { + Mlt::Producer *original = trackPlaylist.get_clip(clipIndex); + if (original == NULL) { return -1; } - if (!clip->is_valid() || clip->is_blank()) { + if (!original->is_valid() || original->is_blank()) { // invalid clip - delete clip; + delete original; return -1; } - Mlt::Producer clipparent = clip->parent(); + Mlt::Producer clipparent = original->parent(); if (!clipparent.is_valid() || clipparent.is_blank()) { // invalid clip - delete clip; + delete original; return -1; } + delete original; QString serv = clipparent.get("mlt_service"); QString id = clipparent.get("id"); @@ -2022,8 +2023,8 @@ if (strobe > 1) url.append("&strobe=" + QString::number(strobe)); Mlt::Producer *slowprod = m_slowmotionProducers.value(url); if (!slowprod || slowprod->get_producer() == NULL) { - char *tmp = decodedString(url); - slowprod = new Mlt::Producer(*m_mltProfile, "framebuffer", tmp); + char *tmp = decodedString("framebuffer:" + url); + slowprod = new Mlt::Producer(*m_mltProfile, 0, tmp); if (strobe > 1) slowprod->set("strobe", strobe); delete[] tmp; QString producerid = "slowmotion:" + id + ':' + QString::number(speed); @@ -2088,8 +2089,8 @@ if (strobe > 1) url.append("&strobe=" + QString::number(strobe)); Mlt::Producer *slowprod = m_slowmotionProducers.value(url); if (!slowprod || slowprod->get_producer() == NULL) { - char *tmp = decodedString(url); - slowprod = new Mlt::Producer(*m_mltProfile, "framebuffer", tmp); + char *tmp = decodedString("framebuffer:" + url); + slowprod = new Mlt::Producer(*m_mltProfile, 0, tmp); delete[] tmp; slowprod->set("strobe", strobe); QString producerid = "slowmotion:" + id.section(':', 1, 1) + ':' + QString::number(speed); @@ -2127,7 +2128,6 @@ mlt_service_unlock(service.get_service()); } - delete clip; if (clipIndex + 1 == trackPlaylist.count()) mltCheckLength(&tractor); m_isBlocked = false; return newLength; @@ -2302,7 +2302,6 @@ for (int i = 0; i < filtersList.count(); i++) { clipService.attach(*(filtersList.at(i))); } - m_isBlocked = false; if (doRefresh) refresh(); return true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |