Blender  V3.3
Macros
tracking_util.c File Reference
#include <stddef.h>
#include "MEM_guardedalloc.h"
#include "DNA_movieclip_types.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_string.h"
#include "BLI_string_utils.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BLT_translation.h"
#include "BKE_movieclip.h"
#include "BKE_tracking.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "IMB_moviecache.h"
#include "tracking_private.h"
#include "libmv-capi.h"

Go to the source code of this file.

Macros

#define CACHE_PRINTF(...)
 

Functions

Tracks Map
TracksMaptracks_map_new (const char *object_name, bool is_camera, int num_tracks, int customdata_size)
 
int tracks_map_get_size (TracksMap *map)
 
void tracks_map_get_indexed_element (TracksMap *map, int index, MovieTrackingTrack **track, void **customdata)
 
void tracks_map_insert (TracksMap *map, MovieTrackingTrack *track, void *customdata)
 
void tracks_map_merge (TracksMap *map, MovieTracking *tracking)
 
void tracks_map_free (TracksMap *map, void(*customdata_free)(void *customdata))
 
Space Transformation Functions
static void unified_to_pixel (int frame_width, int frame_height, const float unified_coords[2], float pixel_coords[2])
 
static void marker_to_frame_unified (const MovieTrackingMarker *marker, const float marker_unified_coords[2], float frame_unified_coords[2])
 
static void marker_unified_to_frame_pixel_coordinates (int frame_width, int frame_height, const MovieTrackingMarker *marker, const float marker_unified_coords[2], float frame_pixel_coords[2])
 
void tracking_get_search_origin_frame_pixel (int frame_width, int frame_height, const MovieTrackingMarker *marker, float frame_pixel[2])
 
static void pixel_to_unified (int frame_width, int frame_height, const float pixel_coords[2], float unified_coords[2])
 
static void marker_unified_to_search_pixel (int frame_width, int frame_height, const MovieTrackingMarker *marker, const float marker_unified[2], float search_pixel[2])
 
static void search_pixel_to_marker_unified (int frame_width, int frame_height, const MovieTrackingMarker *marker, const float search_pixel[2], float marker_unified[2])
 
void tracking_get_marker_coords_for_tracking (int frame_width, int frame_height, const MovieTrackingMarker *marker, double search_pixel_x[5], double search_pixel_y[5])
 
void tracking_set_marker_coords_from_tracking (int frame_width, int frame_height, MovieTrackingMarker *marker, const double search_pixel_x[5], const double search_pixel_y[5])
 
General Purpose Utility Functions
void tracking_marker_insert_disabled (MovieTrackingTrack *track, const MovieTrackingMarker *ref_marker, bool before, bool overwrite)
 
static void distortion_model_parameters_from_tracking (const MovieTrackingCamera *camera, libmv_CameraIntrinsicsOptions *camera_intrinsics_options)
 
static void distortion_model_parameters_from_options (const libmv_CameraIntrinsicsOptions *camera_intrinsics_options, MovieTrackingCamera *camera)
 
void tracking_cameraIntrinscisOptionsFromTracking (MovieTracking *tracking, int calibration_width, int calibration_height, libmv_CameraIntrinsicsOptions *camera_intrinsics_options)
 
void tracking_trackingCameraFromIntrinscisOptions (MovieTracking *tracking, const libmv_CameraIntrinsicsOptions *camera_intrinsics_options)
 
MovieTrackingMarkertracking_get_keyframed_marker (MovieTrackingTrack *track, int current_frame, bool backwards)
 
Frame Accessor
static ImBufaccessor_get_preprocessed_ibuf (TrackingImageAccessor *accessor, int clip_index, int frame)
 
static ImBufmake_grayscale_ibuf_copy (ImBuf *ibuf)
 
static void ibuf_to_float_image (const ImBuf *ibuf, libmv_FloatImage *float_image)
 
static ImBuffloat_image_to_ibuf (libmv_FloatImage *float_image)
 
static ImBufaccessor_get_ibuf (TrackingImageAccessor *accessor, int clip_index, int frame, libmv_InputMode input_mode, int downscale, const libmv_Region *region, const libmv_FrameTransform *transform)
 
static libmv_CacheKey accessor_get_image_callback (struct libmv_FrameAccessorUserData *user_data, int clip_index, int frame, libmv_InputMode input_mode, int downscale, const libmv_Region *region, const libmv_FrameTransform *transform, float **destination, int *width, int *height, int *channels)
 
static void accessor_release_image_callback (libmv_CacheKey cache_key)
 
