[Bf-blender-cvs] [b1533f8fa4b] master: Tracking: Cleanup, de-duplicate implementation of marker lookup

Sergey Sharybin noreply at git.blender.org
Wed Nov 25 09:40:09 CET 2020


Commit: b1533f8fa4b157a1f6d4e383c4e60d384cb6dd97
Author: Sergey Sharybin
Date:   Tue Nov 24 16:29:41 2020 +0100
Branches: master
https://developer.blender.org/rBb1533f8fa4b157a1f6d4e383c4e60d384cb6dd97

Tracking: Cleanup, de-duplicate implementation of marker lookup

The logic was duplicated.

Should be no functional changes. The modified function is expected
to give same exact results for all inputs.

On the "caching last-used track" topic. The code was using last_marker
to allow faster lookup of marker closest to the frame. With this
change it is still the case since the BKE_tracking_marker_get() does
cache last used marker.

===================================================================

M	source/blender/blenkernel/intern/tracking_stabilize.c

===================================================================

diff --git a/source/blender/blenkernel/intern/tracking_stabilize.c b/source/blender/blenkernel/intern/tracking_stabilize.c
index d968ac4c03e..6f58416924f 100644
--- a/source/blender/blenkernel/intern/tracking_stabilize.c
+++ b/source/blender/blenkernel/intern/tracking_stabilize.c
@@ -270,21 +270,8 @@ static bool is_effectively_disabled(StabContext *ctx,
 
 static int search_closest_marker_index(MovieTrackingTrack *track, int ref_frame)
 {
-  MovieTrackingMarker *markers = track->markers;
-  int end = track->markersnr;
-  int i = track->last_marker;
-
-  i = MAX2(0, i);
-  i = MIN2(i, end - 1);
-  for (; i < end - 1 && markers[i].framenr <= ref_frame; i++) {
-    /* pass */
-  }
-  for (; 0 < i && markers[i].framenr > ref_frame; i--) {
-    /* pass */
-  }
-
-  track->last_marker = i;
-  return i;
+  const MovieTrackingMarker *marker = BKE_tracking_marker_get(track, ref_frame);
+  return marker - track->markers;
 }
 
 static void retrieve_next_higher_usable_frame(



More information about the Bf-blender-cvs mailing list