[Bf-blender-cvs] [7e93d4eea30] master: Tracking: Fix (un)distortion happen in single thread
Sergey Sharybin
noreply at git.blender.org
Mon Apr 6 15:18:39 CEST 2020
Commit: 7e93d4eea3097e9e452c7c19953a01b6fab76163
Author: Sergey Sharybin
Date: Mon Apr 6 14:47:19 2020 +0200
Branches: master
https://developer.blender.org/rB7e93d4eea3097e9e452c7c19953a01b6fab76163
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.
===================================================================
M intern/libmv/intern/camera_intrinsics.cc
M intern/libmv/intern/camera_intrinsics.h
M source/blender/blenkernel/intern/tracking_util.c
===================================================================
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];
More information about the Bf-blender-cvs
mailing list