Blender V4.3
sequence_lookup.cc File Reference
#include "SEQ_sequencer.hh"
#include "sequencer.hh"
#include "DNA_listBase.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_sys_types.h"
#include "BLI_vector_set.hh"
#include <cstring>
#include <mutex>
#include "MEM_guardedalloc.h"

Go to the source code of this file.

Classes

struct  SequenceLookup
 

Functions

static void seq_sequence_lookup_append_effect (const Sequence *input, Sequence *effect, SequenceLookup *lookup)
 
static void seq_sequence_lookup_build_effect (Sequence *seq, SequenceLookup *lookup)
 
static void seq_sequence_lookup_build_from_seqbase (Sequence *parent_meta, const ListBase *seqbase, SequenceLookup *lookup)
 
static void seq_sequence_lookup_build (const Scene *scene, SequenceLookup *lookup)
 
static SequenceLookupseq_sequence_lookup_new ()
 
static void seq_sequence_lookup_free (SequenceLookup **lookup)
 
static void seq_sequence_lookup_rebuild (const Scene *scene, SequenceLookup **lookup)
 
static void seq_sequence_lookup_update_if_needed (const Scene *scene, SequenceLookup **lookup)
 
void SEQ_sequence_lookup_free (const Scene *scene)
 
SequenceSEQ_sequence_lookup_seq_by_name (const Scene *scene, const char *key)
 
Sequenceseq_sequence_lookup_meta_by_seq (const Scene *scene, const Sequence *key)
 
blender::Span< Sequence * > seq_sequence_lookup_effects_by_seq (const Scene *scene, const Sequence *key)
 
SequenceSEQ_sequence_lookup_owner_by_channel (const Scene *scene, const SeqTimelineChannel *channel)
 
void SEQ_sequence_lookup_invalidate (const Scene *scene)
 

Variables

static std::mutex lookup_lock
 

Function Documentation

◆ seq_sequence_lookup_append_effect()

static void seq_sequence_lookup_append_effect ( const Sequence * input,
Sequence * effect,
SequenceLookup * lookup )
static

Definition at line 36 of file sequence_lookup.cc.

Referenced by seq_sequence_lookup_build_effect().

◆ seq_sequence_lookup_build()

static void seq_sequence_lookup_build ( const Scene * scene,
SequenceLookup * lookup )
static

◆ seq_sequence_lookup_build_effect()

static void seq_sequence_lookup_build_effect ( Sequence * seq,
SequenceLookup * lookup )
static

◆ seq_sequence_lookup_build_from_seqbase()

static void seq_sequence_lookup_build_from_seqbase ( Sequence * parent_meta,
const ListBase * seqbase,
SequenceLookup * lookup )
static

◆ seq_sequence_lookup_effects_by_seq()

blender::Span< Sequence * > seq_sequence_lookup_effects_by_seq ( const Scene * scene,
const Sequence * key )

Find effect strips, that use strip seq as one of inputs. If lookup hash doesn't exist, it will be created. If hash is tagged as invalid, it will be rebuilt.

Parameters
scenescene that owns lookup hash
keypointer to Sequence inside of meta strip
Returns
collection of effect strips

Definition at line 144 of file sequence_lookup.cc.

References BLI_assert, lock, lookup_lock, and seq_sequence_lookup_update_if_needed().

Referenced by SEQ_retiming_key_timeline_frame_set(), SEQ_retiming_reset(), SEQ_time_left_handle_frame_set(), SEQ_time_right_handle_frame_set(), seq_time_slip_strip_ex(), SEQ_time_start_frame_set(), seq_time_translate_handles(), seq_time_update_effects_strip_range(), SEQ_time_update_meta_strip_range(), and SEQ_transform_translate_sequence().

◆ SEQ_sequence_lookup_free()

void SEQ_sequence_lookup_free ( const Scene * scene)

Free lookup hash data.

Parameters
scenescene that owns lookup hash

Definition at line 118 of file sequence_lookup.cc.

References BLI_assert, lock, lookup_lock, and seq_sequence_lookup_free().

Referenced by SEQ_editing_free().

◆ seq_sequence_lookup_free()

static void seq_sequence_lookup_free ( SequenceLookup ** lookup)
static

Definition at line 93 of file sequence_lookup.cc.

Referenced by SEQ_sequence_lookup_free(), and seq_sequence_lookup_rebuild().

◆ SEQ_sequence_lookup_invalidate()

void SEQ_sequence_lookup_invalidate ( const Scene * scene)

Mark sequence lookup as invalid (i.e. will need rebuilding).

Definition at line 165 of file sequence_lookup.cc.

References lock, and lookup_lock.

Referenced by seq_add_generic_update(), SEQ_edit_remove_flagged_sequences(), SEQ_edit_sequence_name_set(), sequencer_meta_make_exec(), and sequencer_reassign_inputs_exec().

◆ seq_sequence_lookup_meta_by_seq()

Sequence * seq_sequence_lookup_meta_by_seq ( const Scene * scene,
const Sequence * key )

Find meta strip, that contains strip key. If lookup hash doesn't exist, it will be created. If hash is tagged as invalid, it will be rebuilt.

Parameters
scenescene that owns lookup hash
keypointer to Sequence inside of meta strip
Returns
pointer to meta strip

Definition at line 135 of file sequence_lookup.cc.

References BLI_assert, lock, lookup_lock, and seq_sequence_lookup_update_if_needed().

Referenced by seq_add_generic_update(), SEQ_get_seqbase_by_seq(), seq_meta_stack_alloc(), SEQ_meta_stack_set(), SEQ_retiming_key_timeline_frame_set(), seq_retiming_range_data_get(), SEQ_retiming_reset(), SEQ_sound_pitch_get(), SEQ_time_left_handle_frame_set(), SEQ_time_right_handle_frame_set(), SEQ_time_start_frame_set(), seq_time_translate_handles(), SEQ_time_update_meta_strip_range(), and SEQ_transform_translate_sequence().

◆ seq_sequence_lookup_new()

static SequenceLookup * seq_sequence_lookup_new ( )
static

Definition at line 87 of file sequence_lookup.cc.

Referenced by seq_sequence_lookup_rebuild().

◆ SEQ_sequence_lookup_owner_by_channel()

Sequence * SEQ_sequence_lookup_owner_by_channel ( const Scene * scene,
const SeqTimelineChannel * channel )

Find which meta strip the given timeline channel belongs to. Returns nullptr if it is a global channel.

Definition at line 155 of file sequence_lookup.cc.

References BLI_assert, lock, lookup_lock, and seq_sequence_lookup_update_if_needed().

◆ seq_sequence_lookup_rebuild()

static void seq_sequence_lookup_rebuild ( const Scene * scene,
SequenceLookup ** lookup )
static

◆ SEQ_sequence_lookup_seq_by_name()

Sequence * SEQ_sequence_lookup_seq_by_name ( const Scene * scene,
const char * key )

Find a sequence with a given name. If lookup hash doesn't exist, it will be created. If hash is tagged as invalid, it will be rebuilt.

Parameters
scenescene that owns lookup hash
keySequence name without SQ prefix (seq->name + 2)
Returns
pointer to Sequence

Definition at line 126 of file sequence_lookup.cc.

References BLI_assert, lock, lookup_lock, and seq_sequence_lookup_update_if_needed().

◆ seq_sequence_lookup_update_if_needed()

static void seq_sequence_lookup_update_if_needed ( const Scene * scene,
SequenceLookup ** lookup )
static

Variable Documentation

◆ lookup_lock