Blender V4.3
movieclip.cc File Reference
#include <cstdio>
#include <cstring>
#include <fcntl.h>
#include <optional>
#include <unistd.h>
#include <ctime>
#include "MEM_guardedalloc.h"
#include "DNA_defaults.h"
#include "DNA_gpencil_legacy_types.h"
#include "DNA_movieclip_types.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_view3d_types.h"
#include "BLI_utildefines.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_math_vector.h"
#include "BLI_threads.h"
#include "BLT_translation.hh"
#include "BKE_bpath.hh"
#include "BKE_colortools.hh"
#include "BKE_idtype.hh"
#include "BKE_image.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_main.hh"
#include "BKE_movieclip.h"
#include "BKE_node_tree_update.hh"
#include "BKE_tracking.h"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"
#include "IMB_moviecache.hh"
#include "IMB_openexr.hh"
#include "DEG_depsgraph.hh"
#include "DEG_depsgraph_query.hh"
#include "DRW_engine.hh"
#include "GPU_texture.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Classes

struct  MovieClipCache
 
struct  MovieClipImBufCacheKey
 
struct  MovieClipCachePriorityData
 

Macros

#define DNA_DEPRECATED_ALLOW
 

Functions

static void free_buffers (MovieClip *clip)
 
static void movie_clip_init_data (ID *id)
 
static void movie_clip_copy_data (Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int flag)
 
static void movie_clip_free_data (ID *id)
 
static void movie_clip_foreach_id (ID *id, LibraryForeachIDData *data)
 