static libmv_CacheKey accessor_get_mask_for_track_callback (libmv_FrameAccessorUserData *user_data, int clip_index, int frame, int track_index, const libmv_Region *region, float **r_destination, int *r_width, int *r_height)
 
static void accessor_release_mask_callback (libmv_CacheKey cache_key)
 
TrackingImageAccessortracking_image_accessor_new (MovieClip *clips[MAX_ACCESSOR_CLIP], int num_clips, MovieTrackingTrack **tracks, int num_tracks)
 
void tracking_image_accessor_destroy (TrackingImageAccessor *accessor)
 

Detailed Description

This file contains implementation of function which are used by multiple tracking files but which should not be public.

Definition in file tracking_util.c.

Macro Definition Documentation

◆ CACHE_PRINTF

#define CACHE_PRINTF (   ...)

Definition at line 44 of file tracking_util.c.

Function Documentation

◆ accessor_get_ibuf()

static ImBuf* accessor_get_ibuf ( TrackingImageAccessor accessor,
int  clip_index,
int  frame,
libmv_InputMode  input_mode,
int  downscale,
const libmv_Region region,
const libmv_FrameTransform transform 
)
static

◆ accessor_get_image_callback()

static libmv_CacheKey accessor_get_image_callback ( struct libmv_FrameAccessorUserData user_data,
int  clip_index,
int  frame,
libmv_InputMode  input_mode,
int  downscale,
const libmv_Region region,
const libmv_FrameTransform transform,
float **  destination,
int *  width,
int *  height,
int *  channels 
)
static

◆ accessor_get_mask_for_track_callback()

static libmv_CacheKey accessor_get_mask_for_track_callback ( libmv_FrameAccessorUserData user_data,
int  clip_index,
int  frame,
int  track_index,
const libmv_Region region,
float **  r_destination,
int *  r_width,
int *  r_height 
)
static

◆ accessor_get_preprocessed_ibuf()

static ImBuf* accessor_get_preprocessed_ibuf ( TrackingImageAccessor accessor,
int  clip_index,
int  frame 
)
static

◆ accessor_release_image_callback()

static void accessor_release_image_callback ( libmv_CacheKey  cache_key)
static

Definition at line 823 of file tracking_util.c.

References IMB_freeImBuf().

Referenced by tracking_image_accessor_new().

◆ accessor_release_mask_callback()

static void accessor_release_mask_callback ( libmv_CacheKey  cache_key)
static

Definition at line 876 of file tracking_util.c.

References mask(), MEM_freeN, and NULL.

Referenced by tracking_image_accessor_new().

◆ distortion_model_parameters_from_options()

static void distortion_model_parameters_from_options ( const libmv_CameraIntrinsicsOptions camera_intrinsics_options,
MovieTrackingCamera camera 
)
static

◆ distortion_model_parameters_from_tracking()

static void distortion_model_parameters_from_tracking ( const MovieTrackingCamera camera,
libmv_CameraIntrinsicsOptions camera_intrinsics_options 
)
static

◆ float_image_to_ibuf()

static ImBuf* float_image_to_ibuf ( libmv_FloatImage float_image)
static

◆ ibuf_to_float_image()

static void ibuf_to_float_image ( const ImBuf ibuf,
libmv_FloatImage float_image 
)
static

◆ make_grayscale_ibuf_copy()

static ImBuf* make_grayscale_ibuf_copy ( ImBuf ibuf)
static

◆ marker_to_frame_unified()

static void marker_to_frame_unified ( const MovieTrackingMarker marker,
const float  marker_unified_coords[2],
float  frame_unified_coords[2] 
)
static

Definition at line 252 of file tracking_util.c.

References MovieTrackingMarker::pos.

Referenced by marker_unified_to_frame_pixel_coordinates().

◆ marker_unified_to_frame_pixel_coordinates()

static void marker_unified_to_frame_pixel_coordinates ( int  frame_width,
int  frame_height,
const MovieTrackingMarker marker,
const float  marker_unified_coords[2],
float  frame_pixel_coords[2] 
)
static

◆ marker_unified_to_search_pixel()

static void marker_unified_to_search_pixel ( int  frame_width,
int  frame_height,
const MovieTrackingMarker marker,
const float  marker_unified[2],
float  search_pixel[2] 
)
static

◆ pixel_to_unified()

static void pixel_to_unified ( int  frame_width,
int  frame_height,
const float  pixel_coords[2],
float  unified_coords[2] 
)
static

