23 #define DNA_DEPRECATED_ALLOW
141 .offset_in_ID = offsetof(
MovieClip, cache),
143 function_callback(
id, &key, (
void **)&movie_clip->
cache, 0,
user_data);
175 for (plane_track = plane_tracks_base->
first; plane_track; plane_track = plane_track->
next) {
224 object =
object->next;
249 for (
int i = 0; i < plane_track->point_tracksnr; i++) {
334 .name_plural =
"movieclips",
337 .asset_type_info =
NULL,
351 .blend_read_expand =
NULL,
353 .blend_read_undo_preserve =
NULL,
355 .lib_override_apply_post =
NULL,
364 BLI_strncpy(num, full_name + head_len, numlen + 1);
397 switch (render_size) {
428 unsigned short numlen;
452 const MovieClip *clip,
int proxy_render_size,
bool undistorted,
int framenr,
char *name)
477 strcat(name,
".jpg");
483 float *combined_pass;
484 int num_combined_channels;
487 static void *movieclip_convert_multilayer_add_view(
void *
UNUSED(ctx_v),
488 const char *
UNUSED(view_name))
493 static void *movieclip_convert_multilayer_add_layer(
void *ctx_v,
const char *
UNUSED(layer_name))
500 static void movieclip_convert_multilayer_add_pass(
void *
UNUSED(layer),
502 const char *pass_name,
506 const char *
UNUSED(view_name))
512 if (ctx->combined_pass !=
NULL) {
517 ctx->combined_pass = rect;
518 ctx->num_combined_channels = num_channels;
537 ctx.combined_pass =
NULL;
538 ctx.num_combined_channels = 0;
541 movieclip_convert_multilayer_add_view,
542 movieclip_convert_multilayer_add_layer,
543 movieclip_convert_multilayer_add_pass);
544 if (ctx.combined_pass !=
NULL) {
547 ibuf->
channels = ctx.num_combined_channels;
564 bool use_proxy =
false;
650 unsigned short numlen;
738 unsigned short numlen;
751 return framenr - index;
779 return ((
a->framenr !=
b->framenr) || (
a->proxy !=
b->proxy) ||
780 (
a->render_flag !=
b->render_flag));
788 priority_data =
MEM_callocN(
sizeof(*priority_data),
"movie cache clip priority data");
791 return priority_data;
883 unsigned short numlen;
1070 distortion, &clip->
tracking, ibuf, ibuf->
x, ibuf->
y, 0.0f, 1);
1093 int postprocess_flag)
1095 bool result = (postprocess_flag != 0);
1143 int postprocess_flag)
1148 int render_flag = 0;
1200 if (postprocess_flag) {
1206 if (disable_red || disable_green || disable_blue || grayscale) {
1211 return postproc_ibuf;
1261 bool need_postprocess =
false;
1272 need_postprocess =
true;
1281 bool use_sequence =
false;
1304 if (need_postprocess) {
1305 ImBuf *tmpibuf = ibuf;
1323 clip, &user_fallback, flag, postprocess_flag, cache_flag);
1341 int postprocess_flag)
1352 float tloc[2], tscale, tangle;
1354 int render_flag = 0;
1392 clip, clip_framenr, stableibuf->
x, stableibuf->
y, tloc, &tscale, &tangle);
1411 float tloc[2], tscale, tangle;
1452 int postprocess_flag)
1500 if (stableibuf != ibuf) {
1540 if (ibuf && ibuf->
x && ibuf->
y) {
1583 return (
float)frs_sec / frs_sec_base;
1646 if (
tex->gputexture[i] !=
NULL) {
1711 if (track ==
NULL) {
1719 scopes->
track = track;
1749 ibuf, track, &undist_marker,
true,
true);
1763 float pat_min[2], pat_max[2];
1778 MovieClip *clip,
ImBuf *ibuf,
int cfra,
int proxy_render_size,
bool undistorted,
bool threaded)
1781 int quality, rectx, recty;
1787 rectx = ibuf->
x *
size / 100.0f;
1788 recty = ibuf->
y *
size / 100.0f;
1803 if (scaleibuf->
planes == 32) {
1845 ImBuf *tmpibuf = ibuf;
1852 for (i = 0; i < build_count; i++) {
1858 if (tmpibuf != ibuf) {
1877 ImBuf *tmpibuf = ibuf;
1884 for (i = 0; i < build_count; i++) {
1888 if (tmpibuf != ibuf) {
1944 bool has_frame =
false;
1969 tracking_dst->
objectnr = tracking_src.objectnr;
1970 const int active_track_index =
BLI_findindex(&tracking_src.tracks, tracking_src.act_track);
1971 const int active_plane_track_index =
BLI_findindex(&tracking_src.plane_tracks,
1972 tracking_src.act_plane_track);
1975 active_plane_track_index);
1979 tracking_object_src = tracking_src.objects.first;
1981 for (tracking_object_dst = tracking_dst->
objects.
first; tracking_object_dst !=
NULL;
1982 tracking_object_dst = tracking_object_dst->
next,
1983 tracking_object_src = tracking_object_src->
next) {
1984 ListBase *tracksbase_dst, *tracksbase_src;
1989 track_src = tracksbase_src->
first;
1990 for (track_dst = tracksbase_dst->
first; track_dst !=
NULL;
1991 track_dst = track_dst->
next, track_src = track_src->
next) {
2063 return &
tex->gputexture[textarget];
2080 fprintf(stderr,
"GPUTexture: Blender Texture Not Loaded!\n");
2086 const bool high_bitdepth =
false;
2087 const bool store_premultiplied = ibuf->
rect_float ? false :
true;
2103 const int MOVIECLIP_NUM_GPUTEXTURES = 1;
2110 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)
bool BKE_bpath_foreach_path_fixed_process(struct BPathForeachPathData *bpath_data, char *path)
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
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, short type, const char *name)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(_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
void BKE_ntree_update_tag_id_changed(struct Main *bmain, 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_free(struct MovieTracking *tracking)
struct MovieTrackingTrack * BKE_tracking_track_get_active(struct MovieTracking *tracking)
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking)
void BKE_tracking_copy(struct MovieTracking *tracking_dst, const struct MovieTracking *tracking_src, int flag)
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_exists(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int BLI_open(const char *filepath, int oflag, int pmode) 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
int BLI_path_sequence_decode(const char *string, char *head, char *tail, unsigned short *r_digits_len)
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)
void BLI_split_dirfile(const char *string, char *dir, char *file, size_t dirlen, size_t filelen)
void BLI_path_sequence_encode(char *string, const char *head, const char *tail, unsigned short numlen, int pic)
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
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)
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_PROXY_RENDER_SIZE_75
@ MCLIP_PROXY_RENDER_SIZE_100
@ MCLIP_PROXY_RENDER_SIZE_50
@ MCLIP_PROXY_RENDER_SIZE_FULL
@ MCLIP_PROXY_RENDER_SIZE_25
struct MovieClip MovieClip
@ MCLIP_USE_PROXY_CUSTOM_DIR
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 height
_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
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)
struct GPUTexture * IMB_create_gpu_texture(const char *name, struct ImBuf *ibuf, bool use_high_bitdepth, bool use_premult)
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_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])
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)
struct ImBuf * IMB_moviecache_get(struct MovieCache *cache, void *userkey, bool *r_is_cached_empty)
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)
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)
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))
Read Guarded memory(de)allocation.
static void init_data(ModifierData *md)
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a or normal between camera
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
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
const ProjectiveReconstruction & reconstruction
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
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 movie_clip_foreach_path(ID *id, BPathForeachPathData *bpath_data)
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)
bool BKE_movieclip_proxy_enabled(MovieClip *clip)
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)
static const pxr::TfToken b("b", pxr::TfToken::Immortal)
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 MultilayerConvertContext MultilayerConvertContext