Blender  V2.93
sequencer.c File Reference
#include "MEM_guardedalloc.h"
#include "DNA_anim_types.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BKE_animsys.h"
#include "BKE_fcurve.h"
#include "BKE_idprop.h"
#include "BKE_lib_id.h"
#include "BKE_sound.h"
#include "DEG_depsgraph.h"
#include "IMB_colormanagement.h"
#include "IMB_imbuf.h"
#include "SEQ_effects.h"
#include "SEQ_iterator.h"
#include "SEQ_modifier.h"
#include "SEQ_relations.h"
#include "SEQ_select.h"
#include "SEQ_sequencer.h"
#include "SEQ_utils.h"
#include "image_cache.h"
#include "prefetch.h"
#include "sequencer.h"
#include "utils.h"

Go to the source code of this file.

Functions

Allocate / Free Functions
static Stripseq_strip_alloc (int type)
 
static void seq_free_strip (Strip *strip)
 
SequenceSEQ_sequence_alloc (ListBase *lb, int timeline_frame, int machine, int type)
 
static void seq_sequence_free_ex (Scene *scene, Sequence *seq, const bool do_cache, const bool do_id_user, const bool do_clean_animdata)
 
void SEQ_sequence_free (Scene *scene, Sequence *seq, const bool do_clean_animdata)
 
void seq_free_sequence_recurse (Scene *scene, Sequence *seq, const bool do_id_user)
 
EditingSEQ_editing_get (Scene *scene, bool alloc)
 
EditingSEQ_editing_ensure (Scene *scene)
 
void SEQ_editing_free (Scene *scene, const bool do_id_user)
 
static void seq_new_fix_links_recursive (Sequence *seq)
 
SequencerToolSettingsSEQ_tool_settings_init (void)
 
SequencerToolSettingsSEQ_tool_settings_ensure (Scene *scene)
 
void SEQ_tool_settings_free (SequencerToolSettings *tool_settings)
 
eSeqImageFitMethod SEQ_tool_settings_fit_method_get (Scene *scene)
 
void SEQ_tool_settings_fit_method_set (Scene *scene, eSeqImageFitMethod fit_method)
 
ListBaseSEQ_active_seqbase_get (const Editing *ed)
 
void SEQ_seqbase_active_set (Editing *ed, ListBase *seqbase)
 
MetaStackSEQ_meta_stack_alloc (Editing *ed, Sequence *seq_meta)
 
void SEQ_meta_stack_free (Editing *ed, MetaStack *ms)
 
MetaStackSEQ_meta_stack_active_get (const Editing *ed)
 

Duplicate Functions

#define SEQ_RNAPATH_MAXSTR   ((30 + 2 + (SEQ_NAME_MAXSTR * 2) + 2) + 1)
 
static void seq_free_animdata (Scene *scene, Sequence *seq)
 
static Sequenceseq_dupli (const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Sequence *seq, int dupe_flag, const int flag)
 
static Sequencesequence_dupli_recursive_do (const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Sequence *seq, const int dupe_flag)
 
SequenceSEQ_sequence_dupli_recursive (const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Sequence *seq, int dupe_flag)
 
void SEQ_sequence_base_dupli_recursive (const Scene *scene_src, Scene *scene_dst, ListBase *nseqbase, const ListBase *seqbase, int dupe_flag, const int flag)
 
static size_t sequencer_rna_path_prefix (char str[SEQ_RNAPATH_MAXSTR], const char *name)
 
void SEQ_offset_animdata (Scene *scene, Sequence *seq, int ofs)
 
void SEQ_dupe_animdata (Scene *scene, const char *name_src, const char *name_dst)
 
SequencerToolSettingsSEQ_tool_settings_copy (SequencerToolSettings *tool_settings)
 

Macro Definition Documentation

◆ SEQ_RNAPATH_MAXSTR

#define SEQ_RNAPATH_MAXSTR   ((30 + 2 + (SEQ_NAME_MAXSTR * 2) + 2) + 1)

Definition at line 608 of file sequencer.c.

Function Documentation

◆ SEQ_active_seqbase_get()

ListBase* SEQ_active_seqbase_get ( const Editing ed)

◆ SEQ_dupe_animdata()

void SEQ_dupe_animdata ( Scene scene,
const char *  name_src,
const char *  name_dst 
)

◆ seq_dupli()

static Sequence* seq_dupli ( const Scene scene_src,
Scene scene_dst,
ListBase new_seq_list,
Sequence seq,
int  dupe_flag,
const int  flag 
)
static

◆ SEQ_editing_ensure()

Editing* SEQ_editing_ensure ( Scene scene)

◆ SEQ_editing_free()

