diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-10-07 23:21:29 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2011-10-07 23:21:29 +0400 |
commit | 92ddc03126dfa706d693575323bff1bbceb1bfcb (patch) | |
tree | d77df8f0b9b409f382e99ab29dd55e9dbe180306 /source/blender/blenkernel/BKE_tracking.h | |
parent | f8b081153bec2268197551a23016768c0dc45cd0 (diff) |
Camera tracking integration
===========================
Fixed threading issues used to happen when compositor tree
and rendering happened in the same time. Problem was caused
by cached camera intrinsics stored in MovieTracking structure
and access to which wasn't thread-safe.
Now each movie distoriton mode stores it's own camera intrinsics
in it's storage which makes compositor (un)distoriton be totally
thread-safe and this also makes compositor tree faster when
(un)distortion happens on images with different resolution.
Diffstat (limited to 'source/blender/blenkernel/BKE_tracking.h')
-rw-r--r-- | source/blender/blenkernel/BKE_tracking.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h index 3f2b44c2fef..23c72855c8a 100644 --- a/source/blender/blenkernel/BKE_tracking.h +++ b/source/blender/blenkernel/BKE_tracking.h @@ -40,6 +40,7 @@ struct MovieTrackingMarker; struct MovieTracking; struct MovieTrackingContext; struct MovieClipUser; +struct MovieDistortion; struct Scene; struct Object; @@ -94,6 +95,13 @@ void BKE_tracking_stabilization_data(struct MovieTracking *tracking, int framenr struct ImBuf *BKE_tracking_stabilize(struct MovieTracking *tracking, int framenr, struct ImBuf *ibuf, float loc[2], float *scale, float *angle); void BKE_tracking_stabdata_to_mat4(int width, int height, float loc[2], float scale, float angle, float mat[4][4]); +/* Distoriton/Undistortion */ +struct MovieDistortion *BKE_tracking_distortion_create(void); +struct MovieDistortion *BKE_tracking_distortion_copy(struct MovieDistortion *distortion); +struct ImBuf *BKE_tracking_distortion_exec(struct MovieDistortion *distortion, struct MovieTracking *tracking, + struct ImBuf *ibuf, int width, int height, int undistort); +void BKE_tracking_distortion_destroy(struct MovieDistortion *distortion); + struct ImBuf *BKE_tracking_undistort(struct MovieTracking *tracking, struct ImBuf *ibuf, int width, int height); struct ImBuf *BKE_tracking_distort(struct MovieTracking *tracking, struct ImBuf *ibuf, int width, int height); |