57static void rna_Strip_swap_internal(
ID *
id,
62 const char *error_msg;
70static void rna_Strips_move_strip_to_meta(
74 const char *error_msg;
90static Strip *rna_Strip_split(
ID *
id,
96 bool ignore_connections)
101 const char *error_msg =
nullptr;
110 if (error_msg !=
nullptr) {
123static Strip *rna_Strip_parent_meta(
ID *
id,
Strip *strip_self)
129static Strip *rna_Strips_new_clip(
ID *
id,
140 load_data.
clip = clip;
150static Strip *rna_Strips_editing_new_clip(
ID *
id,
158 return rna_Strips_new_clip(
id, &ed->
seqbase, bmain, name, clip, channel, frame_start);
161static Strip *rna_Strips_meta_new_clip(
ID *
id,
169 return rna_Strips_new_clip(
id, &strip->
seqbase, bmain, name, clip, channel, frame_start);
172static Strip *rna_Strips_new_mask(
ID *
id,
192static Strip *rna_Strips_editing_new_mask(
195 return rna_Strips_new_mask(
id, &ed->
seqbase, bmain, name,
mask, channel, frame_start);
198static Strip *rna_Strips_meta_new_mask(
199 ID *
id,
Strip *strip,
Main *bmain,
const char *name,
Mask *
mask,
int channel,
int frame_start)
201 return rna_Strips_new_mask(
id, &strip->
seqbase, bmain, name,
mask, channel, frame_start);
204static Strip *rna_Strips_new_scene(
ID *
id,
215 load_data.
scene = sce_strip;
225static Strip *rna_Strips_editing_new_scene(
ID *
id,
233 return rna_Strips_new_scene(
id, &ed->
seqbase, bmain, name, sce_strip, channel, frame_start);
236static Strip *rna_Strips_meta_new_scene(
ID *
id,
244 return rna_Strips_new_scene(
id, &strip->
seqbase, bmain, name, sce_strip, channel, frame_start);
247static Strip *rna_Strips_new_image(
ID *
id,
272 "View transform set to %s (converted from %s)",
290static Strip *rna_Strips_editing_new_image(
ID *
id,
300 return rna_Strips_new_image(
301 id, &ed->
seqbase, bmain,
reports, name, file, channel, frame_start, fit_method);
304static Strip *rna_Strips_meta_new_image(
ID *
id,
314 return rna_Strips_new_image(
315 id, &strip->
seqbase, bmain,
reports, name, file, channel, frame_start, fit_method);
318static Strip *rna_Strips_new_movie(
ID *
id,
343 "View transform set to %s (converted from %s)",
351 "Scene frame rate set to %.4g (converted from %.4g)",
363static Strip *rna_Strips_editing_new_movie(
ID *
id,
373 return rna_Strips_new_movie(
374 id, &ed->
seqbase, bmain,
reports, name, file, channel, frame_start, fit_method);
377static Strip *rna_Strips_meta_new_movie(
ID *
id,
387 return rna_Strips_new_movie(
388 id, &strip->
seqbase, bmain,
reports, name, file, channel, frame_start, fit_method);
391# ifdef WITH_AUDASPACE
392static Strip *rna_Strips_new_sound(
ID *
id,
407 if (strip ==
nullptr) {
419static Strip *rna_Strips_new_sound(
ID * ,
433static Strip *rna_Strips_editing_new_sound(
ID *
id,
442 return rna_Strips_new_sound(
id, &ed->
seqbase, bmain,
reports, name, file, channel, frame_start);
445static Strip *rna_Strips_meta_new_sound(
ID *
id,
454 return rna_Strips_new_sound(
455 id, &strip->
seqbase, bmain,
reports, name, file, channel, frame_start);
461static Strip *rna_Strips_new_meta(
462 ID *
id,
ListBase *seqbase,
const char *name,
int channel,
int frame_start)
472static Strip *rna_Strips_editing_new_meta(
473 ID *
id,
Editing *ed,
const char *name,
int channel,
int frame_start)
475 return rna_Strips_new_meta(
id, &ed->
seqbase, name, channel, frame_start);
478static Strip *rna_Strips_meta_new_meta(
479 ID *
id,
Strip *strip,
const char *name,
int channel,
int frame_start)
481 return rna_Strips_new_meta(
id, &strip->
seqbase, name, channel, frame_start);
484static Strip *rna_Strips_new_effect(
ID *
id,
499 switch (num_inputs) {
501 if (frame_end <= frame_start) {
507 if (input1 ==
nullptr) {
513 if (input1 ==
nullptr || input2 ==
nullptr) {
522 "Strips.new_effect: effect expects more than 2 inputs (%d, should never happen!)",
541static Strip *rna_Strips_editing_new_effect(
ID *
id,
552 return rna_Strips_new_effect(
553 id, &ed->
seqbase,
reports, name, type, channel, frame_start, frame_end, input1, input2);
556static Strip *rna_Strips_meta_new_effect(
ID *
id,
567 return rna_Strips_new_effect(
568 id, &strip->
seqbase,
reports, name, type, channel, frame_start, frame_end, input1, input2);
571static void rna_Strips_remove(
592static void rna_Strips_editing_remove(
598static void rna_Strips_meta_remove(
601 rna_Strips_remove(
id, &strip->
seqbase, bmain,
reports, strip_ptr);
604static StripElem *rna_StripElements_append(
ID *
id,
Strip *strip,
const char *filename)
627 if (strip->
len == 1) {
637 if (strip->
len <= index || index < 0) {
645 if (strip->
len == 1) {
651 memcpy(new_se, se,
sizeof(
StripElem) * index);
654 if (index < strip->
len) {
655 memcpy(&new_se[index], &se[index + 1],
sizeof(
StripElem) * (strip->
len - index));
664static void rna_Strip_invalidate_cache_rnafunc(
ID *
id,
Strip *
self,
int type)
687static void rna_Strip_retiming_keys_reset(
ID *
id,
Strip *strip)
707 {0,
nullptr, 0,
nullptr,
nullptr},
713 {0,
nullptr, 0,
nullptr,
nullptr},
716 func =
RNA_def_function(srna,
"strip_elem_from_frame",
"rna_Strip_elem_from_frame");
725 "The frame to get the strip element from",
731 RNA_def_pointer(func,
"elem",
"StripElement",
"",
"strip element of the current frame"));
739 func =
RNA_def_function(srna,
"move_to_meta",
"rna_Strips_move_strip_to_meta");
742 func,
"meta_sequence",
"Strip",
"Destination Meta Strip",
"Meta to move the strip into");
752 func =
RNA_def_function(srna,
"invalidate_cache",
"rna_Strip_invalidate_cache_rnafunc");
755 "Invalidate cached images for strip and all dependent strips");
756 parm =
RNA_def_enum(func,
"type", strip_cache_type_items, 0,
"Type",
"Cache Type");
763 func,
"frame", 0, INT_MIN, INT_MAX,
"",
"Frame where to split the strip", INT_MIN, INT_MAX);
765 parm =
RNA_def_enum(func,
"split_method", strip_split_method_items, 0,
"",
"");
768 func,
"ignore_connections",
false,
"",
"Don't propagate split to connected strips");
770 parm =
RNA_def_pointer(func,
"sequence",
"Strip",
"",
"Right side Strip");
788 parm =
RNA_def_string(func,
"filename",
"File", 0,
"",
"Filepath to image");
791 parm =
RNA_def_pointer(func,
"elem",
"StripElement",
"",
"New StripElement");
798 func,
"index", -1, INT_MIN, INT_MAX,
"",
"Index of image to remove", INT_MIN, INT_MAX);
828 {
STRIP_TYPE_CROSS,
"CROSS", 0,
"Crossfade",
"Fade out of one video, fading into another"},
829 {
STRIP_TYPE_ADD,
"ADD", 0,
"Add",
"Add together color channels from two videos"},
830 {
STRIP_TYPE_SUB,
"SUBTRACT", 0,
"Subtract",
"Subtract one strip's color from another"},
837 "Crossfade with color correction"},
838 {
STRIP_TYPE_MUL,
"MULTIPLY", 0,
"Multiply",
"Multiply color channels from two videos"},
839 {
STRIP_TYPE_WIPE,
"WIPE", 0,
"Wipe",
"Sweep a transition line across the frame"},
840 {
STRIP_TYPE_GLOW,
"GLOW", 0,
"Glow",
"Add blur and brightness to light areas"},
843 {
STRIP_TYPE_SPEED,
"SPEED", 0,
"Speed",
"Timewarp video strips, modifying playback speed"},
849 {0,
nullptr, 0,
nullptr,
nullptr},
853 {
SEQ_SCALE_TO_FIT,
"FIT", 0,
"Scale to Fit",
"Scale image so fits in preview"},
858 "Scale image so it fills preview completely"},
859 {
SEQ_STRETCH_TO_FILL,
"STRETCH", 0,
"Stretch to Fill",
"Stretch image so it fills preview"},
861 {0,
nullptr, 0,
nullptr,
nullptr},
864 const char *new_clip_func_name =
"rna_Strips_editing_new_clip";
865 const char *new_mask_func_name =
"rna_Strips_editing_new_mask";
866 const char *new_scene_func_name =
"rna_Strips_editing_new_scene";
867 const char *new_image_func_name =
"rna_Strips_editing_new_image";
868 const char *new_movie_func_name =
"rna_Strips_editing_new_movie";
869 const char *new_sound_func_name =
"rna_Strips_editing_new_sound";
870 const char *new_meta_func_name =
"rna_Strips_editing_new_meta";
871 const char *new_effect_func_name =
"rna_Strips_editing_new_effect";
872 const char *remove_func_name =
"rna_Strips_editing_remove";
875 new_clip_func_name =
"rna_Strips_meta_new_clip";
876 new_mask_func_name =
"rna_Strips_meta_new_mask";
877 new_scene_func_name =
"rna_Strips_meta_new_scene";
878 new_image_func_name =
"rna_Strips_meta_new_image";
879 new_movie_func_name =
"rna_Strips_meta_new_movie";
880 new_sound_func_name =
"rna_Strips_meta_new_sound";
881 new_meta_func_name =
"rna_Strips_meta_new_meta";
882 new_effect_func_name =
"rna_Strips_meta_new_effect";
883 remove_func_name =
"rna_Strips_meta_remove";
889 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
891 parm =
RNA_def_pointer(func,
"clip",
"MovieClip",
"",
"Movie clip to add");
899 "The channel for the new strip",
909 "The start frame for the new strip",
920 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
930 "The channel for the new strip",
940 "The start frame for the new strip",
951 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
961 "The channel for the new strip",
971 "The start frame for the new strip",
982 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
984 parm =
RNA_def_string(func,
"filepath",
"File", 0,
"",
"Filepath to image");
992 "The channel for the new strip",
1002 "The start frame for the new strip",
1015 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
1017 parm =
RNA_def_string(func,
"filepath",
"File", 0,
"",
"Filepath to movie");
1025 "The channel for the new strip",
1035 "The start frame for the new strip",
1048 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
1050 parm =
RNA_def_string(func,
"filepath",
"File", 0,
"",
"Filepath to movie");
1058 "The channel for the new strip",
1068 "The start frame for the new strip",
1079 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
1087 "The channel for the new strip",
1097 "The start frame for the new strip",
1108 parm =
RNA_def_string(func,
"name",
"Name", 0,
"",
"Name for the new strip");
1110 parm =
RNA_def_enum(func,
"type", strip_effect_items, 0,
"Type",
"type for the new strip");
1118 "The channel for the new strip",
1129 "The start frame for the new strip",
1139 "The end frame for the new strip",
1142 RNA_def_pointer(func,
"input1",
"Strip",
"",
"First input strip for effect");
1143 RNA_def_pointer(func,
"input2",
"Strip",
"",
"Second input strip for effect");
1151 parm =
RNA_def_pointer(func,
"sequence",
"Strip",
"",
"Strip to remove");
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void BLI_path_split_dir_file(const char *filepath, char *dir, size_t dir_maxncpy, char *file, size_t file_maxncpy) ATTR_NONNULL(1
char * STRNCPY(char(&dst)[N], const char *src)
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
@ ID_RECALC_SEQUENCER_STRIPS
@ STRIP_TYPE_GAUSSIAN_BLUR
@ SEQ_CACHE_STORE_FINAL_OUT
@ SEQ_SINGLE_FRAME_CONTENT
#define MEM_reallocN(vmemh, len)
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
Strip * lookup_meta_by_strip(Editing *ed, const Strip *key)
void relations_invalidate_cache(Scene *scene, Strip *strip)
void edit_remove_flagged_strips(Scene *scene, ListBase *seqbase)
void edit_flag_for_removal(Scene *scene, ListBase *seqbase, Strip *strip)
void add_image_init_alpha_mode(Strip *strip)
Editing * editing_get(const Scene *scene)
ListBase * get_seqbase_by_strip(const Scene *scene, Strip *strip)
Strip * add_effect_strip(Scene *scene, ListBase *seqbase, LoadData *load_data)
void add_image_load_file(Scene *scene, Strip *strip, size_t strip_frame, const char *filename)
void add_image_set_directory(Strip *strip, const char *dirpath)
Strip * add_sound_strip(Main *, Scene *, ListBase *, LoadData *)
void relations_invalidate_cache_raw(Scene *scene, Strip *strip)
void retiming_data_clear(Strip *strip)
Strip * add_meta_strip(Scene *scene, ListBase *seqbase, LoadData *load_data)
constexpr int MAX_CHANNELS
Strip * add_scene_strip(Scene *scene, ListBase *seqbase, LoadData *load_data)
bool edit_move_strip_to_meta(Scene *scene, Strip *src_strip, Strip *dst_stripm, const char **r_error_str)
Strip * add_image_strip(Main *bmain, Scene *scene, ListBase *seqbase, LoadData *load_data)
Strip * add_movieclip_strip(Scene *scene, ListBase *seqbase, LoadData *load_data)
bool edit_strip_swap(Scene *scene, Strip *strip_a, Strip *strip_b, const char **r_error_str)
Strip * add_mask_strip(Scene *scene, ListBase *seqbase, LoadData *load_data)
Strip * edit_strip_split(Main *bmain, Scene *scene, ListBase *seqbase, Strip *strip, const int timeline_frame, const eSplitMethod method, const bool ignore_connections, const char **r_error)
void strip_lookup_invalidate(const Editing *ed)
SeqRetimingKey * retiming_add_key(const Scene *scene, Strip *strip, const int timeline_frame)
Strip * add_movie_strip(Main *bmain, Scene *scene, ListBase *seqbase, LoadData *load_data)
void add_load_data_init(LoadData *load_data, const char *name, const char *path, const int start_frame, const int channel)
StripElem * render_give_stripelem(const Scene *scene, const Strip *strip, int timeline_frame)
int effect_get_num_inputs(int strip_type)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, 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)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_function_flag(FunctionRNA *func, int flag)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_api_strip(StructRNA *srna)
void RNA_api_strip_retiming_keys(BlenderRNA *brna)
void RNA_api_strips(StructRNA *srna, const bool metastrip)
void RNA_api_strip_elements(BlenderRNA *brna, PropertyRNA *cprop)
ColorManagedViewSettings view_settings
eSeqImageFitMethod fit_method
struct blender::seq::LoadData::@122240022272052120321215271261271275102156175102 effect
struct blender::seq::LoadData::@040370310161133255324147242161304341014322202023 image
void WM_main_add_notifier(uint type, void *reference)