Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2020-04-06 15:47:19 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2020-04-06 16:18:32 +0300
commit7e93d4eea3097e9e452c7c19953a01b6fab76163 (patch)
tree9ad6e08cfdc6de2182432a8ae16591c77244f2bc
parent2903fb69293b6c05a758290aa5f88a24ebcbc51a (diff)
Tracking: Fix (un)distortion happen in single thread
Need to communicate available number of threads to the camera intrinsics implementation, otherwise default value of 1 is used. Must have been single-threaded for a very long time.
-rw-r--r--intern/libmv/intern/camera_intrinsics.cc2
-rw-r--r--intern/libmv/intern/camera_intrinsics.h1
-rw-r--r--source/blender/blenkernel/intern/tracking_util.c3
3 files changed, 6 insertions, 0 deletions
diff --git a/intern/libmv/intern/camera_intrinsics.cc b/intern/libmv/intern/camera_intrinsics.cc
index 4bd6b1270f5..89e3d0d1178 100644
--- a/intern/libmv/intern/camera_intrinsics.cc
+++ b/intern/libmv/intern/camera_intrinsics.cc
@@ -80,6 +80,8 @@ void libmv_cameraIntrinsicsUpdate(
* are not freed.
*/
+ camera_intrinsics->SetThreads(libmv_camera_intrinsics_options->num_threads);
+
if (camera_intrinsics->focal_length() != focal_length) {
camera_intrinsics->SetFocalLength(focal_length, focal_length);
}
diff --git a/intern/libmv/intern/camera_intrinsics.h b/intern/libmv/intern/camera_intrinsics.h
index 9e900892952..40a5826a9c4 100644
--- a/intern/libmv/intern/camera_intrinsics.h
+++ b/intern/libmv/intern/camera_intrinsics.h
@@ -33,6 +33,7 @@ enum {
typedef struct libmv_CameraIntrinsicsOptions {
// Common settings of all distortion models.
+ int num_threads;
int distortion_model;
int image_width, image_height;
double focal_length;
diff --git a/source/blender/blenkernel/intern/tracking_util.c b/source/blender/blenkernel/intern/tracking_util.c
index 51758abdf3f..d7600c06a6b 100644
--- a/source/blender/blenkernel/intern/tracking_util.c
+++ b/source/blender/blenkernel/intern/tracking_util.c
@@ -35,6 +35,7 @@
#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"
@@ -442,6 +443,8 @@ void tracking_cameraIntrinscisOptionsFromTracking(
MovieTrackingCamera *camera = &tracking->camera;
float aspy = 1.0f / tracking->camera.pixel_aspect;
+ camera_intrinsics_options->num_threads = BLI_system_thread_count();
+
camera_intrinsics_options->focal_length = camera->focal;
camera_intrinsics_options->principal_point_x = camera->principal[0];