static void movie_clip_foreach_cache (ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
 
static void movie_clip_foreach_path (ID *id, BPathForeachPathData *bpath_data)
 
static void write_movieTracks (BlendWriter *writer, ListBase *tracks)
 
static void write_moviePlaneTracks (BlendWriter *writer, ListBase *plane_tracks_base)
 
static void write_movieReconstruction (BlendWriter *writer, MovieTrackingReconstruction *reconstruction)
 
static void movieclip_blend_write (BlendWriter *writer, ID *id, const void *id_address)
 
static void direct_link_movieReconstruction (BlendDataReader *reader, MovieTrackingReconstruction *reconstruction)
 
static void direct_link_movieTracks (BlendDataReader *reader, ListBase *tracksbase)
 
static void direct_link_moviePlaneTracks (BlendDataReader *reader, ListBase *plane_tracks_base)
 
static void movieclip_blend_read_data (BlendDataReader *reader, ID *id)
 
static int sequence_guess_offset (const char *full_name, int head_len, ushort numlen)
 
static int rendersize_to_proxy (const MovieClipUser *user, int flag)
 
static int rendersize_to_number (int render_size)
 
static int get_timecode (MovieClip *clip, int flag)
 
static void get_sequence_filepath (const MovieClip *clip, const int framenr, char filepath[FILE_MAX])
 
static void get_proxy_filepath (const MovieClip *clip, int proxy_render_size, bool undistorted, int framenr, char filepath[FILE_MAX])
 
void BKE_movieclip_convert_multilayer_ibuf (ImBuf *ibuf)
 
static ImBufmovieclip_load_sequence_file (MovieClip *clip, const MovieClipUser *user, int framenr, int flag)
 
static void movieclip_open_anim_file (MovieClip *clip)
 
static ImBufmovieclip_load_movie_file (MovieClip *clip, const MovieClipUser *user, int framenr, int flag)
 
static void movieclip_calc_length (MovieClip *clip)
 
static int user_frame_to_cache_frame (MovieClip *clip, int framenr)
 
static void moviecache_keydata (void *userkey, int *framenr, int *proxy, int *render_flags)
 
static uint moviecache_hashhash (const void *keyv)
 
static bool moviecache_hashcmp (const void *av, const void *bv)
 
static void * moviecache_getprioritydata (void *key_v)
 
static int moviecache_getitempriority (void *last_userkey_v, void *priority_data_v)
 
static void moviecache_prioritydeleter (void *priority_data_v)
 
static ImBufget_imbuf_cache (MovieClip *clip, const MovieClipUser *user, int flag)
 
static bool has_imbuf_cache (MovieClip *clip, const MovieClipUser *user, int flag)
 
static bool put_imbuf_cache (MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, int flag, bool destructive)
 
static bool moviecache_check_free_proxy (ImBuf *, void *userkey, void *)
 
static MovieClipmovieclip_alloc (Main *bmain, const char *name)
 
static void movieclip_load_get_size (MovieClip *clip)
 
static void detect_clip_source (Main *bmain, MovieClip *clip)
 
MovieClipBKE_movieclip_file_add (Main *bmain, const char *filepath)
 
MovieClipBKE_movieclip_file_add_exists_ex (Main *bmain, const char *filepath, bool *r_exists)
 
MovieClipBKE_movieclip_file_add_exists (Main *bmain, const char *filepath)
 
static void real_ibuf_size (const MovieClip *clip, const MovieClipUser *user, const ImBuf *ibuf, int *width, int *height)
 
static ImBufget_undistorted_ibuf (MovieClip *clip, MovieDistortion *distortion, ImBuf *ibuf)
 
static bool need_undistortion_postprocess (const MovieClipUser *user, int clip_flag)
 
static bool need_postprocessed_frame (const MovieClipUser *user, int clip_flag, int postprocess_flag)
 
static bool check_undistortion_cache_flags (const MovieClip *clip)
 
static ImBufget_postprocessed_cached_frame (const MovieClip *clip, const MovieClipUser *user, int flag, int postprocess_flag)
 
static ImBufpostprocess_frame (MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, int flag, int postprocess_flag)
 
static void put_postprocessed_frame_to_cache (MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, int flag, int postprocess_flag)
 
static ImBufmovieclip_get_postprocessed_ibuf (MovieClip *clip, const MovieClipUser *user, int flag, int postprocess_flag, int cache_flag)
 
ImBufBKE_movieclip_get_ibuf (MovieClip *clip, const MovieClipUser *user)
 
ImBufBKE_movieclip_get_ibuf_flag (MovieClip *clip, const MovieClipUser *user, const int flag, const int cache_flag)
 
ImBufBKE_movieclip_get_postprocessed_ibuf (MovieClip *clip, const MovieClipUser *user, const int postprocess_flag)
 
static ImBufget_stable_cached_frame (MovieClip *clip, const MovieClipUser *user, ImBuf *reference_ibuf, const int framenr, const int postprocess_flag)
 
static ImBufput_stabilized_frame_to_cache (MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf, const int framenr, const int postprocess_flag)
 
ImBufBKE_movieclip_get_stable_ibuf (MovieClip *clip, const MovieClipUser *user, const int postprocess_flag, float r_loc[2], float *r_scale, float *r_angle)
 
bool BKE_movieclip_has_frame (MovieClip *clip, const MovieClipUser *user)
 
void BKE_movieclip_get_size (MovieClip *clip, const MovieClipUser *user, int *r_width, int *r_height)
 
void BKE_movieclip_get_size_fl (MovieClip *clip, const MovieClipUser *user, float r_size[2])
 
int BKE_movieclip_get_duration (MovieClip *clip)
 
float BKE_movieclip_get_fps (MovieClip *clip)
 
void BKE_movieclip_get_aspect (MovieClip *clip, float *aspx, float *aspy)
 
void BKE_movieclip_get_cache_segments (MovieClip *clip, const MovieClipUser *user, int *r_totseg, int **r_points)
 
void BKE_movieclip_user_set_frame (MovieClipUser *user, int framenr)
 
void BKE_movieclip_clear_cache (MovieClip *clip)
 
void BKE_movieclip_clear_proxy_cache (MovieClip *clip)
 
void BKE_movieclip_reload (Main *bmain, MovieClip *clip)
 
void BKE_movieclip_update_scopes (MovieClip *clip, const MovieClipUser *user, MovieClipScopes *scopes)
 
static void movieclip_build_proxy_ibuf (MovieClip *clip, ImBuf *ibuf, int cfra, int proxy_render_size, bool undistorted, bool threaded)
 
void BKE_movieclip_build_proxy_frame (MovieClip *clip, int clip_flag, MovieDistortion *distortion, int cfra, const int *build_sizes, int build_count, bool undistorted)
 
void BKE_movieclip_build_proxy_frame_for_ibuf (MovieClip *clip, ImBuf *ibuf, MovieDistortion *distortion, int cfra, const int *build_sizes, int build_count, bool undistorted)
 
bool BKE_movieclip_proxy_enabled (MovieClip *clip)
 
float BKE_movieclip_remap_scene_to_clip_frame (const MovieClip *clip, const float framenr)
 
float BKE_movieclip_remap_clip_to_scene_frame (const MovieClip *clip, const float framenr)
 
void BKE_movieclip_filepath_for_frame (MovieClip *clip, const MovieClipUser *user, char *filepath)
 
ImBufBKE_movieclip_anim_ibuf_for_frame_no_lock (MovieClip *clip, const MovieClipUser *user)
 
bool BKE_movieclip_has_cached_frame (MovieClip *clip, const MovieClipUser *user)
 
bool BKE_movieclip_put_frame_if_possible (MovieClip *clip, const MovieClipUser *user, ImBuf *ibuf)
 
static void movieclip_eval_update_reload (Depsgraph *depsgraph, Main *bmain, MovieClip *clip)
 
static void movieclip_eval_update_generic (Depsgraph *depsgraph, MovieClip *clip)
 
void BKE_movieclip_eval_update (Depsgraph *depsgraph, Main *bmain, MovieClip *clip)
 
GPU textures
static GPUTexture ** movieclip_get_gputexture_ptr (MovieClip *clip, MovieClipUser *cuser, eGPUTextureTarget textarget)
 
GPUTexture * BKE_movieclip_get_gpu_texture (MovieClip *clip, MovieClipUser *cuser)
 
void BKE_movieclip_free_gputexture (MovieClip *clip)
 

Variables

IDTypeInfo IDType_ID_MC
 

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 25 of file movieclip.cc.

Function Documentation

◆ BKE_movieclip_anim_ibuf_for_frame_no_lock()

ImBuf * BKE_movieclip_anim_ibuf_for_frame_no_lock ( MovieClip * clip,
const MovieClipUser * user )

◆ BKE_movieclip_build_proxy_frame()

void BKE_movieclip_build_proxy_frame ( struct MovieClip * clip,
int clip_flag,
struct MovieDistortion * distortion,
int cfra,
const int * build_sizes,
int build_count,
bool undistorted )
Note
currently used by proxy job for movies, threading happens within single frame (meaning scaling shall be threaded).

Definition at line 1800 of file movieclip.cc.

References BKE_movieclip_get_ibuf_flag(), MovieClipUser::framenr, get_undistorted_ibuf(), IMB_freeImBuf(), MCLIP_PROXY_RENDER_SIZE_FULL, movieclip_build_proxy_ibuf(), MOVIECLIP_CACHE_SKIP, MovieClipUser::render_flag, and MovieClipUser::render_size.

Referenced by do_movie_proxy().

◆ BKE_movieclip_build_proxy_frame_for_ibuf()

void BKE_movieclip_build_proxy_frame_for_ibuf ( struct MovieClip * clip,
struct ImBuf * ibuf,
struct MovieDistortion * distortion,
int cfra,
const int * build_sizes,
int build_count,
bool undistorted )
Note
currently used by proxy job for sequences, threading happens within sequence (different threads handles different frames, no threading within frame is needed)

Definition at line 1841 of file movieclip.cc.

References get_undistorted_ibuf(), IMB_freeImBuf(), and movieclip_build_proxy_ibuf().

Referenced by proxy_task_func().

◆ BKE_movieclip_clear_cache()

void BKE_movieclip_clear_cache ( MovieClip * clip)

Definition at line 1634 of file movieclip.cc.

References free_buffers().

Referenced by ED_space_clip_set_clip().

◆ BKE_movieclip_clear_proxy_cache()

void BKE_movieclip_clear_proxy_cache ( MovieClip * clip)

Definition at line 1639 of file movieclip.cc.

References IMB_moviecache_cleanup(), and moviecache_check_free_proxy().

Referenced by proxy_endjob().

◆ BKE_movieclip_convert_multilayer_ibuf()

void BKE_movieclip_convert_multilayer_ibuf ( struct ImBuf * ibuf)

Will try to make image buffer usable when originating from the multi-layer source. Internally finds a first combined pass and uses that as a buffer. Not ideal, but is better than a complete empty buffer.

Definition at line 505 of file movieclip.cc.

References BLI_assert, ImBuf::channels, ImBufFloatBuffer::data, ImBuf::float_buffer, ImBuf::ftype, IB_TAKE_OWNERSHIP, IMB_assign_float_buffer(), IMB_exr_close(), IMB_exr_multilayer_convert(), IMB_FTYPE_OPENEXR, and ImBuf::userdata.

Referenced by movieclip_load_sequence_file(), and prefetch_task_func().

◆ BKE_movieclip_eval_update()

void BKE_movieclip_eval_update ( Depsgraph * depsgraph,
Main * bmain,
MovieClip * clip )

◆ BKE_movieclip_file_add()

MovieClip * BKE_movieclip_file_add ( struct Main * bmain,
const char * filepath )

Checks if image was already loaded, then returns same image otherwise creates new. does not load ibuf itself pass on optional frame for filepath images.

Definition at line 941 of file movieclip.cc.

References BKE_main_blendfile_path(), BLI_open(), BLI_path_abs(), BLI_path_basename(), detect_clip_source(), file, FILE_MAX, movieclip_alloc(), movieclip_calc_length(), movieclip_load_get_size(), O_BINARY, and STRNCPY.

Referenced by BKE_movieclip_file_add_exists_ex().

◆ BKE_movieclip_file_add_exists()

MovieClip * BKE_movieclip_file_add_exists ( Main * bmain,
const char * filepath )

Definition at line 1007 of file movieclip.cc.

References BKE_movieclip_file_add_exists_ex().

Referenced by open_exec().

◆ BKE_movieclip_file_add_exists_ex()

MovieClip * BKE_movieclip_file_add_exists_ex ( Main * bmain,
const char * filepath,
bool * r_exists )

◆ BKE_movieclip_filepath_for_frame()

◆ BKE_movieclip_free_gputexture()

◆ BKE_movieclip_get_aspect()

void BKE_movieclip_get_aspect ( MovieClip * clip,
float * aspx,
float * aspy )

◆ BKE_movieclip_get_cache_segments()

void BKE_movieclip_get_cache_segments ( MovieClip * clip,
const MovieClipUser * user,
int * r_totseg,
int ** r_points )

◆ BKE_movieclip_get_duration()

int BKE_movieclip_get_duration ( MovieClip * clip)

◆ BKE_movieclip_get_fps()

float BKE_movieclip_get_fps ( MovieClip * clip)

◆ BKE_movieclip_get_gpu_texture()

◆ BKE_movieclip_get_ibuf()

ImBuf * BKE_movieclip_get_ibuf ( MovieClip * clip,
const MovieClipUser * user )

◆ BKE_movieclip_get_ibuf_flag()

ImBuf * BKE_movieclip_get_ibuf_flag ( MovieClip * clip,
const MovieClipUser * user,
const int flag,
const int cache_flag )

◆ BKE_movieclip_get_postprocessed_ibuf()

ImBuf * BKE_movieclip_get_postprocessed_ibuf ( MovieClip * clip,
const MovieClipUser * user,
const int postprocess_flag )

Definition at line 1316 of file movieclip.cc.

References movieclip_get_postprocessed_ibuf().

Referenced by BKE_movieclip_get_stable_ibuf().

◆ BKE_movieclip_get_size()

void BKE_movieclip_get_size ( MovieClip * clip,
const MovieClipUser * user,
int * r_width,
int * r_height )

◆ BKE_movieclip_get_size_fl()

void BKE_movieclip_get_size_fl ( MovieClip * clip,
const MovieClipUser * user,
float r_size[2] )

Definition at line 1530 of file movieclip.cc.

References BKE_movieclip_get_size(), and float.

◆ BKE_movieclip_get_stable_ibuf()

◆ BKE_movieclip_has_cached_frame()

bool BKE_movieclip_has_cached_frame ( MovieClip * clip,
const MovieClipUser * user )

◆ BKE_movieclip_has_frame()

bool BKE_movieclip_has_frame ( MovieClip * clip,
const MovieClipUser * user )

Definition at line 1492 of file movieclip.cc.

References BKE_movieclip_get_ibuf(), and IMB_freeImBuf().

◆ BKE_movieclip_proxy_enabled()

bool BKE_movieclip_proxy_enabled ( MovieClip * clip)

Definition at line 1871 of file movieclip.cc.

References MCLIP_USE_PROXY.

Referenced by seq_render_movieclip_strip().

◆ BKE_movieclip_put_frame_if_possible()

bool BKE_movieclip_put_frame_if_possible ( MovieClip * clip,
const MovieClipUser * user,
ImBuf * ibuf )

◆ BKE_movieclip_reload()

void BKE_movieclip_reload ( Main * bmain,
MovieClip * clip )

◆ BKE_movieclip_remap_clip_to_scene_frame()

float BKE_movieclip_remap_clip_to_scene_frame ( const MovieClip * clip,
const float framenr )

Definition at line 1881 of file movieclip.cc.

References float.

Referenced by movieclip_load_get_size().

◆ BKE_movieclip_remap_scene_to_clip_frame()

float BKE_movieclip_remap_scene_to_clip_frame ( const MovieClip * clip,
const float framenr )

◆ BKE_movieclip_update_scopes()

◆ BKE_movieclip_user_set_frame()

◆ check_undistortion_cache_flags()

◆ detect_clip_source()

static void detect_clip_source ( Main * bmain,
MovieClip * clip )
static

◆ direct_link_moviePlaneTracks()

static void direct_link_moviePlaneTracks ( BlendDataReader * reader,
ListBase * plane_tracks_base )
static

◆ direct_link_movieReconstruction()

static void direct_link_movieReconstruction ( BlendDataReader * reader,
MovieTrackingReconstruction * reconstruction )
static

Definition at line 216 of file movieclip.cc.

References BLO_read_struct_array, and reconstruction.

Referenced by movieclip_blend_read_data().

◆ direct_link_movieTracks()

static void direct_link_movieTracks ( BlendDataReader * reader,
ListBase * tracksbase )
static

Definition at line 223 of file movieclip.cc.

References BLO_read_struct_array, BLO_read_struct_list, and LISTBASE_FOREACH.

Referenced by movieclip_blend_read_data().

◆ free_buffers()

◆ get_imbuf_cache()

◆ get_postprocessed_cached_frame()

◆ get_proxy_filepath()

static void get_proxy_filepath ( const MovieClip * clip,
int proxy_render_size,
bool undistorted,
int framenr,
char filepath[FILE_MAX] )
static

◆ get_sequence_filepath()

static void get_sequence_filepath ( const MovieClip * clip,
const int framenr,
char filepath[FILE_MAX] )
static

◆ get_stable_cached_frame()

◆ get_timecode()

static int get_timecode ( MovieClip * clip,
int flag )
static

Definition at line 376 of file movieclip.cc.

References flag, IMB_TC_NONE, and MCLIP_USE_PROXY.

Referenced by movieclip_load_movie_file().

◆ get_undistorted_ibuf()

static ImBuf * get_undistorted_ibuf ( MovieClip * clip,
MovieDistortion * distortion,
ImBuf * ibuf )
static

◆ has_imbuf_cache()

◆ movie_clip_copy_data()

◆ movie_clip_foreach_cache()

static void movie_clip_foreach_cache ( ID * id,
IDTypeForeachCacheFunctionCallback function_callback,
void * user_data )
static

◆ movie_clip_foreach_id()

static void movie_clip_foreach_id ( ID * id,
LibraryForeachIDData * data )
static

◆ movie_clip_foreach_path()

static void movie_clip_foreach_path ( ID * id,
BPathForeachPathData * bpath_data )
static

Definition at line 151 of file movieclip.cc.

References BKE_bpath_foreach_path_fixed_process(), and MovieClip::filepath.

◆ movie_clip_free_data()

static void movie_clip_free_data ( ID * id)
static

◆ movie_clip_init_data()

◆ moviecache_check_free_proxy()

static bool moviecache_check_free_proxy ( ImBuf * ,
void * userkey,
void *  )
static

◆ moviecache_getitempriority()

static int moviecache_getitempriority ( void * last_userkey_v,
void * priority_data_v )
static

◆ moviecache_getprioritydata()

static void * moviecache_getprioritydata ( void * key_v)
static

◆ moviecache_hashcmp()

static bool moviecache_hashcmp ( const void * av,
const void * bv )
static

Definition at line 750 of file movieclip.cc.

References b.

Referenced by put_imbuf_cache().

◆ moviecache_hashhash()

static uint moviecache_hashhash ( const void * keyv)
static

Definition at line 742 of file movieclip.cc.

References MovieClipImBufCacheKey::framenr.

Referenced by put_imbuf_cache().

◆ moviecache_keydata()

static void moviecache_keydata ( void * userkey,
int * framenr,
int * proxy,
int * render_flags )
static

◆ moviecache_prioritydeleter()

static void moviecache_prioritydeleter ( void * priority_data_v)
static

Definition at line 779 of file movieclip.cc.

References MEM_freeN().

Referenced by put_imbuf_cache().

◆ movieclip_alloc()

static MovieClip * movieclip_alloc ( Main * bmain,
const char * name )
static

Definition at line 901 of file movieclip.cc.

References BKE_id_new(), and ID_MC.

Referenced by BKE_movieclip_file_add().

◆ movieclip_blend_read_data()

◆ movieclip_blend_write()

static void movieclip_blend_write ( BlendWriter * writer,
ID * id,
const void * id_address )
static

◆ movieclip_build_proxy_ibuf()

◆ movieclip_calc_length()

◆ movieclip_eval_update_generic()

static void movieclip_eval_update_generic ( Depsgraph * depsgraph,
MovieClip * clip )
static

◆ movieclip_eval_update_reload()

static void movieclip_eval_update_reload ( Depsgraph * depsgraph,
Main * bmain,
MovieClip * clip )
static

◆ movieclip_get_gputexture_ptr()

static GPUTexture ** movieclip_get_gputexture_ptr ( MovieClip * clip,
MovieClipUser * cuser,
eGPUTextureTarget textarget )
static

Definition at line 1974 of file movieclip.cc.

References BLI_addtail(), MEM_mallocN, tex, and TEXTARGET_COUNT.

Referenced by BKE_movieclip_get_gpu_texture().

◆ movieclip_get_postprocessed_ibuf()

◆ movieclip_load_get_size()

static void movieclip_load_get_size ( MovieClip * clip)
static

◆ movieclip_load_movie_file()

static ImBuf * movieclip_load_movie_file ( MovieClip * clip,
const MovieClipUser * user,
int framenr,
int flag )
static

◆ movieclip_load_sequence_file()

◆ movieclip_open_anim_file()

◆ need_postprocessed_frame()

static bool need_postprocessed_frame ( const MovieClipUser * user,
int clip_flag,
int postprocess_flag )
static

Definition at line 1065 of file movieclip.cc.

References need_undistortion_postprocess(), and result.

Referenced by movieclip_get_postprocessed_ibuf().

◆ need_undistortion_postprocess()

◆ postprocess_frame()

◆ put_imbuf_cache()

◆ put_postprocessed_frame_to_cache()

◆ put_stabilized_frame_to_cache()

◆ real_ibuf_size()

static void real_ibuf_size ( const MovieClip * clip,
const MovieClipUser * user,
const ImBuf * ibuf,
int * width,
int * height )
static

◆ rendersize_to_number()

◆ rendersize_to_proxy()

◆ sequence_guess_offset()

static int sequence_guess_offset ( const char * full_name,
int head_len,
ushort numlen )
static

Definition at line 319 of file movieclip.cc.

References BLI_strncpy(), and FILE_MAX.

Referenced by get_sequence_filepath(), and user_frame_to_cache_frame().

◆ user_frame_to_cache_frame()

static int user_frame_to_cache_frame ( MovieClip * clip,
int framenr )
static

◆ write_moviePlaneTracks()

static void write_moviePlaneTracks ( BlendWriter * writer,
ListBase * plane_tracks_base )
static

◆ write_movieReconstruction()

static void write_movieReconstruction ( BlendWriter * writer,
MovieTrackingReconstruction * reconstruction )
static

Definition at line 185 of file movieclip.cc.

References BLO_write_struct_array, and reconstruction.

Referenced by movieclip_blend_write().

◆ write_movieTracks()

static void write_movieTracks ( BlendWriter * writer,
ListBase * tracks )
static

Variable Documentation

◆ IDType_ID_MC

IDTypeInfo IDType_ID_MC
Initial value:
= {
sizeof(MovieClip),
"MovieClip",
N_("movieclips"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:39
#define BLT_I18NCONTEXT_ID_MOVIECLIP
#define FILTER_ID_GD_LEGACY
Definition DNA_ID.h:1169
#define FILTER_ID_MC
Definition DNA_ID.h:1177
@ INDEX_ID_MC
Definition DNA_ID.h:1276
#define FILTER_ID_IM
Definition DNA_ID.h:1171
@ ID_MC
struct MovieClip MovieClip
static void movie_clip_foreach_path(ID *id, BPathForeachPathData *bpath_data)
Definition movieclip.cc:151
static void movie_clip_foreach_cache(ID *id, IDTypeForeachCacheFunctionCallback function_callback, void *user_data)
Definition movieclip.cc:137
static void movieclip_blend_read_data(BlendDataReader *reader, ID *id)
Definition movieclip.cc:248
static void movieclip_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition movieclip.cc:194
static void movie_clip_init_data(ID *id)
Definition movieclip.cc:74
static void movie_clip_foreach_id(ID *id, LibraryForeachIDData *data)
Definition movieclip.cc:120
static void movie_clip_copy_data(Main *, std::optional< Library * >, ID *id_dst, const ID *id_src, const int flag)
Definition movieclip.cc:85
static void movie_clip_free_data(ID *id)
Definition movieclip.cc:109
#define N_(msgid)

Definition at line 287 of file movieclip.cc.