[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39551] branches/soc-2011-tomato/source/ blender/blenkernel/intern/tracking.c: Camera tracking integration
Sergey Sharybin
g.ulairi at gmail.com
Fri Aug 19 15:41:01 CEST 2011
Revision: 39551
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39551
Author: nazgul
Date: 2011-08-19 13:41:00 +0000 (Fri, 19 Aug 2011)
Log Message:
-----------
Camera tracking integration
===========================
- Fixing keyframes when tracking frame-by-frame.
- Fixed small typo in array initializer.
Modified Paths:
--------------
branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
Modified: branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c
===================================================================
--- branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c 2011-08-19 12:58:20 UTC (rev 39550)
+++ branches/soc-2011-tomato/source/blender/blenkernel/intern/tracking.c 2011-08-19 13:41:00 UTC (rev 39551)
@@ -768,15 +768,19 @@
return pixels;
}
-static ImBuf *acquire_keyframed_ibuf(MovieTrackingContext *context, MovieTrackingTrack *track, MovieTrackingMarker *marker)
+static ImBuf *acquire_keyframed_ibuf(MovieTrackingContext *context, MovieTrackingTrack *track,
+ MovieTrackingMarker *marker, MovieTrackingMarker **marker_keyed)
{
int framenr_old= context->user.framenr, framenr= marker->framenr;
int a= marker-track->markers;
ImBuf *ibuf;
+ *marker_keyed= marker;
+
while(a>=0 && a<track->markersnr) {
- if(marker->flag&MARKER_TRACKED) {
- framenr= marker->framenr;
+ if((track->markers[a].flag&MARKER_TRACKED)==0) {
+ framenr= track->markers[a].framenr;
+ *marker_keyed= &track->markers[a];
break;
}
@@ -917,7 +921,7 @@
float pos[2];
double x1, y1, x2, y2;
ImBuf *ibuf= NULL;
- MovieTrackingMarker marker_new;
+ MovieTrackingMarker marker_new, *marker_keyed;
if(context->settings.tracker==TRACKER_KLT) {
int wndx, wndy;
@@ -925,8 +929,9 @@
if(!track_context->patch) {
/* calculate patch for keyframed position */
- ibuf= acquire_keyframed_ibuf(context, track, marker);
- track_context->patch= acquire_search_floatbuf(ibuf, track, marker, &width, &height, pos, origin);
+ ibuf= acquire_keyframed_ibuf(context, track, marker, &marker_keyed);
+ track_context->patch= acquire_search_floatbuf(ibuf, track, marker_keyed, &width, &height, pos, origin);
+
IMB_freeImBuf(ibuf);
}
@@ -952,12 +957,12 @@
if(track_context->pattern==NULL) {
unsigned char *image;
- float warp[3][2]={0};
+ float warp[3][2]={{0}};
/* calculate pattern for keyframed position */
- ibuf= acquire_keyframed_ibuf(context, track, marker);
- image= acquire_search_bytebuf(ibuf, track, marker, &width, &height, pos, origin);
+ ibuf= acquire_keyframed_ibuf(context, track, marker, &marker_keyed);
+ image= acquire_search_bytebuf(ibuf, track, marker_keyed, &width, &height, pos, origin);
warp[0][0]= 1;
warp[1][1]= 1;
More information about the Bf-blender-cvs
mailing list