33 struct LibmvFrameAccessor :
public FrameAccessor {
40 get_image_callback_(get_image_callback),
41 release_image_callback_(release_image_callback),
42 get_mask_for_track_callback_(get_mask_for_track_callback),
43 release_mask_callback_(release_mask_callback) {}
45 virtual ~LibmvFrameAccessor() {}
49 #define CHECK_INPUT_MODE(mode) \
50 case mode: return LIBMV_IMAGE_MODE_##mode;
53 #undef CHECK_INPUT_MODE
55 assert(!
"unknown input mode passed from Libmv.");
60 void get_libmv_region(
const Region& region,
libmv_Region* libmv_region) {
61 libmv_region->
min[0] = region.min(0);
62 libmv_region->
min[1] = region.min(1);
63 libmv_region->
max[0] = region.max(0);
64 libmv_region->
max[1] = region.max(1);
67 Key GetImage(
int clip,
78 get_libmv_region(*region, &libmv_region);
80 Key cache_key = get_image_callback_(user_data_,
83 get_libmv_input_mode(input_mode),
85 region !=
NULL ? &libmv_region :
NULL,
94 destination->CopyFrom(temp_image);
99 void ReleaseImage(
Key cache_key) { release_image_callback_(cache_key); }
101 Key GetMaskForTrack(
int clip,
104 const Region* region,
110 get_libmv_region(*region, &libmv_region);
113 get_mask_for_track_callback_(user_data_,
117 region !=
NULL ? &libmv_region :
NULL,
122 if (cache_key ==
NULL) {
129 destination->CopyFrom(temp_image);
134 void ReleaseMask(
Key key) { release_mask_callback_(key); }
136 bool GetClipDimensions(
int ,
int* ,
int* ) {
140 int NumClips() {
return 1; }
142 int NumFrames(
int ) {
return 0; }
162 release_image_callback,
163 get_mask_for_track_callback,
164 release_mask_callback);
188 output_image->
buffer =
new float[num_pixels];
189 memcpy(output_image->
buffer,
output.Data(), num_pixels *
sizeof(
float));
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate RGBA
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
void libmv_FrameAccessorDestroy(libmv_FrameAccessor *frame_accessor)
#define CHECK_INPUT_MODE(mode)
void libmv_frameAccessorgetTransformRun(const libmv_FrameTransform *transform, const libmv_FloatImage *input_image, libmv_FloatImage *output_image)
libmv_FrameAccessor * libmv_FrameAccessorNew(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)
int64_t libmv_frameAccessorgetTransformKey(const libmv_FrameTransform *transform)
struct libmv_FrameTransform libmv_FrameTransform
libmv_CacheKey(* libmv_GetImageCallback)(libmv_FrameAccessorUserData *user_data, int clip, int frame, libmv_InputMode input_mode, int downscale, const libmv_Region *region, const libmv_FrameTransform *transform, float **destination, int *width, int *height, int *channels)
struct libmv_FrameAccessorUserData libmv_FrameAccessorUserData
libmv_CacheKey(* libmv_GetMaskForTrackCallback)(libmv_FrameAccessorUserData *user_data, int clip, int frame, int track, const libmv_Region *region, float **destination, int *width, int *height)
void(* libmv_ReleaseImageCallback)(libmv_CacheKey cache_key)
void(* libmv_ReleaseMaskCallback)(libmv_CacheKey cache_key)
struct libmv_FrameAccessor libmv_FrameAccessor
#define LIBMV_OBJECT_NEW(type,...)
#define LIBMV_OBJECT_DELETE(what, type)