Definition at line 282 of file tracking_util.c.

Referenced by search_pixel_to_marker_unified().

◆ search_pixel_to_marker_unified()

static void search_pixel_to_marker_unified ( int  frame_width,
int  frame_height,
const MovieTrackingMarker marker,
const float  search_pixel[2],
float  marker_unified[2] 
)
static

◆ tracking_cameraIntrinscisOptionsFromTracking()

void tracking_cameraIntrinscisOptionsFromTracking ( struct MovieTracking tracking,
int  calibration_width,
int  calibration_height,
struct libmv_CameraIntrinsicsOptions camera_intrinsics_options 
)

◆ tracking_get_keyframed_marker()

MovieTrackingMarker* tracking_get_keyframed_marker ( struct MovieTrackingTrack track,
int  current_frame,
bool  backwards 
)

◆ tracking_get_marker_coords_for_tracking()

void tracking_get_marker_coords_for_tracking ( int  frame_width,
int  frame_height,
const MovieTrackingMarker marker,
double  search_pixel_x[5],
double  search_pixel_y[5] 
)

◆ tracking_get_search_origin_frame_pixel()

void tracking_get_search_origin_frame_pixel ( int  frame_width,
int  frame_height,
const MovieTrackingMarker marker,
float  frame_pixel[2] 
)

◆ tracking_image_accessor_destroy()

void tracking_image_accessor_destroy ( TrackingImageAccessor accessor)

◆ tracking_image_accessor_new()

TrackingImageAccessor* tracking_image_accessor_new ( MovieClip clips[MAX_ACCESSOR_CLIP],
int  num_clips,
MovieTrackingTrack **  tracks,
int  num_tracks 
)

Clips are used to access images of an actual footage. Tracks are used to access masks associated with the tracks.

Note
Both clips and tracks arrays are copied into the image accessor. It means that the caller is allowed to pass temporary arrays which are only valid during initialization.

Definition at line 884 of file tracking_util.c.

References accessor_get_image_callback(), accessor_get_mask_for_track_callback(), accessor_release_image_callback(), accessor_release_mask_callback(), BLI_assert, BLI_spin_init(), TrackingImageAccessor::cache_lock, TrackingImageAccessor::clips, TrackingImageAccessor::libmv_accessor, libmv_FrameAccessorNew(), MAX_ACCESSOR_CLIP, MEM_callocN, MEM_malloc_arrayN, TrackingImageAccessor::num_clips, TrackingImageAccessor::num_tracks, tracks, and TrackingImageAccessor::tracks.

Referenced by autotrack_context_init_image_accessor().

◆ tracking_marker_insert_disabled()

void tracking_marker_insert_disabled ( MovieTrackingTrack track,
const MovieTrackingMarker ref_marker,
bool  before,
bool  overwrite 
)

◆ tracking_set_marker_coords_from_tracking()

void tracking_set_marker_coords_from_tracking ( int  frame_width,
int  frame_height,
struct MovieTrackingMarker marker,
const double  search_pixel_x[5],
const double  search_pixel_y[5] 
)

◆ tracking_trackingCameraFromIntrinscisOptions()

void tracking_trackingCameraFromIntrinscisOptions ( MovieTracking tracking,
const libmv_CameraIntrinsicsOptions camera_intrinsics_options 
)

◆ tracks_map_free()

void tracks_map_free ( TracksMap map,
void(*)(void *customdata)  customdata_free 
)

◆ tracks_map_get_indexed_element()

void tracks_map_get_indexed_element ( TracksMap map,
int  index,
MovieTrackingTrack **  track,
void **  customdata 
)

Definition at line 82 of file tracking_util.c.

References map.

◆ tracks_map_get_size()

int tracks_map_get_size ( TracksMap map)

Definition at line 77 of file tracking_util.c.

References map.

◆ tracks_map_insert()

void tracks_map_insert ( TracksMap map,
MovieTrackingTrack track,
void customdata 
)

◆ tracks_map_merge()

void tracks_map_merge ( TracksMap map,
MovieTracking tracking 
)

◆ tracks_map_new()

TracksMap* tracks_map_new ( const char *  object_name,
bool  is_camera,
int  num_tracks,
int  customdata_size 
)

◆ unified_to_pixel()

static void unified_to_pixel ( int  frame_width,
int  frame_height,
const float  unified_coords[2],
float  pixel_coords[2] 
)
static

Definition at line 243 of file tracking_util.c.

Referenced by marker_unified_to_frame_pixel_coordinates().