[Bf-blender-cvs] [d61a6a8cc3b] master: Tracking: Fix missing frame remap for plane tracks

Sergey Sharybin noreply at git.blender.org
Mon Nov 30 14:41:22 CET 2020


Commit: d61a6a8cc3b1eab306f3795f2b91276aaaeed231
Author: Sergey Sharybin
Date:   Mon Nov 30 14:36:03 2020 +0100
Branches: master
https://developer.blender.org/rBd61a6a8cc3b1eab306f3795f2b91276aaaeed231

Tracking: Fix missing frame remap for plane tracks

Tracking track which is used for plane track and movie clip having
a scene frame offset would have trigger re-calculation from a wrong
frame.

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

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

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

diff --git a/source/blender/blenkernel/intern/tracking_auto.c b/source/blender/blenkernel/intern/tracking_auto.c
index deeaa85fa80..1dc047be7bf 100644
--- a/source/blender/blenkernel/intern/tracking_auto.c
+++ b/source/blender/blenkernel/intern/tracking_auto.c
@@ -59,7 +59,7 @@ typedef struct AutoTrackOptions {
 
 typedef struct AutoTrackContext {
   /* Frame at which tracking process started.
-   * TODO(sergey): Disambiguate whether it is a scene or clip frame. */
+   * NOTE: Measured in scene time frames, */
   int start_frame;
 
   /* True when tracking backwards (from higher frame number to lower frame number.) */
@@ -554,6 +554,8 @@ void BKE_autotrack_context_finish(AutoTrackContext *context)
   for (int clip_index = 0; clip_index < context->num_clips; clip_index++) {
     MovieClip *clip = context->clips[clip_index];
     ListBase *plane_tracks_base = BKE_tracking_get_active_plane_tracks(&clip->tracking);
+    const int start_clip_frame = BKE_movieclip_remap_scene_to_clip_frame(clip,
+                                                                         context->start_frame);
 
     LISTBASE_FOREACH (MovieTrackingPlaneTrack *, plane_track, plane_tracks_base) {
       if ((plane_track->flag & PLANE_TRACK_AUTOKEY)) {
@@ -563,7 +565,7 @@ void BKE_autotrack_context_finish(AutoTrackContext *context)
         const AutoTrackOptions *track_options = &context->track_options[i];
         MovieTrackingTrack *track = track_options->track;
         if (BKE_tracking_plane_track_has_point_track(plane_track, track)) {
-          BKE_tracking_track_plane_from_existing_motion(plane_track, context->start_frame);
+          BKE_tracking_track_plane_from_existing_motion(plane_track, start_clip_frame);
           break;
         }
       }



More information about the Bf-blender-cvs mailing list