Expand description
Point / area tracking (the Tracking pane): zero-mean normalised cross-correlation of a template
patch over a search window, frame by frame, producing exactly the (x, y, t) point list a
PathAsset holds — so a track can be saved as a project path and replayed onto a clip’s X/Y
keyframes (Project::apply_path).
The job owns a thread and its own DecoderPool (same shape as every other worker here) and streams
one point plus a progress fraction per frame; dropping the job hangs up the channel and the worker
stops on its next send. The UI never blocks.
ponytail: the clip is tracked in its source frame decoded at project resolution, so the clip’s own
transform is ignored — right for the usual full-frame clip. Render through engine::compose per
frame if a scaled / rotated / nested clip ever has to track.
Structs§
Functions§
- best_
match - Best zero-mean NCC match for
tpl(apatchof the same half-sizes) withinsearchpx of (cx, cy): the matched centre and its score in -1..=1. None when the template or every candidate window is flat — there is nothing to lock onto, and the caller keeps the previous position. - luma 🔒
- Luma at (x, y), edge-clamped (the search window is allowed to hang off the frame).
- patch
- The
(2*hw+1) x (2*hh+1)luma patch centred on (cx, cy).
Type Aliases§
- Msg 🔒
- One tracked frame: its point (canvas px relative to the centre, clip-local seconds) and how far through the clip the worker is.