73 switch (render_size) {
88 switch (render_size) {
134 char suffix[24] = {
'\0'};
180 "%s/images/%d/%s_proxy%s",
186 strcat(name,
".jpg");
218 context->scene, seq, timeline_frame, psize, name,
context->view_id) == 0) {
259 int proxy_render_size,
260 const bool overwrite)
265 ImBuf *ibuf_tmp, *ibuf;
269 scene, seq, timeline_frame, proxy_render_size, name,
context->view_id)) {
279 rectx = (proxy_render_size * ibuf_tmp->
x) / 100;
280 recty = (proxy_render_size * ibuf_tmp->
y) / 100;
282 if (ibuf_tmp->
x != rectx || ibuf_tmp->
y != recty) {
325 static const char *ext =
NULL;
338 if (prefix[0] ==
'\0') {
398 return (required_proxies & built_proxies) != required_proxies;
405 struct GSet *file_list,
407 bool build_only_on_bad_performance)
425 for (i = 0; i < num_files; i++) {
469 build_only_on_bad_performance);
489 const bool overwrite =
context->overwrite;
548 if (*stop ||
G.is_break) {
559 for (sanim =
context->seq->anims.first; sanim; sanim = sanim->
next) {
typedef float(TangentPoint)[2]
struct anim * openanim(const char *name, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
const char * BKE_main_blendfile_path_from_global(void)
void BKE_render_resolution(const struct RenderData *r, const bool use_crop, int *r_width, int *r_height)
void BKE_scene_multiview_view_prefix_get(struct Scene *scene, const char *name, char *r_prefix, const char **r_ext)
int BKE_scene_multiview_num_views_get(const struct RenderData *rd)
File and directory operations.
int BLI_exists(const char *path) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
int BLI_access(const char *filepath, int mode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct LinkData * BLI_genericNodeN(void *data)
void BLI_addtail(struct ListBase *listbase, void *vlink) 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)
bool BLI_make_existing_file(const char *name)
void BLI_path_append(char *__restrict dst, size_t maxlen, const char *__restrict file) ATTR_NONNULL()
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
void BLI_join_dirfile(char *__restrict dst, size_t maxlen, const char *__restrict dir, const char *__restrict file) 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
Compatibility-like things for windows.
struct Depsgraph Depsgraph
@ SEQ_STORAGE_PROXY_CUSTOM_FILE
@ SEQ_STORAGE_PROXY_CUSTOM_DIR
@ SEQ_PROXY_SKIP_EXISTING
#define SEQ_EDIT_PROXY_DIR_STORAGE
eSpaceSeq_Proxy_RenderSize
@ SEQ_RENDER_SIZE_PROXY_25
@ SEQ_RENDER_SIZE_PROXY_75
@ SEQ_RENDER_SIZE_PROXY_50
@ SEQ_RENDER_SIZE_PROXY_100
_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 IndexBuildContext * IMB_anim_index_rebuild_context(struct anim *anim, IMB_Timecode_Type tcs_in_use, IMB_Proxy_Size proxy_sizes_in_use, int quality, const bool overwrite, struct GSet *file_list, bool build_only_on_bad_performance)
void IMB_anim_index_rebuild(struct IndexBuildContext *context, short *stop, short *do_update, float *progress)
void IMB_close_anim_proxies(struct anim *anim)
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)
int IMB_anim_index_get_frame_index(struct anim *anim, IMB_Timecode_Type tc, int position)
void IMB_anim_index_rebuild_finish(struct IndexBuildContext *context, short stop)
IMB_Proxy_Size IMB_anim_proxy_get_existing(struct anim *anim)
struct ImBuf * IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
void IMB_anim_get_fname(struct anim *anim, char *file, int size)
struct ImBuf * IMB_anim_absolute(struct anim *anim, int position, IMB_Timecode_Type tc, IMB_Proxy_Size preview_size)
bool IMB_scalefastImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
bool IMB_saveiff(struct ImBuf *ibuf, const char *filepath, int flags)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
const Depsgraph * depsgraph
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void seq_multiview_name(Scene *scene, const int view_id, const char *prefix, const char *ext, char *r_path, size_t r_size)
static bool seq_proxy_need_rebuild(Sequence *seq, struct anim *anim)
void free_proxy_seq(Sequence *seq)
static bool seq_proxy_get_fname(Scene *scene, Sequence *seq, int timeline_frame, eSpaceSeq_Proxy_RenderSize render_size, char *name, const int view_id)
void SEQ_proxy_set(struct Sequence *seq, bool value)
static void seq_proxy_build_frame(const SeqRenderData *context, SeqRenderState *state, Sequence *seq, int timeline_frame, int proxy_render_size, const bool overwrite)
void seq_proxy_index_dir_set(struct anim *anim, const char *base_dir)
struct SeqIndexBuildContext SeqIndexBuildContext
void SEQ_proxy_rebuild(SeqIndexBuildContext *context, short *stop, short *do_update, float *progress)
static bool seq_proxy_multiview_context_invalid(Sequence *seq, Scene *scene, const int view_id)
static int seq_proxy_context_count(Sequence *seq, Scene *scene)
int SEQ_rendersize_to_proxysize(int render_size)
void SEQ_proxy_rebuild_finish(SeqIndexBuildContext *context, bool stop)
ImBuf * seq_proxy_fetch(const SeqRenderData *context, Sequence *seq, int timeline_frame)
bool SEQ_can_use_proxy(const struct SeqRenderData *context, Sequence *seq, int psize)
double SEQ_rendersize_to_scale_factor(int render_size)
bool seq_proxy_get_custom_file_fname(Sequence *seq, char *name, const int view_id)
bool SEQ_proxy_rebuild_context(Main *bmain, Depsgraph *depsgraph, Scene *scene, Sequence *seq, struct GSet *file_list, ListBase *queue, bool build_only_on_bad_performance)
void SEQ_render_new_render_data(Main *bmain, struct Depsgraph *depsgraph, Scene *scene, int rectx, int recty, int preview_render_size, int for_render, SeqRenderData *r_context)
ImBuf * seq_render_strip(const SeqRenderData *context, SeqRenderState *state, Sequence *seq, float timeline_frame)
void seq_imbuf_assign_spaces(Scene *scene, ImBuf *ibuf)
StripElem * SEQ_render_give_stripelem(const Scene *scene, Sequence *seq, int timeline_frame)
void seq_render_state_init(SeqRenderState *state)
StripProxy * seq_strip_proxy_alloc(void)
Sequence * SEQ_sequence_dupli_recursive(const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Sequence *seq, int dupe_flag)
void seq_free_sequence_recurse(Scene *scene, Sequence *seq, const bool do_id_user)
Editing * SEQ_editing_get(const Scene *scene)
void SEQ_relations_sequence_free_anim(Sequence *seq)
int SEQ_time_left_handle_frame_get(const Scene *UNUSED(scene), const Sequence *seq)
float seq_give_frame_index(const Scene *scene, Sequence *seq, float timeline_frame)
int SEQ_time_right_handle_frame_get(const Scene *scene, const Sequence *seq)
ImbFormatOptions foptions
struct IndexBuildContext * index_context
SessionUUID orig_seq_uuid
ColorManagedColorspaceSettings colorspace_settings
void seq_open_anim_file(Scene *scene, Sequence *seq, bool openfile)