Disable markers when doing frame-by-frame tracking and tracker library returns failure
This commit is contained in:
parent
3c6e818b22
commit
792452a7e5
@ -98,7 +98,7 @@ struct MovieTrackingReconstruction *BKE_tracking_object_reconstruction(struct Mo
|
||||
|
||||
/* 2D tracking */
|
||||
struct MovieTrackingContext *BKE_tracking_context_new(struct MovieClip *clip, struct MovieClipUser *user,
|
||||
short backwards, short disable_failed, short sequence);
|
||||
short backwards, 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);
|
||||
|
@ -787,11 +787,11 @@ typedef struct MovieTrackingContext {
|
||||
MovieTrackingSettings settings;
|
||||
TracksMap *tracks_map;
|
||||
|
||||
short backwards, disable_failed, sequence;
|
||||
short backwards, sequence;
|
||||
int sync_frame;
|
||||
} MovieTrackingContext;
|
||||
|
||||
MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *user, short backwards, short disable_failed, short sequence)
|
||||
MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *user, short backwards, short sequence)
|
||||
{
|
||||
MovieTrackingContext *context= MEM_callocN(sizeof(MovieTrackingContext), "trackingContext");
|
||||
MovieTracking *tracking= &clip->tracking;
|
||||
@ -803,7 +803,6 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u
|
||||
|
||||
context->settings= *settings;
|
||||
context->backwards= backwards;
|
||||
context->disable_failed= disable_failed;
|
||||
context->sync_frame= user->framenr;
|
||||
context->first_time= 1;
|
||||
context->sequence= sequence;
|
||||
@ -1379,7 +1378,7 @@ int BKE_tracking_next(MovieTrackingContext *context)
|
||||
}
|
||||
|
||||
coords_correct= !onbound && !isnan(x2) && !isnan(y2) && finite(x2) && finite(y2);
|
||||
if(coords_correct && (tracked || !context->disable_failed)) {
|
||||
if(coords_correct && !onbound && tracked) {
|
||||
if(context->first_time) {
|
||||
#pragma omp critical
|
||||
{
|
||||
|
@ -1297,7 +1297,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, 1);
|
||||
tmj->context= BKE_tracking_context_new(clip, &sc->user, backwards, 1);
|
||||
|
||||
clip->tracking_context= tmj->context;
|
||||
|
||||
@ -1408,7 +1408,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, sequence);
|
||||
context= BKE_tracking_context_new(clip, &sc->user, backwards, sequence);
|
||||
|
||||
while(framenr != efra) {
|
||||
if(!BKE_tracking_next(context))
|
||||
|
Loading…
Reference in New Issue
Block a user