Blender  V2.93
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 60 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 856 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 909 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

Definition at line 446 of file tracking_util.c.

References libmv_CameraIntrinsicsOptions::brown_k1, MovieTrackingCamera::brown_k1, libmv_CameraIntrinsicsOptions::brown_k2, MovieTrackingCamera::brown_k2, libmv_CameraIntrinsicsOptions::brown_k3, MovieTrackingCamera::brown_k3, libmv_CameraIntrinsicsOptions::brown_k4, MovieTrackingCamera::brown_k4, libmv_CameraIntrinsicsOptions::brown_p1, MovieTrackingCamera::brown_p1, libmv_CameraIntrinsicsOptions::brown_p2, MovieTrackingCamera::brown_p2, libmv_CameraIntrinsicsOptions::distortion_model, MovieTrackingCamera::distortion_model, libmv_CameraIntrinsicsOptions::division_k1, MovieTrackingCamera::division_k1, libmv_CameraIntrinsicsOptions::division_k2, MovieTrackingCamera::division_k2, MovieTrackingCamera::k1, MovieTrackingCamera::k2, MovieTrackingCamera::k3, LIBMV_DISTORTION_MODEL_BROWN, LIBMV_DISTORTION_MODEL_DIVISION, LIBMV_DISTORTION_MODEL_NUKE, LIBMV_DISTORTION_MODEL_POLYNOMIAL, libmv_CameraIntrinsicsOptions::nuke_k1, MovieTrackingCamera::nuke_k1, libmv_CameraIntrinsicsOptions::nuke_k2, MovieTrackingCamera::nuke_k2, libmv_CameraIntrinsicsOptions::polynomial_k1, libmv_CameraIntrinsicsOptions::polynomial_k2, libmv_CameraIntrinsicsOptions::polynomial_k3, libmv_CameraIntrinsicsOptions::polynomial_p1, libmv_CameraIntrinsicsOptions::polynomial_p2, TRACKING_DISTORTION_MODEL_BROWN, TRACKING_DISTORTION_MODEL_DIVISION, TRACKING_DISTORTION_MODEL_NUKE, and TRACKING_DISTORTION_MODEL_POLYNOMIAL.

Referenced by tracking_cameraIntrinscisOptionsFromTracking().

◆ 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 268 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 298 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 ( MovieTracking tracking,
int  calibration_width,
int  calibration_height,
libmv_CameraIntrinsicsOptions camera_intrinsics_options 
)

◆ tracking_get_keyframed_marker()

MovieTrackingMarker* tracking_get_keyframed_marker ( 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 
)

◆ 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,
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 
)

◆ tracks_map_get_size()

int tracks_map_get_size ( TracksMap map)

Definition at line 93 of file tracking_util.c.

References TracksMap::num_tracks.

◆ 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 259 of file tracking_util.c.

Referenced by marker_unified_to_frame_pixel_coordinates().