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 {
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Kdenlive-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/kdenlive-devel