[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [42607] trunk/blender/source/blender: Do not switch to safe malloc if tracking sequence

Sergey Sharybin sergey.vfx at gmail.com
Tue Dec 13 17:37:54 CET 2011


Revision: 42607
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42607
Author:   nazgul
Date:     2011-12-13 16:37:52 +0000 (Tue, 13 Dec 2011)
Log Message:
-----------
Do not switch to safe malloc if tracking sequence

Malloc is getting to be safe on sequence tracking by the jobs system,
so no additional set up are necessary.

This hopefully fixes crash on OSX with OpenMP enabled when compiling by older gcc

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_tracking.h
    trunk/blender/source/blender/blenkernel/intern/tracking.c
    trunk/blender/source/blender/editors/space_clip/tracking_ops.c

Modified: trunk/blender/source/blender/blenkernel/BKE_tracking.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_tracking.h	2011-12-13 16:36:13 UTC (rev 42606)
+++ trunk/blender/source/blender/blenkernel/BKE_tracking.h	2011-12-13 16:37:52 UTC (rev 42607)
@@ -85,7 +85,7 @@
 
 /* 2D tracking */
 struct MovieTrackingContext *BKE_tracking_context_new(struct MovieClip *clip, struct MovieClipUser *user,
-			short backwards, short disable_failed);
+			short backwards, short disable_failed, short sequence);
 void BKE_tracking_context_free(struct MovieTrackingContext *context);
 void BKE_tracking_sync(struct MovieTrackingContext *context);
 void BKE_tracking_sync_user(struct MovieClipUser *user, struct MovieTrackingContext *context);

Modified: trunk/blender/source/blender/blenkernel/intern/tracking.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/tracking.c	2011-12-13 16:36:13 UTC (rev 42606)
+++ trunk/blender/source/blender/blenkernel/intern/tracking.c	2011-12-13 16:37:52 UTC (rev 42607)
@@ -736,11 +736,11 @@
 	MovieTrackingSettings settings;
 	TracksMap *tracks_map;
 
-	short backwards, disable_failed;
+	short backwards, disable_failed, sequence;
 	int sync_frame;
 } MovieTrackingContext;
 
-MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *user, short backwards, short disable_failed)
+MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *user, short backwards, short disable_failed, short sequence)
 {
 	MovieTrackingContext *context= MEM_callocN(sizeof(MovieTrackingContext), "trackingContext");
 	MovieTracking *tracking= &clip->tracking;
@@ -753,6 +753,7 @@
 	context->disable_failed= disable_failed;
 	context->sync_frame= user->framenr;
 	context->first_time= 1;
+	context->sequence= sequence;
 
 	/* count */
 	track= tracking->tracks.first;
@@ -831,7 +832,8 @@
 	context->clip= clip;
 	context->user= *user;
 
-	BLI_begin_threaded_malloc();
+	if(!sequence)
+		BLI_begin_threaded_malloc();
 
 	return context;
 }
@@ -859,7 +861,8 @@
 
 void BKE_tracking_context_free(MovieTrackingContext *context)
 {
-	BLI_end_threaded_malloc();
+	if(!context->sequence)
+		BLI_end_threaded_malloc();
 
 	tracks_map_free(context->tracks_map, track_context_free);
 

Modified: trunk/blender/source/blender/editors/space_clip/tracking_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_clip/tracking_ops.c	2011-12-13 16:36:13 UTC (rev 42606)
+++ trunk/blender/source/blender/editors/space_clip/tracking_ops.c	2011-12-13 16:37:52 UTC (rev 42607)
@@ -1302,7 +1302,7 @@
 		else if(settings->speed==TRACKING_SPEED_DOUBLE) tmj->delay/= 2;
 	}
 
-	tmj->context= BKE_tracking_context_new(clip, &sc->user, backwards, 1);
+	tmj->context= BKE_tracking_context_new(clip, &sc->user, backwards, 1, 1);
 
 	clip->tracking_context= tmj->context;
 
@@ -1413,7 +1413,7 @@
 		return OPERATOR_CANCELLED;
 
 	/* do not disable tracks due to threshold when tracking frame-by-frame */
-	context= BKE_tracking_context_new(clip, &sc->user, backwards, sequence);
+	context= BKE_tracking_context_new(clip, &sc->user, backwards, sequence, sequence);
 
 	while(framenr != efra) {
 		if(!BKE_tracking_next(context))




More information about the Bf-blender-cvs mailing list