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:
authorSergey Sharybin <sergey@blender.org>2020-11-24 18:29:41 +0300
committerSergey Sharybin <sergey@blender.org>2020-11-25 11:37:24 +0300
commitb1533f8fa4b157a1f6d4e383c4e60d384cb6dd97 (patch)
tree6df1c72f706ee6569dfd1c90cb6eb76a3ee45d3b /source/blender/blenkernel/intern/tracking_stabilize.c
parente922dd7d8a307c54d49bc01649a12610b022192b (diff)
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.
Diffstat (limited to 'source/blender/blenkernel/intern/tracking_stabilize.c')
-rw-r--r--source/blender/blenkernel/intern/tracking_stabilize.c17
1 files changed, 2 insertions, 15 deletions
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(