[Kdenlive-devel] problems with latest svn/git
Mikko Rapeli
mikko.rapeli at iki.fi
Tue Jun 22 19:17:09 UTC 2010
On Tue, Jun 22, 2010 at 12:05:55AM +0300, Mikko Rapeli wrote:
> I got to take this back. Using kdenlive 0.7.7.1 I was able to fix and finish
> the corrupted project without any problems. I'll try to find out the offending
> commit with git bisect.
First of all, thanks for keeping project files compatible between 0.7.7.1 and
latest development tree, and having a git tree available made tracing this
a whole lot easier to me.
I found a dumb way of reproducing the problem somewhat reliably on my project
and after 26 tries this commit is to blame:
git 6b51c6a10ab7a7f8e856e83b157f188a04c749d6
svn 4413
Since reproducing was a bit of a black art I did one run with git bisect
and one manual walk back a few commits to be sure. That commit is pretty big,
so I split it down. The bad piece of code the one below.
As a final wish/whine: please commit changes in smaller logical pieces.
For example git add -p file_with_ton_of_changes.cpp can help to split patches.
diff --git a/src/renderer.cpp b/src/renderer.cpp
index ad5793d..247e913 100644
--- a/src/renderer.cpp
+++ b/src/renderer.cpp
@@ -2750,17 +2750,15 @@ bool Render::mltResizeClipStart(ItemInfo info, GenTime diff)
}
mlt_service_lock(service.get_service());
int clipIndex = trackPlaylist.get_clip_index_at(info.startPos.frames(m_fps));
- Mlt::Producer *clip = trackPlaylist.get_clip(clipIndex);
- if (clip == NULL) {
+ if (trackPlaylist.is_blank(clipIndex)) {
kDebug() << "//////// ERROR RSIZING NULL CLIP!!!!!!!!!!!";
mlt_service_unlock(service.get_service());
return false;
}
- int previousStart = clip->get_in();
- delete clip;
+ int previousStart = trackPlaylist.clip_start(clipIndex);
int previousDuration = trackPlaylist.clip_length(clipIndex) - 1;
m_isBlocked = true;
- kDebug() << "RESIZE, old start: " << previousStart << ", PREV DUR: " << previousDuration << ", DIFF: " << moveFrame;
+ kDebug() << "RESIZE, old start: " << previousStart + moveFrame<<", "<<previousStart + previousDuration;
trackPlaylist.resize_clip(clipIndex, previousStart + moveFrame, previousStart + previousDuration);
if (moveFrame > 0) trackPlaylist.insert_blank(clipIndex, moveFrame - 1);
else {
More information about the Kdenlive
mailing list