Changeset View
Changeset View
Standalone View
Standalone View
source/blender/sequencer/intern/strip_add.c
| Show First 20 Lines • Show All 94 Lines • ▼ Show 20 Lines | void SEQ_add_load_data_init(SeqLoadData *load_data, | ||||
| } | } | ||||
| load_data->start_frame = start_frame; | load_data->start_frame = start_frame; | ||||
| load_data->channel = channel; | load_data->channel = channel; | ||||
| } | } | ||||
| static void seq_add_generic_update(Scene *scene, ListBase *seqbase, Sequence *seq) | static void seq_add_generic_update(Scene *scene, ListBase *seqbase, Sequence *seq) | ||||
| { | { | ||||
| SEQ_sequence_base_unique_name_recursive(scene, &scene->ed->seqbase, seq); | SEQ_sequence_base_unique_name_recursive(scene, &scene->ed->seqbase, seq); | ||||
| SEQ_time_update_sequence_bounds(scene, seq); | SEQ_time_update_sequence(scene, seqbase, seq); | ||||
| SEQ_sort(seqbase); | SEQ_sort(seqbase); | ||||
| SEQ_relations_invalidate_cache_composite(scene, seq); | SEQ_relations_invalidate_cache_composite(scene, seq); | ||||
| } | } | ||||
| static void seq_add_set_name(Scene *scene, Sequence *seq, SeqLoadData *load_data) | static void seq_add_set_name(Scene *scene, Sequence *seq, SeqLoadData *load_data) | ||||
| { | { | ||||
| if (load_data->name[0] != '\0') { | if (load_data->name[0] != '\0') { | ||||
| SEQ_edit_sequence_name_set(scene, seq, load_data->name); | SEQ_edit_sequence_name_set(scene, seq, load_data->name); | ||||
| ▲ Show 20 Lines • Show All 355 Lines • ▼ Show 20 Lines | Sequence *seqm = SEQ_sequence_alloc( | ||||
| seqbase, load_data->start_frame, load_data->channel, SEQ_TYPE_META); | seqbase, load_data->start_frame, load_data->channel, SEQ_TYPE_META); | ||||
| /* Set name. */ | /* Set name. */ | ||||
| seq_add_set_name(scene, seqm, load_data); | seq_add_set_name(scene, seqm, load_data); | ||||
| /* Set frames start and length. */ | /* Set frames start and length. */ | ||||
| seqm->start = load_data->start_frame; | seqm->start = load_data->start_frame; | ||||
| seqm->len = 1; | seqm->len = 1; | ||||
| SEQ_time_update_sequence(scene, seqm); | SEQ_time_update_sequence(scene, seqbase, seqm); | ||||
| return seqm; | return seqm; | ||||
| } | } | ||||
| /** | /** | ||||
| * Add movie strip. | * Add movie strip. | ||||
| * | * | ||||
| * \param main: Main reference | * \param main: Main reference | ||||
| ▲ Show 20 Lines • Show All 155 Lines • ▼ Show 20 Lines | if (ELEM(seq->type, | ||||
| SEQ_TYPE_META, | SEQ_TYPE_META, | ||||
| SEQ_TYPE_MOVIECLIP, | SEQ_TYPE_MOVIECLIP, | ||||
| SEQ_TYPE_MASK) == 0) { | SEQ_TYPE_MASK) == 0) { | ||||
| return; | return; | ||||
| } | } | ||||
| if (lock_range) { | if (lock_range) { | ||||
| /* keep so we don't have to move the actual start and end points (only the data) */ | /* keep so we don't have to move the actual start and end points (only the data) */ | ||||
| SEQ_time_update_sequence_bounds(scene, seq); | Editing *ed = SEQ_editing_get(scene); | ||||
| ListBase *seqbase = SEQ_get_seqbase_by_seq(&ed->seqbase, seq); | |||||
| SEQ_time_update_sequence(scene, seqbase, seq); | |||||
| prev_startdisp = seq->startdisp; | prev_startdisp = seq->startdisp; | ||||
| prev_enddisp = seq->enddisp; | prev_enddisp = seq->enddisp; | ||||
| } | } | ||||
| switch (seq->type) { | switch (seq->type) { | ||||
| case SEQ_TYPE_IMAGE: { | case SEQ_TYPE_IMAGE: { | ||||
| /* Hack? */ | /* Hack? */ | ||||
| size_t olen = MEM_allocN_len(seq->strip->stripdata) / sizeof(StripElem); | size_t olen = MEM_allocN_len(seq->strip->stripdata) / sizeof(StripElem); | ||||
| ▲ Show 20 Lines • Show All 133 Lines • ▼ Show 20 Lines | #endif | ||||
| free_proxy_seq(seq); | free_proxy_seq(seq); | ||||
| if (lock_range) { | if (lock_range) { | ||||
| SEQ_transform_set_left_handle_frame(seq, prev_startdisp); | SEQ_transform_set_left_handle_frame(seq, prev_startdisp); | ||||
| SEQ_transform_set_right_handle_frame(seq, prev_enddisp); | SEQ_transform_set_right_handle_frame(seq, prev_enddisp); | ||||
| SEQ_transform_fix_single_image_seq_offsets(seq); | SEQ_transform_fix_single_image_seq_offsets(seq); | ||||
| } | } | ||||
| SEQ_time_update_sequence(scene, seq); | ListBase *seqbase = SEQ_active_seqbase_get(SEQ_editing_get(scene)); | ||||
| SEQ_time_update_sequence(scene, seqbase, seq); | |||||
| } | } | ||||
| void SEQ_add_movie_reload_if_needed(struct Main *bmain, | void SEQ_add_movie_reload_if_needed(struct Main *bmain, | ||||
| struct Scene *scene, | struct Scene *scene, | ||||
| struct Sequence *seq, | struct Sequence *seq, | ||||
| bool *r_was_reloaded, | bool *r_was_reloaded, | ||||
| bool *r_can_produce_frames) | bool *r_can_produce_frames) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 51 Lines • Show Last 20 Lines | |||||