63 static void rna_Sequence_update_rnafunc(
ID *
id,
Sequence *
self,
bool do_data)
73 static void rna_Sequence_swap_internal(
Sequence *seq_self,
77 const char *error_msg;
84 static void rna_Sequences_move_strip_to_meta(
88 const char *error_msg;
102 static Sequence *rna_Sequences_new_clip(
ID *
id,
113 load_data.
clip = clip;
123 static Sequence *rna_Sequences_editing_new_clip(
ID *
id,
131 return rna_Sequences_new_clip(
id, &ed->
seqbase, bmain, name, clip, channel, frame_start);
134 static Sequence *rna_Sequences_meta_new_clip(
ID *
id,
142 return rna_Sequences_new_clip(
id, &seq->
seqbase, bmain, name, clip, channel, frame_start);
145 static Sequence *rna_Sequences_new_mask(
ID *
id,
165 static Sequence *rna_Sequences_editing_new_mask(
168 return rna_Sequences_new_mask(
id, &ed->
seqbase, bmain, name,
mask, channel, frame_start);
171 static Sequence *rna_Sequences_meta_new_mask(
174 return rna_Sequences_new_mask(
id, &seq->
seqbase, bmain, name,
mask, channel, frame_start);
177 static Sequence *rna_Sequences_new_scene(
ID *
id,
188 load_data.
scene = sce_seq;
198 static Sequence *rna_Sequences_editing_new_scene(
ID *
id,
206 return rna_Sequences_new_scene(
id, &ed->
seqbase, bmain, name, sce_seq, channel, frame_start);
209 static Sequence *rna_Sequences_meta_new_scene(
ID *
id,
217 return rna_Sequences_new_scene(
id, &seq->
seqbase, bmain, name, sce_seq, channel, frame_start);
220 static Sequence *rna_Sequences_new_image(
ID *
id,
251 static Sequence *rna_Sequences_editing_new_image(
ID *
id,
261 return rna_Sequences_new_image(
262 id, &ed->
seqbase, bmain, reports, name,
file, channel, frame_start, fit_method);
265 static Sequence *rna_Sequences_meta_new_image(
ID *
id,
275 return rna_Sequences_new_image(
276 id, &seq->
seqbase, bmain, reports, name,
file, channel, frame_start, fit_method);
279 static Sequence *rna_Sequences_new_movie(
ID *
id,
293 double video_start_offset;
303 static Sequence *rna_Sequences_editing_new_movie(
ID *
id,
312 return rna_Sequences_new_movie(
313 id, &ed->
seqbase, bmain, name,
file, channel, frame_start, fit_method);
316 static Sequence *rna_Sequences_meta_new_movie(
ID *
id,
325 return rna_Sequences_new_movie(
326 id, &seq->
seqbase, bmain, name,
file, channel, frame_start, fit_method);
329 # ifdef WITH_AUDASPACE
330 static Sequence *rna_Sequences_new_sound(
ID *
id,
371 static Sequence *rna_Sequences_editing_new_sound(
ID *
id,
380 return rna_Sequences_new_sound(
381 id, &ed->
seqbase, bmain, reports, name,
file, channel, frame_start);
384 static Sequence *rna_Sequences_meta_new_sound(
ID *
id,
393 return rna_Sequences_new_sound(
394 id, &seq->
seqbase, bmain, reports, name,
file, channel, frame_start);
400 static Sequence *rna_Sequences_new_meta(
401 ID *
id,
ListBase *seqbase,
const char *name,
int channel,
int frame_start)
411 static Sequence *rna_Sequences_editing_new_meta(
412 ID *
id,
Editing *ed,
const char *name,
int channel,
int frame_start)
414 return rna_Sequences_new_meta(
id, &ed->
seqbase, name, channel, frame_start);
417 static Sequence *rna_Sequences_meta_new_meta(
418 ID *
id,
Sequence *seq,
const char *name,
int channel,
int frame_start)
420 return rna_Sequences_new_meta(
id, &seq->
seqbase, name, channel, frame_start);
423 static Sequence *rna_Sequences_new_effect(
ID *
id,
439 switch (num_inputs) {
441 if (frame_end <= frame_start) {
468 "Sequences.new_effect: effect expects more than 3 inputs (%d, should never happen!)",
488 static Sequence *rna_Sequences_editing_new_effect(
ID *
id,
500 return rna_Sequences_new_effect(
501 id, &ed->
seqbase, reports, name,
type, channel, frame_start, frame_end, seq1, seq2, seq3);
504 static Sequence *rna_Sequences_meta_new_effect(
ID *
id,
516 return rna_Sequences_new_effect(
517 id, &seq->
seqbase, reports, name,
type, channel, frame_start, frame_end, seq1, seq2, seq3);
520 static void rna_Sequences_remove(
541 static void rna_Sequences_editing_remove(
544 rna_Sequences_remove(
id, &ed->
seqbase, bmain, reports, seq_ptr);
547 static void rna_Sequences_meta_remove(
550 rna_Sequences_remove(
id, &seq->
seqbase, bmain, reports, seq_ptr);
585 if (seq->
len <= index || index < 0) {
595 memcpy(new_seq, se,
sizeof(
StripElem) * index);
598 if (index < seq->
len) {
599 memcpy(&new_seq[index], &se[index + 1],
sizeof(
StripElem) * (seq->
len - index));
610 static void rna_Sequence_invalidate_cache_rnafunc(
ID *
id,
Sequence *
self,
int type)
642 parm =
RNA_def_boolean(func,
"data",
false,
"Data",
"Update strip data");
644 func =
RNA_def_function(srna,
"strip_elem_from_frame",
"SEQ_render_give_stripelem");
652 "The frame to get the strip element from",
658 RNA_def_pointer(func,
"elem",
"SequenceElement",
"",
"strip element of the current frame"));
665 func =
RNA_def_function(srna,
"move_to_meta",
"rna_Sequences_move_strip_to_meta");
670 "Destination Meta Sequence",
671 "Meta to move the strip into");
674 func =
RNA_def_function(srna,
"invalidate_cache",
"rna_Sequence_invalidate_cache_rnafunc");
677 "Invalidate cached images for strip and all dependent strips");
678 parm =
RNA_def_enum(func,
"type", seq_cahce_type_items, 0,
"Type",
"Cache Type");
696 parm =
RNA_def_string(func,
"filename",
"File", 0,
"",
"Filepath to image");
699 parm =
RNA_def_pointer(func,
"elem",
"SequenceElement",
"",
"New SequenceElement");
706 func,
"index", -1, INT_MIN, INT_MAX,
"",
"Index of image to remove", INT_MIN, INT_MAX);
739 {
SEQ_SCALE_TO_FIT,
"FIT", 0,
"Scale to Fit",
"Scale image so fits in preview"},
744 "Scale image so it fills preview completely"},
745 {
SEQ_STRETCH_TO_FILL,
"STRETCH", 0,
"Stretch to Fill",
"Stretch image so it fills preview"},
750 const char *new_clip_func_name =
"rna_Sequences_editing_new_clip";
751 const char *new_mask_func_name =
"rna_Sequences_editing_new_mask";
752 const char *new_scene_func_name =
"rna_Sequences_editing_new_scene";
753 const char *new_image_func_name =
"rna_Sequences_editing_new_image";
754 const char *new_movie_func_name =
"rna_Sequences_editing_new_movie";
755 const char *new_sound_func_name =
"rna_Sequences_editing_new_sound";
756 const char *new_meta_func_name =
"rna_Sequences_editing_new_meta";
757 const char *new_effect_func_name =
"rna_Sequences_editing_new_effect";
758 const char *remove_func_name =
"rna_Sequences_editing_remove";
765 new_clip_func_name =
"rna_Sequences_meta_new_clip";
766 new_mask_func_name =
"rna_Sequences_meta_new_mask";
767 new_scene_func_name =
"rna_Sequences_meta_new_scene";
768 new_image_func_name =
"rna_Sequences_meta_new_image";
769 new_movie_func_name =
"rna_Sequences_meta_new_movie";
770 new_sound_func_name =
"rna_Sequences_meta_new_sound";
771 new_meta_func_name =
"rna_Sequences_meta_new_meta";
772 new_effect_func_name =
"rna_Sequences_meta_new_effect";
773 remove_func_name =
"rna_Sequences_meta_remove";
786 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
788 parm =
RNA_def_pointer(func,
"clip",
"MovieClip",
"",
"Movie clip to add");
791 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
799 "The start frame for the new sequence",
804 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
810 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
815 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
823 "The start frame for the new sequence",
828 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
834 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
839 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
847 "The start frame for the new sequence",
852 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
858 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
860 parm =
RNA_def_string(func,
"filepath",
"File", 0,
"",
"Filepath to image");
863 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
871 "The start frame for the new sequence",
879 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
885 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
887 parm =
RNA_def_string(func,
"filepath",
"File", 0,
"",
"Filepath to movie");
890 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
898 "The start frame for the new sequence",
906 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
912 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
914 parm =
RNA_def_string(func,
"filepath",
"File", 0,
"",
"Filepath to movie");
917 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
925 "The start frame for the new sequence",
930 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
936 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
939 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
947 "The start frame for the new sequence",
952 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
958 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new sequence");
960 parm =
RNA_def_enum(func,
"type", seq_effect_items, 0,
"Type",
"type for the new sequence");
963 func,
"channel", 0, 1,
MAXSEQ,
"Channel",
"The channel for the new sequence", 1,
MAXSEQ);
972 "The start frame for the new sequence",
982 "The end frame for the new sequence",
985 RNA_def_pointer(func,
"seq1",
"Sequence",
"",
"Sequence 1 for effect");
986 RNA_def_pointer(func,
"seq2",
"Sequence",
"",
"Sequence 2 for effect");
987 RNA_def_pointer(func,
"seq3",
"Sequence",
"",
"Sequence 3 for effect");
989 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"New Sequence");
995 parm =
RNA_def_pointer(func,
"sequence",
"Sequence",
"",
"Sequence to remove");
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ ID_RECALC_SEQUENCER_STRIPS
@ SEQ_CACHE_STORE_PREPROCESSED
@ SEQ_CACHE_STORE_COMPOSITE
_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 type
Contains defines and structs used throughout the imbuf module.
#define MEM_reallocN(vmemh, len)
#define RNA_POINTER_INVALIDATE(ptr)
int SEQ_effect_get_num_inputs(int seq_type)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_function_flag(FunctionRNA *func, int flag)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_api_sequences(BlenderRNA *brna, PropertyRNA *cprop, const bool metastrip)
void RNA_api_sequence_strip(StructRNA *srna)
void RNA_api_sequence_elements(BlenderRNA *brna, PropertyRNA *cprop)
static const EnumPropertyItem scale_fit_methods[]
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)
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)
Sequence * SEQ_add_movieclip_strip(Scene *scene, ListBase *seqbase, struct SeqLoadData *load_data)
void SEQ_add_image_set_directory(Sequence *seq, char *path)
void SEQ_add_image_init_alpha_mode(Sequence *seq)
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)
bool SEQ_edit_move_strip_to_meta(Scene *scene, Sequence *src_seq, Sequence *dst_seqm, const char **error_str)
void SEQ_edit_flag_for_removal(Scene *scene, ListBase *seqbase, Sequence *seq)
int SEQ_edit_sequence_swap(Sequence *seq_a, Sequence *seq_b, const char **error_str)
void SEQ_edit_remove_flagged_sequences(Scene *scene, ListBase *seqbase)
void SEQ_relations_invalidate_cache_raw(Scene *scene, Sequence *seq)
void SEQ_relations_update_changed_seq_and_deps(Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change)
void SEQ_relations_invalidate_cache_preprocessed(Scene *scene, 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)
struct SeqLoadData::@1139 image
eSeqImageFitMethod fit_method
struct SeqLoadData::@1140 effect
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)
void WM_main_add_notifier(unsigned int type, void *reference)