Blender
V3.3
|
#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(...) |
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.
#define CACHE_PRINTF | ( | ... | ) |
Definition at line 44 of file tracking_util.c.
|
static |
Definition at line 670 of file tracking_util.c.
References accessor_get_preprocessed_ibuf(), BLI_assert, BLI_thread_lock(), BLI_thread_unlock(), CACHE_PRINTF, ImBuf::channels, ELEM, float_image_to_ibuf(), height, IB_rectfloat, ibuf_to_float_image(), IMB_allocImBuf(), IMB_dupImBuf(), IMB_float_from_rect(), IMB_freeImBuf(), IMB_rectcpy(), IMB_scaleImBuf(), input_mode, libmv_floatImageDestroy(), libmv_frameAccessorgetTransformRun(), LIBMV_IMAGE_MODE_MONO, LIBMV_IMAGE_MODE_RGBA, LOCK_MOVIECLIP, make_grayscale_ibuf_copy(), libmv_Region::max, max_ii(), libmv_Region::min, min_ii(), NULL, ImBuf::rect, ImBuf::rect_float, rgba_uchar_to_float(), transform(), width, x, ImBuf::x, y, and ImBuf::y.
Referenced by accessor_get_image_callback().
|
static |
Definition at line 788 of file tracking_util.c.
References accessor_get_ibuf(), BLI_assert, ImBuf::channels, channels(), height, input_mode, NULL, ImBuf::rect_float, transform(), user_data, width, ImBuf::x, and ImBuf::y.
Referenced by tracking_image_accessor_new().
|
static |
Definition at line 829 of file tracking_util.c.
References MovieTrackingTrack::algorithm_flag, BKE_movieclip_get_size(), BKE_movieclip_remap_clip_to_scene_frame(), BKE_movieclip_user_set_frame(), BKE_tracking_marker_get_exact(), BLI_assert, TrackingImageAccessor::clips, libmv_Region::max, MCLIP_PROXY_RENDER_SIZE_FULL, libmv_Region::min, NULL, MovieTrackingMarker::pos, MovieClipUser::render_flag, MovieClipUser::render_size, TRACK_ALGORITHM_FLAG_USE_MASK, tracking_track_get_mask_for_region(), TrackingImageAccessor::tracks, and user_data.
Referenced by tracking_image_accessor_new().
|
static |
Definition at line 599 of file tracking_util.c.
References BKE_movieclip_get_ibuf(), BKE_movieclip_remap_clip_to_scene_frame(), BKE_movieclip_user_set_frame(), BLI_assert, TrackingImageAccessor::clips, MCLIP_PROXY_RENDER_SIZE_FULL, MovieClipUser::render_flag, and MovieClipUser::render_size.
Referenced by accessor_get_ibuf().
|
static |
Definition at line 823 of file tracking_util.c.
References IMB_freeImBuf().
Referenced by tracking_image_accessor_new().
|
static |
Definition at line 876 of file tracking_util.c.
References mask(), MEM_freeN, and NULL.
Referenced by tracking_image_accessor_new().
|
static |
Definition at line 460 of file tracking_util.c.
References BLI_assert_msg, libmv_CameraIntrinsicsOptions::brown_k1, libmv_CameraIntrinsicsOptions::brown_k2, libmv_CameraIntrinsicsOptions::brown_k3, libmv_CameraIntrinsicsOptions::brown_k4, libmv_CameraIntrinsicsOptions::brown_p1, libmv_CameraIntrinsicsOptions::brown_p2, camera, libmv_CameraIntrinsicsOptions::distortion_model, libmv_CameraIntrinsicsOptions::division_k1, libmv_CameraIntrinsicsOptions::division_k2, LIBMV_DISTORTION_MODEL_BROWN, LIBMV_DISTORTION_MODEL_DIVISION, LIBMV_DISTORTION_MODEL_NUKE, LIBMV_DISTORTION_MODEL_POLYNOMIAL, libmv_CameraIntrinsicsOptions::nuke_k1, libmv_CameraIntrinsicsOptions::nuke_k2, libmv_CameraIntrinsicsOptions::polynomial_k1, libmv_CameraIntrinsicsOptions::polynomial_k2, libmv_CameraIntrinsicsOptions::polynomial_k3, TRACKING_DISTORTION_MODEL_BROWN, TRACKING_DISTORTION_MODEL_DIVISION, TRACKING_DISTORTION_MODEL_NUKE, and TRACKING_DISTORTION_MODEL_POLYNOMIAL.
Referenced by tracking_trackingCameraFromIntrinscisOptions().
|
static |
Definition at line 415 of file tracking_util.c.
References libmv_CameraIntrinsicsOptions::brown_k1, libmv_CameraIntrinsicsOptions::brown_k2, libmv_CameraIntrinsicsOptions::brown_k3, libmv_CameraIntrinsicsOptions::brown_k4, libmv_CameraIntrinsicsOptions::brown_p1, libmv_CameraIntrinsicsOptions::brown_p2, camera, libmv_CameraIntrinsicsOptions::distortion_model, libmv_CameraIntrinsicsOptions::division_k1, libmv_CameraIntrinsicsOptions::division_k2, LIBMV_DISTORTION_MODEL_BROWN, LIBMV_DISTORTION_MODEL_DIVISION, LIBMV_DISTORTION_MODEL_NUKE, LIBMV_DISTORTION_MODEL_POLYNOMIAL, libmv_CameraIntrinsicsOptions::nuke_k1, libmv_CameraIntrinsicsOptions::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().
|
static |
Definition at line 656 of file tracking_util.c.
References libmv_FloatImage::buffer, libmv_FloatImage::channels, ImBuf::channels, ImBuf::flags, float(), libmv_FloatImage::height, IB_rectfloat, IMB_allocImBuf(), ImBuf::mall, MEM_callocN, NULL, ImBuf::rect_float, size(), libmv_FloatImage::width, ImBuf::x, and ImBuf::y.
Referenced by accessor_get_ibuf().
|
static |
Definition at line 647 of file tracking_util.c.
References BLI_assert, libmv_FloatImage::buffer, libmv_FloatImage::channels, ImBuf::channels, libmv_FloatImage::height, NULL, ImBuf::rect_float, libmv_FloatImage::width, ImBuf::x, and ImBuf::y.
Referenced by accessor_get_ibuf().
Definition at line 620 of file tracking_util.c.
References BLI_assert, ImBuf::channels, ELEM, ImBuf::flags, float(), IB_rectfloat, IMB_allocImBuf(), ImBuf::mall, MEM_callocN, NULL, ImBuf::rect_float, size(), ImBuf::x, and ImBuf::y.
Referenced by accessor_get_ibuf().
|
static |
Definition at line 252 of file tracking_util.c.
References MovieTrackingMarker::pos.
Referenced by marker_unified_to_frame_pixel_coordinates().
|
static |
Definition at line 260 of file tracking_util.c.
References marker_to_frame_unified(), and unified_to_pixel().
Referenced by marker_unified_to_search_pixel(), and tracking_get_search_origin_frame_pixel().
|
static |
Definition at line 291 of file tracking_util.c.
References marker_unified_to_frame_pixel_coordinates(), sub_v2_v2v2(), and tracking_get_search_origin_frame_pixel().
Referenced by tracking_get_marker_coords_for_tracking().
|
static |
Definition at line 282 of file tracking_util.c.
Referenced by search_pixel_to_marker_unified().
|
static |
Definition at line 307 of file tracking_util.c.
References add_v2_v2v2(), pixel_to_unified(), MovieTrackingMarker::pos, sub_v2_v2v2(), and tracking_get_search_origin_frame_pixel().
Referenced by tracking_set_marker_coords_from_tracking().
void tracking_cameraIntrinscisOptionsFromTracking | ( | struct MovieTracking * | tracking, |
int | calibration_width, | ||
int | calibration_height, | ||
struct libmv_CameraIntrinsicsOptions * | camera_intrinsics_options | ||
) |
Fill in Libmv C-API camera intrinsics options from tracking structure.
Definition at line 498 of file tracking_util.c.
References BLI_system_thread_count(), MovieTracking::camera, camera, distortion_model_parameters_from_tracking(), libmv_CameraIntrinsicsOptions::focal_length, libmv_CameraIntrinsicsOptions::image_height, libmv_CameraIntrinsicsOptions::image_width, libmv_CameraIntrinsicsOptions::num_threads, MovieTrackingCamera::pixel_aspect, libmv_CameraIntrinsicsOptions::principal_point_x, and libmv_CameraIntrinsicsOptions::principal_point_y.
Referenced by BKE_tracking_distort_v2(), BKE_tracking_distortion_new(), BKE_tracking_distortion_update(), BKE_tracking_reconstruction_context_new(), and BKE_tracking_undistort_v2().
MovieTrackingMarker* tracking_get_keyframed_marker | ( | struct MovieTrackingTrack * | track, |
int | current_frame, | ||
bool | backwards | ||
) |
Get previous keyframed marker.
Definition at line 534 of file tracking_util.c.
References Freestyle::a, BKE_tracking_marker_get(), MovieTrackingMarker::flag, MARKER_DISABLED, MARKER_TRACKED, MovieTrackingTrack::markers, next, and NULL.
Referenced by dna_marker_to_libmv_marker(), and tracking_context_get_keyframed_ibuf().
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] | ||
) |
Definition at line 325 of file tracking_util.c.
References marker_unified_to_search_pixel(), and MovieTrackingMarker::pattern_corners.
Referenced by BKE_tracking_sample_pattern(), and configure_and_run_tracker().
void tracking_get_search_origin_frame_pixel | ( | int | frame_width, |
int | frame_height, | ||
const MovieTrackingMarker * | marker, | ||
float | frame_pixel[2] | ||
) |
Definition at line 270 of file tracking_util.c.
References marker_unified_to_frame_pixel_coordinates(), and MovieTrackingMarker::search_min.
Referenced by BKE_tracking_get_search_imbuf(), marker_unified_to_search_pixel(), and search_pixel_to_marker_unified().
void tracking_image_accessor_destroy | ( | TrackingImageAccessor * | accessor | ) |
Definition at line 913 of file tracking_util.c.
References BLI_spin_end(), TrackingImageAccessor::cache_lock, TrackingImageAccessor::libmv_accessor, libmv_FrameAccessorDestroy(), MEM_freeN, and TrackingImageAccessor::tracks.
Referenced by BKE_autotrack_context_free().
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.
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().
void tracking_marker_insert_disabled | ( | MovieTrackingTrack * | track, |
const MovieTrackingMarker * | ref_marker, | ||
bool | before, | ||
bool | overwrite | ||
) |
Definition at line 392 of file tracking_util.c.
References BKE_tracking_marker_insert(), BKE_tracking_track_has_marker_at_frame(), MovieTrackingMarker::flag, MovieTrackingMarker::framenr, MARKER_DISABLED, and MARKER_TRACKED.
Referenced by BKE_autotrack_context_sync(), path_clear_all(), path_clear_remained(), and path_clear_up_to().
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] | ||
) |
Inverse of tracking_get_marker_coords_for_tracking.
Definition at line 351 of file tracking_util.c.
References MovieTrackingMarker::pattern_corners, MovieTrackingMarker::pos, and search_pixel_to_marker_unified().
Referenced by BKE_tracking_refine_marker().
void tracking_trackingCameraFromIntrinscisOptions | ( | MovieTracking * | tracking, |
const libmv_CameraIntrinsicsOptions * | camera_intrinsics_options | ||
) |
Definition at line 520 of file tracking_util.c.
References MovieTracking::camera, camera, distortion_model_parameters_from_options(), double(), libmv_CameraIntrinsicsOptions::focal_length, MovieTrackingCamera::pixel_aspect, libmv_CameraIntrinsicsOptions::principal_point_x, and libmv_CameraIntrinsicsOptions::principal_point_y.
Referenced by reconstruct_retrieve_libmv_intrinsics().
Definition at line 208 of file tracking_util.c.
References BKE_tracking_track_free(), BLI_ghash_free(), BLI_spin_end(), map, MEM_freeN, and NULL.
Referenced by BKE_tracking_reconstruction_context_free().
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.
int tracks_map_get_size | ( | TracksMap * | map | ) |
Definition at line 77 of file tracking_util.c.
References map.
void tracks_map_insert | ( | TracksMap * | map, |
MovieTrackingTrack * | track, | ||
void * | customdata | ||
) |
Definition at line 94 of file tracking_util.c.
References BLI_ghash_insert(), map, MovieTrackingTrack::markers, and MEM_dupallocN.
Referenced by BKE_tracking_reconstruction_context_new().
void tracks_map_merge | ( | TracksMap * | map, |
MovieTracking * | tracking | ||
) |
Definition at line 111 of file tracking_util.c.
References Freestyle::a, BKE_tracking_object_add(), BKE_tracking_object_get_named(), BKE_tracking_track_duplicate(), BLI_addtail(), BLI_findindex(), BLI_ghash_lookup(), BLI_ghash_reinsert(), BLI_remlink(), BLI_spin_lock(), BLI_spin_unlock(), BLI_uniquename(), BLT_I18NCONTEXT_ID_MOVIECLIP, CTX_DATA_, ListBase::first, MovieTrackingTrack::flag, map, MovieTrackingTrack::markers, MEM_dupallocN, MEM_freeN, MovieTrackingTrack::name, MovieTrackingTrack::next, next, NULL, MovieTrackingTrack::pat_flag, MovieTrackingTrack::prev, MovieTrackingTrack::search_flag, tracks, and MovieTracking::tracks.
Referenced by BKE_tracking_reconstruction_finish().
TracksMap* tracks_map_new | ( | const char * | object_name, |
bool | is_camera, | ||
int | num_tracks, | ||
int | customdata_size | ||
) |
Definition at line 51 of file tracking_util.c.
References BLI_ghash_ptr_new(), BLI_spin_init(), BLI_strncpy(), map, and MEM_callocN.
Referenced by BKE_tracking_reconstruction_context_new().
|
static |
Definition at line 243 of file tracking_util.c.
Referenced by marker_unified_to_frame_pixel_coordinates().