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:
Diffstat (limited to 'intern/libmv/intern')
-rw-r--r--intern/libmv/intern/camera_intrinsics.cc4
-rw-r--r--intern/libmv/intern/frame_accessor.cc61
-rw-r--r--intern/libmv/intern/frame_accessor.h15
-rw-r--r--intern/libmv/intern/logging.cc26
-rw-r--r--intern/libmv/intern/stub.cc4
5 files changed, 90 insertions, 20 deletions
diff --git a/intern/libmv/intern/camera_intrinsics.cc b/intern/libmv/intern/camera_intrinsics.cc
index 24a34ae40bb..3b4cd1545df 100644
--- a/intern/libmv/intern/camera_intrinsics.cc
+++ b/intern/libmv/intern/camera_intrinsics.cc
@@ -179,7 +179,7 @@ void libmv_cameraIntrinsicsExtractOptions(
camera_intrinsics_options->polynomial_k2 = polynomial_intrinsics->k2();
camera_intrinsics_options->polynomial_k3 = polynomial_intrinsics->k3();
camera_intrinsics_options->polynomial_p1 = polynomial_intrinsics->p1();
- camera_intrinsics_options->polynomial_p1 = polynomial_intrinsics->p2();
+ camera_intrinsics_options->polynomial_p2 = polynomial_intrinsics->p2();
break;
}
@@ -195,7 +195,7 @@ void libmv_cameraIntrinsicsExtractOptions(
}
default:
- assert(!"Uknown distortion model");
+ assert(!"Unknown distortion model");
}
}
diff --git a/intern/libmv/intern/frame_accessor.cc b/intern/libmv/intern/frame_accessor.cc
index 9213cc311b3..a741eb88fc7 100644
--- a/intern/libmv/intern/frame_accessor.cc
+++ b/intern/libmv/intern/frame_accessor.cc
@@ -40,10 +40,17 @@ using mv::Region;
struct LibmvFrameAccessor : public FrameAccessor {
LibmvFrameAccessor(libmv_FrameAccessorUserData* user_data,
libmv_GetImageCallback get_image_callback,
- libmv_ReleaseImageCallback release_image_callback)
+ libmv_ReleaseImageCallback release_image_callback,
+ libmv_GetMaskForTrackCallback get_mask_for_track_callback,
+ libmv_ReleaseMaskCallback release_mask_callback)
: user_data_(user_data),
get_image_callback_(get_image_callback),
- release_image_callback_(release_image_callback) { }
+ release_image_callback_(release_image_callback),
+ get_mask_for_track_callback_(get_mask_for_track_callback),
+ release_mask_callback_(release_mask_callback) { }
+
+ virtual ~LibmvFrameAccessor() {
+ }
libmv_InputMode get_libmv_input_mode(InputMode input_mode) {
switch (input_mode) {
@@ -106,6 +113,46 @@ struct LibmvFrameAccessor : public FrameAccessor {
release_image_callback_(cache_key);
}
+ Key GetMaskForTrack(int clip,
+ int frame,
+ int track,
+ const Region* region,
+ FloatImage* destination) {
+ float *float_buffer;
+ int width, height;
+ libmv_Region libmv_region;
+ if (region) {
+ get_libmv_region(*region, &libmv_region);
+ }
+ Key cache_key = get_mask_for_track_callback_(
+ user_data_,
+ clip,
+ frame,
+ track,
+ region != NULL ? &libmv_region : NULL,
+ &float_buffer,
+ &width,
+ &height);
+
+ if (cache_key == NULL) {
+ // No mask for the given track.
+ return NULL;
+ }
+
+ // TODO(sergey): Dumb code for until we can set data directly.
+ FloatImage temp_image(float_buffer,
+ height,
+ width,
+ 1);
+ destination->CopyFrom(temp_image);
+
+ return cache_key;
+ }
+
+ void ReleaseMask(Key key) {
+ release_mask_callback_(key);
+ }
+
bool GetClipDimensions(int /*clip*/, int * /*width*/, int * /*height*/) {
return false;
}
@@ -121,6 +168,8 @@ struct LibmvFrameAccessor : public FrameAccessor {
libmv_FrameAccessorUserData* user_data_;
libmv_GetImageCallback get_image_callback_;
libmv_ReleaseImageCallback release_image_callback_;
+ libmv_GetMaskForTrackCallback get_mask_for_track_callback_;
+ libmv_ReleaseMaskCallback release_mask_callback_;
};
} // namespace
@@ -128,11 +177,15 @@ struct LibmvFrameAccessor : public FrameAccessor {
libmv_FrameAccessor* libmv_FrameAccessorNew(
libmv_FrameAccessorUserData* user_data,
libmv_GetImageCallback get_image_callback,
- libmv_ReleaseImageCallback release_image_callback) {
+ libmv_ReleaseImageCallback release_image_callback,
+ libmv_GetMaskForTrackCallback get_mask_for_track_callback,
+ libmv_ReleaseMaskCallback release_mask_callback) {
return (libmv_FrameAccessor*) LIBMV_OBJECT_NEW(LibmvFrameAccessor,
user_data,
get_image_callback,
- release_image_callback);
+ release_image_callback,
+ get_mask_for_track_callback,
+ release_mask_callback);
}
void libmv_FrameAccessorDestroy(libmv_FrameAccessor* frame_accessor) {
diff --git a/intern/libmv/intern/frame_accessor.h b/intern/libmv/intern/frame_accessor.h
index 3e813fe7581..c041d67f56f 100644
--- a/intern/libmv/intern/frame_accessor.h
+++ b/intern/libmv/intern/frame_accessor.h
@@ -61,10 +61,23 @@ typedef libmv_CacheKey (*libmv_GetImageCallback) (
typedef void (*libmv_ReleaseImageCallback) (libmv_CacheKey cache_key);
+typedef libmv_CacheKey (*libmv_GetMaskForTrackCallback) (
+ libmv_FrameAccessorUserData* user_data,
+ int clip,
+ int frame,
+ int track,
+ const libmv_Region* region,
+ float** destination,
+ int* width,
+ int* height);
+typedef void (*libmv_ReleaseMaskCallback) (libmv_CacheKey cache_key);
+
libmv_FrameAccessor* libmv_FrameAccessorNew(
libmv_FrameAccessorUserData* user_data,
libmv_GetImageCallback get_image_callback,
- libmv_ReleaseImageCallback release_image_callback);
+ libmv_ReleaseImageCallback release_image_callback,
+ libmv_GetMaskForTrackCallback get_mask_for_track_callback,
+ libmv_ReleaseMaskCallback release_mask_callback);
void libmv_FrameAccessorDestroy(libmv_FrameAccessor* frame_accessor);
int64_t libmv_frameAccessorgetTransformKey(const libmv_FrameTransform *transform);
diff --git a/intern/libmv/intern/logging.cc b/intern/libmv/intern/logging.cc
index 77b56ef4df3..863832cb72b 100644
--- a/intern/libmv/intern/logging.cc
+++ b/intern/libmv/intern/logging.cc
@@ -29,27 +29,29 @@
#include "libmv/logging/logging.h"
void libmv_initLogging(const char* argv0) {
- // Make it so FATAL messages are always print into console.
+ using LIBMV_GFLAGS_NAMESPACE::SetCommandLineOption;
+ // Make it so ERROR messages are always print into console.
char severity_fatal[32];
snprintf(severity_fatal, sizeof(severity_fatal), "%d",
- google::GLOG_FATAL);
-
+ google::GLOG_ERROR);
google::InitGoogleLogging(argv0);
- gflags::SetCommandLineOption("logtostderr", "1");
- gflags::SetCommandLineOption("v", "0");
- gflags::SetCommandLineOption("stderrthreshold", severity_fatal);
- gflags::SetCommandLineOption("minloglevel", severity_fatal);
+ SetCommandLineOption("logtostderr", "1");
+ SetCommandLineOption("v", "0");
+ SetCommandLineOption("stderrthreshold", severity_fatal);
+ SetCommandLineOption("minloglevel", severity_fatal);
}
void libmv_startDebugLogging(void) {
- gflags::SetCommandLineOption("logtostderr", "1");
- gflags::SetCommandLineOption("v", "2");
- gflags::SetCommandLineOption("stderrthreshold", "1");
- gflags::SetCommandLineOption("minloglevel", "0");
+ using LIBMV_GFLAGS_NAMESPACE::SetCommandLineOption;
+ SetCommandLineOption("logtostderr", "1");
+ SetCommandLineOption("v", "2");
+ SetCommandLineOption("stderrthreshold", "1");
+ SetCommandLineOption("minloglevel", "0");
}
void libmv_setLoggingVerbosity(int verbosity) {
+ using LIBMV_GFLAGS_NAMESPACE::SetCommandLineOption;
char val[10];
snprintf(val, sizeof(val), "%d", verbosity);
- gflags::SetCommandLineOption("v", val);
+ SetCommandLineOption("v", val);
}
diff --git a/intern/libmv/intern/stub.cc b/intern/libmv/intern/stub.cc
index 47e1915e072..8603cc03153 100644
--- a/intern/libmv/intern/stub.cc
+++ b/intern/libmv/intern/stub.cc
@@ -375,7 +375,9 @@ int libmv_autoTrackGetMarker(libmv_AutoTrack* /*libmv_autotrack*/,
libmv_FrameAccessor* libmv_FrameAccessorNew(
libmv_FrameAccessorUserData* /*user_data**/,
libmv_GetImageCallback /*get_image_callback*/,
- libmv_ReleaseImageCallback /*release_image_callback*/)
+ libmv_ReleaseImageCallback /*release_image_callback*/,
+ libmv_GetMaskForTrackCallback /*get_mask_for_track_callback*/,
+ libmv_ReleaseMaskCallback /*release_mask_callback*/)
{
return NULL;
}