Blender V4.3
utils.cc File Reference
#include <algorithm>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_blenlib.h"
#include "BLI_vector_set.hh"
#include "BLT_translation.hh"
#include "BKE_animsys.h"
#include "BKE_image.hh"
#include "BKE_main.hh"
#include "BKE_scene.hh"
#include "SEQ_channels.hh"
#include "SEQ_edit.hh"
#include "SEQ_iterator.hh"
#include "SEQ_relations.hh"
#include "SEQ_render.hh"
#include "SEQ_select.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_utils.hh"
#include "IMB_imbuf.hh"
#include "IMB_imbuf_types.hh"
#include "multiview.hh"
#include "proxy.hh"
#include "sequencer.hh"
#include "utils.hh"

Go to the source code of this file.

Classes

struct  SeqUniqueInfo
 

Functions

static void seqbase_unique_name (ListBase *seqbasep, SeqUniqueInfo *sui)
 
static bool seqbase_unique_name_recursive_fn (Sequence *seq, void *arg_pt)
 
void SEQ_sequence_base_unique_name_recursive (Scene *scene, ListBase *seqbasep, Sequence *seq)
 
static const char * give_seqname_by_type (int type)
 
const char * SEQ_sequence_give_name (const Sequence *seq)
 
ListBaseSEQ_get_seqbase_from_sequence (Sequence *seq, ListBase **r_channels, int *r_offset)
 
static void open_anim_filepath (Sequence *seq, StripAnim *sanim, const char *filepath, bool openfile)
 
static bool use_proxy (Editing *ed, Sequence *seq)
 
static void proxy_dir_get (Editing *ed, Sequence *seq, size_t str_len, char *r_proxy_dirpath)
 
static void index_dir_set (Editing *ed, Sequence *seq, StripAnim *sanim)
 
static bool open_anim_file_multiview (Scene *scene, Sequence *seq, const char *filepath)
 
void seq_open_anim_file (Scene *scene, Sequence *seq, bool openfile)
 
const SequenceSEQ_get_topmost_sequence (const Scene *scene, int frame)
 
ListBaseSEQ_get_seqbase_by_seq (const Scene *scene, Sequence *seq)
 
SequenceSEQ_sequence_from_strip_elem (ListBase *seqbase, StripElem *se)
 
SequenceSEQ_get_sequence_by_name (ListBase *seqbase, const char *name, bool recursive)
 
MaskSEQ_active_mask_get (Scene *scene)
 
void SEQ_alpha_mode_from_file_extension (Sequence *seq)
 
bool SEQ_sequence_has_valid_data (const Sequence *seq)
 
bool sequencer_seq_generates_image (Sequence *seq)
 
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)
 
void SEQ_ensure_unique_name (Sequence *seq, Scene *scene)
 

Function Documentation

◆ give_seqname_by_type()

◆ index_dir_set()

static void index_dir_set ( Editing * ed,
Sequence * seq,
StripAnim * sanim )
static

◆ open_anim_file_multiview()

◆ open_anim_filepath()

static void open_anim_filepath ( Sequence * seq,
StripAnim * sanim,
const char * filepath,
bool openfile )
static

◆ proxy_dir_get()

static void proxy_dir_get ( Editing * ed,
Sequence * seq,
size_t str_len,
char * r_proxy_dirpath )
static

◆ SEQ_active_mask_get()

Mask * SEQ_active_mask_get ( Scene * scene)

◆ SEQ_alpha_mode_from_file_extension()

void SEQ_alpha_mode_from_file_extension ( Sequence * seq)

◆ SEQ_ensure_unique_name()

void SEQ_ensure_unique_name ( Sequence * seq,
Scene * scene )

Ensure, that provided Sequence has unique name. If animation data exists for this Sequence, it will be duplicated and mapped onto new name

Parameters
seqSequence which name will be ensured to be unique
sceneScene in which name must be unique

Definition at line 497 of file sequencer/intern/utils.cc.

References BKE_animdata_fix_paths_rename(), LISTBASE_FOREACH, Sequence::name, SEQ_ensure_unique_name(), SEQ_NAME_MAXSTR, SEQ_sequence_base_unique_name_recursive(), SEQ_TYPE_META, Sequence::seqbase, STRNCPY_UTF8, and Sequence::type.

Referenced by SEQ_edit_strip_split(), SEQ_ensure_unique_name(), sequencer_add_duplicate_exec(), and sequencer_clipboard_paste_exec().

◆ SEQ_get_seqbase_by_seq()

ListBase * SEQ_get_seqbase_by_seq ( const Scene * scene,
Sequence * seq )

In cases where we don't know the sequence's listbase.

Definition at line 364 of file sequencer/intern/utils.cc.

References BLI_findindex(), SEQ_editing_get(), seq_sequence_lookup_meta_by_seq(), Editing::seqbase, and Sequence::seqbase.

Referenced by do_adjustment_impl(), do_multicam(), and SEQ_edit_move_strip_to_meta().

◆ SEQ_get_seqbase_from_sequence()

◆ SEQ_get_sequence_by_name()

Sequence * SEQ_get_sequence_by_name ( ListBase * seqbase,
const char * name,
bool recursive )

◆ SEQ_get_topmost_sequence()

◆ seq_open_anim_file()

◆ SEQ_sequence_base_unique_name_recursive()

◆ SEQ_sequence_from_strip_elem()

Sequence * SEQ_sequence_from_strip_elem ( ListBase * seqbase,
StripElem * se )

Only use as last resort when the StripElem is available but no the Sequence. (needed for RNA)

Definition at line 379 of file sequencer/intern/utils.cc.

References ARRAY_HAS_ITEM, ListBase::first, Sequence::len, Sequence::next, SEQ_sequence_from_strip_elem(), Sequence::seqbase, Sequence::strip, and Strip::stripdata.

Referenced by SEQ_sequence_from_strip_elem().

◆ SEQ_sequence_give_name()

const char * SEQ_sequence_give_name ( const Sequence * seq)

◆ SEQ_sequence_has_valid_data()

bool SEQ_sequence_has_valid_data ( const Sequence * seq)

Check if an input referenced by this strip is valid (e.g. scene for a scene strip). Note that this only checks data block references, for missing media referenced by paths use #media_presence_is_missing.

Definition at line 435 of file sequencer/intern/utils.cc.

References Sequence::clip, Sequence::mask, Sequence::scene, SEQ_TYPE_MASK, SEQ_TYPE_MOVIECLIP, SEQ_TYPE_SCENE, SEQ_TYPE_SOUND_RAM, Sequence::sound, and Sequence::type.

Referenced by drawmeta_contents(), skip_modifier(), and strip_draw_context_get().

◆ SEQ_set_scale_to_fit()

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 )

◆ seqbase_unique_name()

◆ seqbase_unique_name_recursive_fn()

static bool seqbase_unique_name_recursive_fn ( Sequence * seq,
void * arg_pt )
static

◆ sequencer_seq_generates_image()

◆ use_proxy()