void SEQ_editing_free ( Scene scene,
const bool  do_id_user 
)

◆ SEQ_editing_get()

Editing* SEQ_editing_get ( Scene scene,
bool  alloc 
)

Definition at line 232 of file sequencer.c.

References Scene::ed, scene, and SEQ_editing_ensure().

Referenced by animchan_sync_fcurve_scene(), blo_do_versions_290(), blender::ed::outliner::TreeDisplaySequencer::buildTree(), createTransSeqData(), do_versions_after_linking_290(), draw_timeline_seq(), ED_imbuf_sample_poll(), ED_sequencer_deselect_all(), ED_sequencer_select_sequence_single(), find_nearest_seq(), find_neighboring_sequence(), find_next_prev_sequence(), flushTransSeq(), freeSeqData(), proxy_endjob(), screen_ctx_selected_editable_sequences(), screen_ctx_selected_sequences(), screen_ctx_sequences(), select_linked_internal(), select_more_less_seq__internal(), seq_draw_sfra_efra(), SEQ_edit_move_strip_to_meta(), seq_effect_find_selected(), SEQ_get_seqbase_from_sequence(), seq_load_apply_generic_options(), seq_prefetch_frames(), seq_proxy_build_job(), SEQ_relations_check_scene_recursion(), seq_relations_find_and_invalidate_metas(), SEQ_relations_free_all_anim_ibufs(), SEQ_relations_update_changed_seq_and_deps(), SEQ_render_give_ibuf(), SEQ_select_active_get(), SEQ_select_active_get_pair(), SEQ_select_active_set(), SEQ_sort(), SEQ_time_find_next_prev_edit(), SEQ_time_update_sequence(), sequence_fn(), sequencer_add_duplicate_exec(), sequencer_add_effect_strip_exec(), sequencer_add_image_strip_exec(), sequencer_add_mask_strip_exec(), sequencer_add_movie_multiple_strips(), sequencer_add_movie_single_strip(), sequencer_add_movieclip_strip_exec(), sequencer_add_scene_strip_exec(), sequencer_add_sound_multiple_strips(), sequencer_add_sound_single_strip(), sequencer_box_select_exec(), sequencer_change_effect_input_exec(), sequencer_change_effect_type_exec(), sequencer_change_path_exec(), sequencer_copy_exec(), sequencer_de_select_all_exec(), sequencer_delete_exec(), sequencer_disable_one_time_properties(), sequencer_edit_poll(), sequencer_effect_poll(), sequencer_enable_proxies_exec(), sequencer_export_subtitles_exec(), sequencer_gap_insert_exec(), sequencer_gap_remove_exec(), sequencer_generic_invoke_xy_guess_channel(), sequencer_lock_exec(), sequencer_meta_make_exec(), sequencer_meta_separate_exec(), sequencer_meta_toggle_exec(), sequencer_mute_exec(), sequencer_offset_clear_exec(), sequencer_paste_exec(), sequencer_rebuild_proxy_exec(), sequencer_refresh_all_exec(), sequencer_reload_exec(), sequencer_select_exec(), sequencer_select_grouped_exec(), sequencer_select_handles_exec(), sequencer_select_inverse_exec(), sequencer_select_side_exec(), sequencer_select_side_of_frame_exec(), sequencer_separate_images_exec(), sequencer_set_range_to_strips_exec(), sequencer_slip_exec(), sequencer_slip_invoke(), sequencer_slip_modal(), sequencer_slip_recursively(), sequencer_snap_exec(), sequencer_split_exec(), sequencer_strip_has_path_poll(), sequencer_strip_is_text_poll(), sequencer_strip_transform_clear_exec(), sequencer_strip_transform_fit_exec(), sequencer_swap_exec(), sequencer_unlock_exec(), sequencer_unmute_exec(), sequencer_view_all_exec(), sequencer_view_preview_poll(), sequencer_view_selected_exec(), skip_fcurve_selected_data(), strip_modifier_active_poll(), tree_element_sequence_activate(), and tree_element_sequence_dup_activate().

◆ seq_free_animdata()

static void seq_free_animdata ( Scene scene,
Sequence seq 
)
static

◆ seq_free_sequence_recurse()

void seq_free_sequence_recurse ( Scene scene,
Sequence seq,
const bool  do_id_user 
)

◆ seq_free_strip()

static void seq_free_strip ( Strip strip)
static

◆ SEQ_meta_stack_active_get()

MetaStack* SEQ_meta_stack_active_get ( const Editing ed)

Get MetaStack that corresponds to current level that is being viewed

Parameters
edsequence editor data
Returns
pointer to meta stack

Definition at line 405 of file sequencer.c.

References ListBase::last, and Editing::metastack.

