85 const int start_frame,
109 if (load_data->
name[0] !=
'\0') {
137 const char *role_colorspace_byte;
140 if (
STREQ(strip_colorspace, role_colorspace_byte)) {
143 const char *default_view_transform =
353 for (
int i = 0; i < load_data->
image.
len; i++) {
373 #ifdef WITH_AUDASPACE
389 const double audio_offset)
411 double start_frame_offset_remainer = (info.
start_offset *
FPS - start_frame_offset) /
FPS;
413 if (start_frame_offset_remainer > FLT_EPSILON) {
417 start_frame_offset++;
467 const double UNUSED(audio_offset))
512 double *r_video_start_offset)
514 char path[
sizeof(load_data->
path)];
518 char colorspace[64] =
"\0";
519 bool is_multiview_loaded =
false;
528 const char *ext =
NULL;
533 if (prefix[0] !=
'\0') {
534 for (i = 0; i < totfiles; i++) {
545 is_multiview_loaded =
true;
549 if (is_multiview_loaded ==
false) {
570 for (i = 0; i < totfiles; i++) {
574 sanim->
anim = anim_arr[i];
583 if (anim_arr[0] !=
NULL) {
626 int prev_startdisp = 0, prev_enddisp = 0;
662 bool is_multiview_loaded =
false;
673 const char *ext =
NULL;
679 if (prefix[0] !=
'\0') {
680 for (i = 0; i < totfiles; i++) {
697 is_multiview_loaded =
true;
701 if (is_multiview_loaded ==
false) {
717 if ((!sanim) || (!sanim->
anim)) {
758 #ifdef WITH_AUDASPACE
798 bool *r_was_reloaded,
799 bool *r_can_produce_frames)
802 !
"This function is only implemented for movie strips.");
804 bool must_reload =
false;
826 *r_was_reloaded =
false;
827 *r_can_produce_frames =
true;
832 *r_was_reloaded =
true;
836 *r_can_produce_frames =
false;
844 *r_can_produce_frames =
false;
850 *r_can_produce_frames =
true;
struct anim * openanim(const char *name, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
void BKE_id_free(struct Main *bmain, void *idv)
void id_us_ensure_real(struct ID *id)
const char * BKE_main_blendfile_path(const struct Main *bmain) ATTR_NONNULL()
const char * BKE_main_blendfile_path_from_global(void)
int BKE_mask_get_duration(struct Mask *mask)
int BKE_movieclip_get_duration(struct MovieClip *clip)
void BKE_scene_multiview_view_prefix_get(struct Scene *scene, const char *name, char *r_prefix, const char **r_ext)
float BKE_sound_get_length(struct Main *bmain, struct bSound *sound)
struct bSound * BKE_sound_new_file(struct Main *main, const char *filepath)
bool BKE_sound_info_get(struct Main *main, struct bSound *sound, SoundInfo *sound_info)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
#define LISTBASE_FOREACH(type, var, list)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_join_dirfile(char *__restrict dst, const size_t maxlen, const char *__restrict dir, const char *__restrict file) ATTR_NONNULL()
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()
#define STRNCPY(dst, src)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
int BLI_utf8_invalid_strip(char *str, size_t length) ATTR_NONNULL()
@ SEQ_USE_EFFECT_DEFAULT_FADE
struct StripElem StripElem
const char * IMB_colormanagement_role_colorspace_name_get(int role)
@ COLOR_ROLE_DEFAULT_BYTE
struct ColorManagedDisplay * IMB_colormanagement_display_get_named(const char *name)
const char * IMB_colormanagement_display_get_default_view_transform_name(struct ColorManagedDisplay *display)
bool IMB_anim_get_fps(struct anim *anim, short *frs_sec, float *frs_sec_base, bool no_av_base)
void IMB_freeImBuf(struct ImBuf *ibuf)
int IMB_anim_get_image_height(struct anim *anim)
struct ImBuf * IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
double IMD_anim_get_offset(struct anim *anim)
int IMB_anim_get_image_width(struct anim *anim)
bool IMB_anim_can_produce_frames(const struct anim *anim)
int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
@ SEQ_LOAD_SET_VIEW_TRANSFORM
@ SEQ_LOAD_MOVIE_SYNC_FPS
struct SeqEffectHandle SEQ_effect_handle_get(Sequence *seq)
int SEQ_effect_get_num_inputs(int seq_type)
void(* MEM_freeN)(void *vmemh)
size_t(* MEM_allocN_len)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
int seq_num_files(Scene *scene, char views_format, const bool is_multiview)
void seq_anim_add_suffix(Scene *scene, struct anim *anim, const int view_id)
void seq_multiview_name(Scene *scene, const int view_id, const char *prefix, const char *ext, char *r_path, size_t r_size)
void free_proxy_seq(Sequence *seq)
StripElem * SEQ_render_give_stripelem(Sequence *seq, int timeline_frame)
Sequence * SEQ_sequence_alloc(ListBase *lb, int timeline_frame, int machine, int type)
void SEQ_add_image_load_file(Sequence *seq, size_t strip_frame, char *filename)
Sequence * SEQ_add_movie_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqLoadData *load_data, double *r_video_start_offset)
Sequence * SEQ_add_meta_strip(Scene *scene, ListBase *seqbase, SeqLoadData *load_data)
Sequence * SEQ_add_mask_strip(Scene *scene, ListBase *seqbase, struct SeqLoadData *load_data)
void SEQ_add_movie_reload_if_needed(struct Main *bmain, struct Scene *scene, struct Sequence *seq, bool *r_was_reloaded, bool *r_can_produce_frames)
Sequence * SEQ_add_image_strip(Main *bmain, Scene *scene, ListBase *seqbase, SeqLoadData *load_data)
Sequence * SEQ_add_effect_strip(Scene *scene, ListBase *seqbase, struct SeqLoadData *load_data)
static void seq_add_set_name(Sequence *seq, SeqLoadData *load_data)
Sequence * SEQ_add_movieclip_strip(Scene *scene, ListBase *seqbase, struct SeqLoadData *load_data)
void SEQ_add_reload_new_file(Main *bmain, Scene *scene, Sequence *seq, const bool lock_range)
void SEQ_add_image_set_directory(Sequence *seq, char *path)
void SEQ_add_image_init_alpha_mode(Sequence *seq)
static void seq_add_set_view_transform(Scene *scene, Sequence *seq, SeqLoadData *load_data)
Sequence * SEQ_add_sound_strip(Main *UNUSED(bmain), Scene *UNUSED(scene), ListBase *UNUSED(seqbase), SeqLoadData *UNUSED(load_data), const double UNUSED(audio_offset))
Sequence * SEQ_add_scene_strip(Scene *scene, ListBase *seqbase, struct SeqLoadData *load_data)
void SEQ_add_load_data_init(SeqLoadData *load_data, const char *name, const char *path, const int start_frame, const int channel)
static void seq_add_generic_update(Scene *scene, ListBase *UNUSED(seqbase), Sequence *seq)
void SEQ_relations_update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change)
void SEQ_relations_sequence_free_anim(Sequence *seq)
void SEQ_relations_invalidate_cache_composite(Scene *scene, Sequence *seq)
void SEQ_time_update_sequence_bounds(Scene *scene, Sequence *seq)
void SEQ_time_update_sequence(Scene *scene, Sequence *seq)
ColorManagedViewSettings view_settings
ColorManagedDisplaySettings display_settings
void(* init)(struct Sequence *seq)
struct SeqLoadData::@1139 image
eSeqImageFitMethod fit_method
struct Stereo3dFormat * stereo3d_format
struct SeqLoadData::@1140 effect
struct Stereo3dFormat * stereo3d_format
struct SoundInfo::@62 specs
ColorManagedColorspaceSettings colorspace_settings
ccl_device_inline float3 ceil(const float3 &a)
const char * SEQ_sequence_give_name(Sequence *seq)
void SEQ_sequence_base_unique_name_recursive(ListBase *seqbasep, Sequence *seq)
void SEQ_sort(Scene *scene)
void SEQ_set_scale_to_fit(const Sequence *seq, const int image_width, const int image_height, const int preview_width, const int preview_height, const eSeqImageFitMethod fit_method)