Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/BKE_tracking.h2
-rw-r--r--source/blender/blenkernel/intern/tracking.c11
-rw-r--r--source/blender/editors/space_clip/tracking_ops.c4
3 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h
index e55d40ebfe5..973922d4223 100644
--- a/source/blender/blenkernel/BKE_tracking.h
+++ b/source/blender/blenkernel/BKE_tracking.h
@@ -85,7 +85,7 @@ void BKE_tracking_projection_matrix(struct MovieTracking *tracking, int framenr,
/* 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);
diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c
index 3543d361ab0..e2b0e823905 100644
--- a/source/blender/blenkernel/intern/tracking.c
+++ b/source/blender/blenkernel/intern/tracking.c
@@ -736,11 +736,11 @@ typedef struct MovieTrackingContext {
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 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u
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 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u
context->clip= clip;
context->user= *user;
- BLI_begin_threaded_malloc();
+ if(!sequence)
+ BLI_begin_threaded_malloc();
return context;
}
@@ -859,7 +861,8 @@ static void track_context_free(void *customdata)
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);
diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c
index 3d004ab73da..b0e7f1b4def 100644
--- a/source/blender/editors/space_clip/tracking_ops.c
+++ b/source/blender/editors/space_clip/tracking_ops.c
@@ -1302,7 +1302,7 @@ static int track_markers_initjob(bContext *C, TrackMarkersJob *tmj, int backward
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 @@ static int track_markers_exec(bContext *C, wmOperator *op)
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))