Referenced by SEQ_time_update_sequence(), seq_update_meta_disp_range(), and sequencer_meta_toggle_exec().

◆ SEQ_meta_stack_alloc()

MetaStack* SEQ_meta_stack_alloc ( Editing ed,
Sequence seq_meta 
)

Create and initialize MetaStack, append it to ed->metastack ListBase

Parameters
edsequence editor data
seq_metameta strip
Returns
pointer to created meta stack

Definition at line 377 of file sequencer.c.

References BLI_addtail(), copy_v2_v2_int(), MetaStack::disp_range, MEM_mallocN, Editing::metastack, MetaStack::oldbasep, MetaStack::parseq, Editing::seqbasep, and Sequence::startdisp.

Referenced by sequencer_meta_toggle_exec().

◆ SEQ_meta_stack_free()

void SEQ_meta_stack_free ( Editing ed,
MetaStack ms 
)

Free MetaStack and remove it from ed->metastack ListBase.

Parameters
edsequence editor data
msmeta stack

Definition at line 393 of file sequencer.c.

References BLI_remlink(), MEM_freeN, and Editing::metastack.

Referenced by sequencer_meta_toggle_exec().

◆ seq_new_fix_links_recursive()

static void seq_new_fix_links_recursive ( Sequence seq)
static

◆ SEQ_offset_animdata()

void SEQ_offset_animdata ( Scene scene,
Sequence seq,
int  ofs 
)

◆ SEQ_seqbase_active_set()

void SEQ_seqbase_active_set ( Editing ed,
ListBase seqbase 
)

Set seqbase that is being viewed currently. This can be main seqbase or meta strip seqbase

Parameters
edsequence editor data
seqbaseListBase with strips

Definition at line 365 of file sequencer.c.

References Editing::seqbasep.

Referenced by seq_update_meta_disp_range(), and sequencer_meta_toggle_exec().

◆ SEQ_sequence_alloc()

Sequence* SEQ_sequence_alloc ( ListBase lb,
int  timeline_frame,
int  machine,
int  type 
)

◆ SEQ_sequence_base_dupli_recursive()

void SEQ_sequence_base_dupli_recursive ( const Scene scene_src,
Scene scene_dst,
ListBase nseqbase,
const ListBase seqbase,
int  dupe_flag,
const int  flag 
)

◆ SEQ_sequence_dupli_recursive()

Sequence* SEQ_sequence_dupli_recursive ( const Scene scene_src,
Scene scene_dst,
ListBase new_seq_list,
Sequence seq,
int  dupe_flag 
)

◆ SEQ_sequence_free()

void SEQ_sequence_free ( Scene scene,
Sequence seq,
const bool  do_clean_animdata 
)

Definition at line 213 of file sequencer.c.

References scene, and seq_sequence_free_ex().

Referenced by SEQ_edit_remove_flagged_sequences(), and sequencer_separate_images_exec().

◆ seq_sequence_free_ex()

static void seq_sequence_free_ex ( Scene scene,
Sequence seq,
const bool  do_cache,
const bool  do_id_user,
const bool  do_clean_animdata 
)
static

◆ seq_strip_alloc()

static Strip* seq_strip_alloc ( int  type)
static

◆ SEQ_tool_settings_copy()

SequencerToolSettings* SEQ_tool_settings_copy ( SequencerToolSettings tool_settings)

Definition at line 719 of file sequencer.c.

References MEM_dupallocN.

Referenced by BKE_toolsettings_copy().

◆ SEQ_tool_settings_ensure()

SequencerToolSettings* SEQ_tool_settings_ensure ( Scene scene)

◆ SEQ_tool_settings_fit_method_get()

eSeqImageFitMethod SEQ_tool_settings_fit_method_get ( Scene scene)

◆ SEQ_tool_settings_fit_method_set()

void SEQ_tool_settings_fit_method_set ( Scene scene,
eSeqImageFitMethod  fit_method 
)

◆ SEQ_tool_settings_free()

void SEQ_tool_settings_free ( SequencerToolSettings tool_settings)

Definition at line 327 of file sequencer.c.

References MEM_freeN.

Referenced by BKE_toolsettings_free().

◆ SEQ_tool_settings_init()

SequencerToolSettings* SEQ_tool_settings_init ( void  )

◆ sequence_dupli_recursive_do()

static Sequence* sequence_dupli_recursive_do ( const Scene scene_src,
Scene scene_dst,
ListBase new_seq_list,
Sequence seq,
const int  dupe_flag 
)
static

◆ sequencer_rna_path_prefix()

static size_t sequencer_rna_path_prefix ( char  str[SEQ_RNAPATH_MAXSTR],
const char *  name 
)
static