Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/tracking_stabilize.c
| Show First 20 Lines • Show All 305 Lines • ▼ Show 20 Lines | static void retrieve_next_lower_usable_frame( | ||||
| } | } | ||||
| } | } | ||||
| /* Find closest frames with usable stabilization data. | /* Find closest frames with usable stabilization data. | ||||
| * A frame counts as _usable_ when there is at least one track marked for | * A frame counts as _usable_ when there is at least one track marked for | ||||
| * translation stabilization, which has an enabled tracking marker at this very | * translation stabilization, which has an enabled tracking marker at this very | ||||
| * frame. We search both for the next lower and next higher position, to allow | * frame. We search both for the next lower and next higher position, to allow | ||||
| * the caller to interpolate gaps and to extrapolate at the ends of the | * the caller to interpolate gaps and to extrapolate at the ends of the | ||||
| * definition range. | * definition range. */ | ||||
| * | |||||
| * NOTE: Regarding performance note that the individual tracks will cache the | |||||
| * last search position. | |||||
| */ | |||||
| static void find_next_working_frames(StabContext *ctx, | static void find_next_working_frames(StabContext *ctx, | ||||
| int framenr, | int framenr, | ||||
| int *next_lower, | int *next_lower, | ||||
| int *next_higher) | int *next_higher) | ||||
| { | { | ||||
| LISTBASE_FOREACH (MovieTrackingTrack *, track, &ctx->tracking->tracks) { | LISTBASE_FOREACH (MovieTrackingTrack *, track, &ctx->tracking->tracks) { | ||||
| if (is_usable_for_stabilization(ctx, track)) { | if (is_usable_for_stabilization(ctx, track)) { | ||||
| int startpoint = search_closest_marker_index(track, framenr); | int startpoint = search_closest_marker_index(track, framenr); | ||||
| ▲ Show 20 Lines • Show All 1,164 Lines • Show Last 20 Lines | |||||