39 #define DNA_DEPRECATED_ALLOW
158 .offset_in_ID = offsetof(
MovieClip, cache),
159 .cache_v = movie_clip->
cache,
161 function_callback(
id, &key, (
void **)&movie_clip->
cache, 0,
user_data);
188 for (plane_track = plane_tracks_base->
first; plane_track; plane_track = plane_track->
next) {
237 object =
object->next;
263 for (
int i = 0; i < plane_track->point_tracksnr; i++) {
348 .name_plural =
"movieclips",
363 .blend_read_expand =
NULL,
365 .blend_read_undo_preserve =
NULL,
367 .lib_override_apply_post =
NULL,
376 BLI_strncpy(num, full_name + head_len, numlen + 1);
409 switch (render_size) {
440 unsigned short numlen;
464 const MovieClip *clip,
int proxy_render_size,
bool undistorted,
int framenr,
char *name)
489 strcat(name,
".jpg");
495 float *combined_pass;
496 int num_combined_channels;
499 static void *movieclip_convert_multilayer_add_view(
void *
UNUSED(ctx_v),
500 const char *
UNUSED(view_name))
505 static void *movieclip_convert_multilayer_add_layer(
void *ctx_v,
const char *
UNUSED(layer_name))
512 static void movieclip_convert_multilayer_add_pass(
void *
UNUSED(layer),
514 const char *pass_name,
518 const char *
UNUSED(view_name))
524 if (ctx->combined_pass !=
NULL) {
529 ctx->combined_pass = rect;
530 ctx->num_combined_channels = num_channels;
553 ctx.combined_pass =
NULL;
554 ctx.num_combined_channels = 0;
557 movieclip_convert_multilayer_add_view,
558 movieclip_convert_multilayer_add_layer,
559 movieclip_convert_multilayer_add_pass);
560 if (ctx.combined_pass !=
NULL) {
563 ibuf->
channels = ctx.num_combined_channels;
580 bool use_proxy =
false;
666 unsigned short numlen;
754 unsigned short numlen;
767 return framenr - index;
804 priority_data =
MEM_callocN(
sizeof(*priority_data),
"movie cache clip priority data");
807 return priority_data;
899 unsigned short numlen;
1090 distortion, &clip->
tracking, ibuf, ibuf->
x, ibuf->
y, 0.0f, 1);
1113 int postprocess_flag)
1115 bool result = (postprocess_flag != 0);
1163 int postprocess_flag)
1168 int render_flag = 0;
1220 if (postprocess_flag) {
1226 if (disable_red || disable_green || disable_blue || grayscale) {
1231 return postproc_ibuf;
1281 bool need_postprocess =
false;
1292 need_postprocess =
true;
1301 bool use_sequence =
false;
1324 if (need_postprocess) {
1325 ImBuf *tmpibuf = ibuf;
1343 clip, &user_fallback, flag, postprocess_flag, cache_flag);
1361 int postprocess_flag)
1372 float tloc[2], tscale, tangle;
1374 int render_flag = 0;
1412 clip, clip_framenr, stableibuf->
x, stableibuf->
y, tloc, &tscale, &tangle);
1431 float tloc[2], tscale, tangle;
1472 int postprocess_flag)
1520 if (stableibuf != ibuf) {
1560 if (ibuf && ibuf->
x && ibuf->
y) {
1603 return (
float)frs_sec / frs_sec_base;
1665 if (
tex->gputexture[i] !=
NULL) {
1740 if (track ==
NULL) {
1748 scopes->
track = track;
1778 ibuf, track, &undist_marker,
true,
true);
1792 float pat_min[2], pat_max[2];
1807 MovieClip *clip,
ImBuf *ibuf,
int cfra,
int proxy_render_size,
bool undistorted,
bool threaded)
1810 int quality, rectx, recty;
1816 rectx = ibuf->
x *
size / 100.0f;
1817 recty = ibuf->
y *
size / 100.0f;
1832 if (scaleibuf->
planes == 32) {
1877 ImBuf *tmpibuf = ibuf;
1884 for (i = 0; i < build_count; i++) {
1890 if (tmpibuf != ibuf) {
1912 ImBuf *tmpibuf = ibuf;
1919 for (i = 0; i < build_count; i++) {
1923 if (tmpibuf != ibuf) {
1974 bool has_frame =
false;
1999 tracking_dst->
objectnr = tracking_src.objectnr;
2000 const int active_track_index =
BLI_findindex(&tracking_src.tracks, tracking_src.act_track);
2001 const int active_plane_track_index =
BLI_findindex(&tracking_src.plane_tracks,
2002 tracking_src.act_plane_track);
2005 active_plane_track_index);
2009 tracking_object_src = tracking_src.objects.first;
2011 for (tracking_object_dst = tracking_dst->
objects.
first; tracking_object_dst !=
NULL;
2012 tracking_object_dst = tracking_object_dst->
next,
2013 tracking_object_src = tracking_object_src->
next) {
2014 ListBase *tracksbase_dst, *tracksbase_src;
2019 track_src = tracksbase_src->
first;
2020 for (track_dst = tracksbase_dst->
first; track_dst !=
NULL;
2021 track_dst = track_dst->
next, track_src = track_src->
next) {
2093 return &
tex->gputexture[textarget];
2110 fprintf(stderr,
"GPUTexture: Blender Texture Not Loaded!\n");
2116 const bool high_bitdepth =
false;
2117 const bool store_premultiplied = ibuf->
rect_float ? false :
true;
2119 clip->
id.
name + 2, ibuf, high_bitdepth, store_premultiplied,
false);
2134 const int MOVIECLIP_NUM_GPUTEXTURES = 1;
2141 if (
tex->gputexture[i]) {
typedef float(TangentPoint)[2]
void BKE_animdata_blend_read_data(struct BlendDataReader *reader, struct AnimData *adt)
void BKE_animdata_blend_write(struct BlendWriter *writer, struct AnimData *adt)
void(* IDTypeForeachCacheFunctionCallback)(struct ID *id, const struct IDCacheKey *cache_key, void **cache_p, uint flags, void *user_data)
struct anim * openanim(const char *name, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
@ LIB_ID_CREATE_NO_USER_REFCOUNT
void id_us_plus(struct ID *id)
void BKE_id_blend_write(struct BlendWriter *writer, struct ID *id)
void * BKE_id_new(struct Main *bmain, const short type, const char *name)
#define BKE_LIB_FOREACHID_PROCESS(_data, _id_super, _cb_flag)
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
const char * BKE_main_blendfile_path_from_global(void)
#define MOVIECLIP_CACHE_SKIP
#define MOVIECLIP_PREVIEW_GRAYSCALE
#define MOVIECLIP_DISABLE_BLUE
#define MOVIECLIP_DISABLE_RED
#define MOVIECLIP_DISABLE_GREEN
bool nodeUpdateID(struct bNodeTree *ntree, struct ID *id)
struct ImBuf * BKE_tracking_undistort_frame(struct MovieTracking *tracking, struct ImBuf *ibuf, int calibration_width, int calibration_height, float overscan)
void BKE_tracking_settings_init(struct MovieTracking *tracking)
void BKE_tracking_disable_channels(struct ImBuf *ibuf, bool disable_red, bool disable_green, bool disable_blue, bool grayscale)
struct ImBuf * BKE_tracking_stabilize_frame(struct MovieClip *clip, int framenr, struct ImBuf *ibuf, float translation[2], float *scale, float *angle)
void BKE_tracking_copy(struct MovieTracking *tracking_dst, const struct MovieTracking *tracking_src, const int flag)
void BKE_tracking_free(struct MovieTracking *tracking)
struct MovieTrackingTrack * BKE_tracking_track_get_active(struct MovieTracking *tracking)
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking)
struct ImBuf * BKE_tracking_get_search_imbuf(struct ImBuf *ibuf, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker, bool anchored, bool disable_channels)
void BKE_tracking_stabilization_data_get(struct MovieClip *clip, int framenr, int width, int height, float translation[2], float *scale, float *angle)
struct ListBase * BKE_tracking_object_get_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *object)
void BKE_tracking_marker_pattern_minmax(const struct MovieTrackingMarker *marker, float min[2], float max[2])
struct MovieTrackingMarker * BKE_tracking_marker_get(struct MovieTrackingTrack *track, int framenr)
struct ImBuf * BKE_tracking_distortion_exec(struct MovieDistortion *distortion, struct MovieTracking *tracking, struct ImBuf *ibuf, int width, int height, float overscan, bool undistort)
void BKE_tracking_undistort_v2(struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
int BLI_open(const char *filename, int oflag, int pmode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int BLI_exists(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void * BLI_pophead(ListBase *listbase) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE void copy_v4_v4(float r[4], const float a[4])
MINLINE bool equals_v4v4(const float a[4], const float b[4]) ATTR_WARN_UNUSED_RESULT
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE bool equals_v2v2(const float v1[2], const float v2[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void zero_v2(float r[2])
MINLINE bool equals_v3v3(const float a[3], const float b[3]) ATTR_WARN_UNUSED_RESULT
const char * BLI_path_basename(const char *path) ATTR_NONNULL() ATTR_WARN_UNUSED_RESULT
bool BLI_path_frame(char *path, int frame, int digits) ATTR_NONNULL()
bool BLI_make_existing_file(const char *name)
int BLI_path_sequence_decode(const char *string, char *head, char *tail, unsigned short *r_num_len)
void BLI_path_sequence_encode(char *string, const char *head, const char *tail, unsigned short numlen, int pic)
void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen)
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
void BLI_thread_unlock(int type)
void BLI_thread_lock(int type)
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_read_data_address(reader, ptr_p)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_list(BlendDataReader *reader, struct ListBase *list)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLO_write_struct_array(writer, struct_name, array_size, data_ptr)
void BLO_read_pointer_array(BlendDataReader *reader, void **ptr_p)
bool BLO_write_is_undo(BlendWriter *writer)
void BLO_write_pointer_array(BlendWriter *writer, uint num, const void *data_ptr)
#define BLT_I18NCONTEXT_ID_MOVIECLIP
struct Depsgraph Depsgraph
bool DEG_is_active(const struct Depsgraph *depsgraph)
void DEG_debug_print_eval(struct Depsgraph *depsgraph, const char *function_name, const char *object_name, const void *object_address)
struct ID * DEG_get_original_id(struct ID *id)
#define ID_BLEND_PATH_FROM_GLOBAL(_id)
#define ID_BLEND_PATH(_bmain, _id)
#define DNA_struct_default_get(struct_name)
@ MCLIP_PROXY_RENDER_USE_FALLBACK_RENDER
@ MCLIP_PROXY_RENDER_UNDISTORT
@ MCLIP_USE_PROXY_CUSTOM_DIR
struct MovieClip MovieClip
@ MCLIP_PROXY_RENDER_SIZE_75
@ MCLIP_PROXY_RENDER_SIZE_100
@ MCLIP_PROXY_RENDER_SIZE_50
@ MCLIP_PROXY_RENDER_SIZE_FULL
@ MCLIP_PROXY_RENDER_SIZE_25
Object is a sort of wrapper for general info.
#define RE_PASSNAME_COMBINED
#define IMG_SIZE_FALLBACK
@ TRACKING_2D_STABILIZATION
_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
struct GPUTexture GPUTexture
void GPU_texture_mipmap_mode(GPUTexture *tex, bool use_mipmap, bool use_filter)
void GPU_texture_free(GPUTexture *tex)
GPUTexture * GPU_texture_create_error(int dimension, bool array)
bool IMB_scaleImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
bool IMB_anim_get_fps(struct anim *anim, short *frs_sec, float *frs_sec_base, bool no_av_base)
void IMB_free_anim(struct anim *anim)
struct ImBuf * IMB_dupImBuf(const struct ImBuf *ibuf1)
void IMB_freeImBuf(struct ImBuf *ibuf)
void IMB_anim_set_index_dir(struct anim *anim, const char *dir)
void IMB_refImBuf(struct ImBuf *ibuf)
struct ImBuf * IMB_testiffname(const char *filepath, int flags)
struct ImBuf * IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
struct GPUTexture * IMB_create_gpu_texture(const char *name, struct ImBuf *ibuf, bool use_high_bitdepth, bool use_premult, bool limit_gl_texture_size)
void IMB_scaleImBuf_threaded(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
struct ImBuf * IMB_anim_absolute(struct anim *anim, int position, IMB_Timecode_Type tc, IMB_Proxy_Size preview_size)
bool IMB_saveiff(struct ImBuf *ibuf, const char *filepath, int flags)
int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc)
Contains defines and structs used throughout the imbuf module.
bool IMB_moviecache_has_frame(struct MovieCache *cache, void *userkey)
struct MovieCache * IMB_moviecache_create(const char *name, int keysize, GHashHashFP hashfp, GHashCmpFP cmpfp)
void IMB_moviecache_set_getdata_callback(struct MovieCache *cache, MovieCacheGetKeyDataFP getdatafp)
void IMB_moviecache_cleanup(struct MovieCache *cache, bool(cleanup_check_cb)(struct ImBuf *ibuf, void *userkey, void *userdata), void *userdata)
struct ImBuf * IMB_moviecache_get(struct MovieCache *cache, void *userkey)
void IMB_moviecache_put(struct MovieCache *cache, void *userkey, struct ImBuf *ibuf)
void IMB_moviecache_free(struct MovieCache *cache)
void IMB_moviecache_get_cache_segments(struct MovieCache *cache, int proxy, int render_flags, int *r_totseg, int **r_points)
bool IMB_moviecache_put_if_possible(struct MovieCache *cache, void *userkey, struct ImBuf *ibuf)
void IMB_moviecache_set_priority_callback(struct MovieCache *cache, MovieCacheGetPriorityDataFP getprioritydatafp, MovieCacheGetItemPriorityFP getitempriorityfp, MovieCachePriorityDeleterFP prioritydeleterfp)
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
const Depsgraph * depsgraph
const ProjectiveReconstruction & reconstruction
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
static void movieclip_calc_length(MovieClip *clip)
bool BKE_movieclip_has_cached_frame(MovieClip *clip, MovieClipUser *user)
static bool need_undistortion_postprocess(const MovieClipUser *user, int clip_flag)
static void direct_link_movieTracks(BlendDataReader *reader, ListBase *tracksbase)
static void direct_link_movieReconstruction(BlendDataReader *reader, MovieTrackingReconstruction *reconstruction)
static void movieclip_blend_read_lib(BlendLibReader *reader, ID *id)
static void * moviecache_getprioritydata(void *key_v)
MovieClip * BKE_movieclip_file_add_exists(Main *bmain, const char *filepath)
void BKE_movieclip_reload(Main *bmain, MovieClip *clip)
static bool moviecache_hashcmp(const void *av, const void *bv)
static void movieclip_eval_update_reload(struct Depsgraph *depsgraph, Main *bmain, MovieClip *clip)
static void movie_clip_foreach_cache(ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
float BKE_movieclip_get_fps(MovieClip *clip)
static bool put_imbuf_cache(MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, int flag, bool destructive)
static void direct_link_moviePlaneTracks(BlendDataReader *reader, ListBase *plane_tracks_base)
static GPUTexture ** movieclip_get_gputexture_ptr(MovieClip *clip, MovieClipUser *cuser, eGPUTextureTarget textarget)
static MovieClip * movieclip_alloc(Main *bmain, const char *name)
struct MovieClipCachePriorityData MovieClipCachePriorityData
static ImBuf * movieclip_get_postprocessed_ibuf(MovieClip *clip, const MovieClipUser *user, int flag, int postprocess_flag, int cache_flag)
static void free_buffers(MovieClip *clip)
static bool check_undistortion_cache_flags(const MovieClip *clip)
void BKE_movieclip_clear_proxy_cache(MovieClip *clip)
void BKE_movieclip_build_proxy_frame_for_ibuf(MovieClip *clip, ImBuf *ibuf, struct MovieDistortion *distortion, int cfra, int *build_sizes, int build_count, bool undistorted)
ImBuf * BKE_movieclip_get_ibuf_flag(MovieClip *clip, MovieClipUser *user, int flag, int cache_flag)
ImBuf * BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag)
void BKE_movieclip_clear_cache(MovieClip *clip)
static void moviecache_prioritydeleter(void *priority_data_v)
void BKE_movieclip_filename_for_frame(MovieClip *clip, MovieClipUser *user, char *name)
static void movieclip_load_get_size(MovieClip *clip)
static void write_movieReconstruction(BlendWriter *writer, MovieTrackingReconstruction *reconstruction)
static ImBuf * postprocess_frame(MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, int flag, int postprocess_flag)
static int rendersize_to_proxy(const MovieClipUser *user, int flag)
ImBuf * BKE_movieclip_get_ibuf(MovieClip *clip, MovieClipUser *user)
static bool need_postprocessed_frame(const MovieClipUser *user, int clip_flag, int postprocess_flag)
static ImBuf * movieclip_load_sequence_file(MovieClip *clip, const MovieClipUser *user, int framenr, int flag)
void BKE_movieclip_get_cache_segments(MovieClip *clip, MovieClipUser *user, int *r_totseg, int **r_points)
static ImBuf * movieclip_load_movie_file(MovieClip *clip, const MovieClipUser *user, int framenr, int flag)
static void put_postprocessed_frame_to_cache(MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, int flag, int postprocess_flag)
static void moviecache_keydata(void *userkey, int *framenr, int *proxy, int *render_flags)
static ImBuf * get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, ImBuf *reference_ibuf, int framenr, int postprocess_flag)
static unsigned int moviecache_hashhash(const void *keyv)
static void get_proxy_fname(const MovieClip *clip, int proxy_render_size, bool undistorted, int framenr, char *name)
void BKE_movieclip_eval_update(struct Depsgraph *depsgraph, Main *bmain, MovieClip *clip)
void BKE_movieclip_get_size(MovieClip *clip, MovieClipUser *user, int *width, int *height)
static void lib_link_movieTracks(BlendLibReader *reader, MovieClip *clip, ListBase *tracksbase)
MovieClip * BKE_movieclip_file_add(Main *bmain, const char *name)
void BKE_movieclip_eval_selection_update(struct Depsgraph *depsgraph, MovieClip *clip)
static void detect_clip_source(Main *bmain, MovieClip *clip)
static ImBuf * get_imbuf_cache(MovieClip *clip, const MovieClipUser *user, int flag)
static int get_timecode(MovieClip *clip, int flag)
static void movie_clip_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
float BKE_movieclip_remap_clip_to_scene_frame(const MovieClip *clip, float framenr)
static void write_moviePlaneTracks(BlendWriter *writer, ListBase *plane_tracks_base)
ImBuf * BKE_movieclip_anim_ibuf_for_frame_no_lock(MovieClip *clip, MovieClipUser *user)
static void movieclip_build_proxy_ibuf(MovieClip *clip, ImBuf *ibuf, int cfra, int proxy_render_size, bool undistorted, bool threaded)
bool BKE_movieclip_put_frame_if_possible(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf)
struct MovieClipCache MovieClipCache
static void movieclip_open_anim_file(MovieClip *clip)
int BKE_movieclip_get_duration(MovieClip *clip)
void BKE_movieclip_update_scopes(MovieClip *clip, MovieClipUser *user, MovieClipScopes *scopes)
GPUTexture * BKE_movieclip_get_gpu_texture(MovieClip *clip, MovieClipUser *cuser)
static ImBuf * put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int framenr, int postprocess_flag)
void BKE_movieclip_build_proxy_frame(MovieClip *clip, int clip_flag, struct MovieDistortion *distortion, int cfra, int *build_sizes, int build_count, bool undistorted)
struct MovieClipImBufCacheKey MovieClipImBufCacheKey
static bool has_imbuf_cache(MovieClip *clip, MovieClipUser *user, int flag)
static ImBuf * get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *distortion, ImBuf *ibuf)
MovieClip * BKE_movieclip_file_add_exists_ex(Main *bmain, const char *filepath, bool *r_exists)
bool BKE_movieclip_has_frame(MovieClip *clip, MovieClipUser *user)
static void movieclip_blend_read_data(BlendDataReader *reader, ID *id)
static int sequence_guess_offset(const char *full_name, int head_len, unsigned short numlen)
float BKE_movieclip_remap_scene_to_clip_frame(const MovieClip *clip, float framenr)
void BKE_movieclip_get_size_fl(MovieClip *clip, MovieClipUser *user, float size[2])
static int rendersize_to_number(int render_size)
static int moviecache_getitempriority(void *last_userkey_v, void *priority_data_v)
void BKE_movieclip_convert_multilayer_ibuf(struct ImBuf *ibuf)
static void movieclip_blend_write(BlendWriter *writer, ID *id, const void *id_address)
static void movie_clip_init_data(ID *id)
static void get_sequence_fname(const MovieClip *clip, const int framenr, char *name)
static void movieclip_selection_sync(MovieClip *clip_dst, const MovieClip *clip_src)
static bool moviecache_check_free_proxy(ImBuf *UNUSED(ibuf), void *userkey, void *UNUSED(userdata))
void BKE_movieclip_user_set_frame(MovieClipUser *iuser, int framenr)
void BKE_movieclip_free_gputexture(struct MovieClip *clip)
static void movie_clip_foreach_id(ID *id, LibraryForeachIDData *data)
void BKE_movieclip_get_aspect(MovieClip *clip, float *aspx, float *aspy)
static void movieclip_eval_update_generic(struct Depsgraph *depsgraph, MovieClip *clip)
static void real_ibuf_size(const MovieClip *clip, const MovieClipUser *user, const ImBuf *ibuf, int *width, int *height)
static void write_movieTracks(BlendWriter *writer, ListBase *tracks)
static int user_frame_to_cache_frame(MovieClip *clip, int framenr)
ImBuf * BKE_movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user, int postprocess_flag)
static ImBuf * get_postprocessed_cached_frame(const MovieClip *clip, const MovieClipUser *user, int flag, int postprocess_flag)
static void lib_link_moviePlaneTracks(BlendLibReader *reader, MovieClip *clip, ListBase *tracksbase)
static void movie_clip_free_data(ID *id)
void IMB_exr_close(void *handle)
void IMB_exr_multilayer_convert(void *handle, void *base, void *(*addview)(void *base, const char *str), void *(*addlayer)(void *base, const char *str), void(*addpass)(void *base, void *lay, const char *str, float *rect, int totchan, const char *chan_id, const char *view))
unsigned int id_session_uuid
ImbFormatOptions foptions
char name[IMB_FILENAME_SIZE]
struct MovieClipCache::@97 postprocessed
struct MovieClipCache::@98 stabilized
struct MovieCache * moviecache
struct ImBuf * track_preview
struct ImBuf * track_search
struct MovieTrackingMarker undist_marker
struct MovieTrackingMarker * marker
struct MovieTrackingTrack * track
struct ListBase gputextures
struct MovieClipCache * cache
struct MovieClipProxy proxy
struct MovieClip_Runtime runtime
struct MovieTracking tracking
ColorManagedColorspaceSettings colorspace_settings
ListBase coverage_segments
MovieTrackingReconstruction reconstruction
struct MovieTrackingObject * next
struct MovieTrackingPlaneTrack * next
MovieTrackingTrack ** point_tracks
MovieTrackingPlaneMarker * markers
MovieTrackingMarker * markers
struct MovieTrackingTrack * next
MovieTrackingReconstruction reconstruction
MovieTrackingPlaneTrack * act_plane_track
MovieTrackingDopesheet dopesheet
MovieTrackingStats * stats
MovieTrackingTrack * act_track
MovieTrackingStabilization stabilization
MovieTrackingCamera camera
struct bNodeTree * nodetree
struct MultilayerConvertContext MultilayerConvertContext
__forceinline const avxi abs(const avxi &a)