Blender V4.3
strip_relations.cc File Reference
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_math_base.h"
#include "BLI_session_uid.h"
#include "BKE_main.hh"
#include "BKE_report.hh"
#include "DEG_depsgraph.hh"
#include "IMB_imbuf.hh"
#include "SEQ_iterator.hh"
#include "SEQ_prefetch.hh"
#include "SEQ_relations.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_utils.hh"
#include "effects.hh"
#include "image_cache.hh"
#include "utils.hh"

Go to the source code of this file.

Functions

bool SEQ_relation_is_effect_of_strip (const Sequence *effect, const Sequence *input)
 
static bool seq_relations_check_depend (const Scene *scene, Sequence *seq, Sequence *cur)
 
static void sequence_do_invalidate_dependent (Scene *scene, Sequence *seq, ListBase *seqbase)
 
static void sequence_invalidate_cache (Scene *scene, Sequence *seq, bool invalidate_self, int invalidate_types)
 
static bool seq_relations_find_and_invalidate_metas (Scene *scene, Sequence *invalidated_seq, Sequence *meta_seq)
 
void SEQ_relations_invalidate_cache_in_range (Scene *scene, Sequence *seq, Sequence *range_mask, int invalidate_types)
 
void SEQ_relations_invalidate_cache_raw (Scene *scene, Sequence *seq)
 
void SEQ_relations_invalidate_cache_preprocessed (Scene *scene, Sequence *seq)
 
void SEQ_relations_invalidate_cache_composite (Scene *scene, Sequence *seq)
 
void SEQ_relations_invalidate_dependent (Scene *scene, Sequence *seq)
 
static void invalidate_scene_strips (Scene *scene, Scene *scene_target, ListBase *seqbase)
 
void SEQ_relations_invalidate_scene_strips (Main *bmain, Scene *scene_target)
 
static void invalidate_movieclip_strips (Scene *scene, MovieClip *clip_target, ListBase *seqbase)
 
void SEQ_relations_invalidate_movieclip_strips (Main *bmain, MovieClip *clip_target)
 
void SEQ_relations_free_imbuf (Scene *scene, ListBase *seqbase, bool for_render)
 
static void sequencer_all_free_anim_ibufs (const Scene *scene, ListBase *seqbase, int timeline_frame, const int frame_range[2])
 
void SEQ_relations_free_all_anim_ibufs (Scene *scene, int timeline_frame)
 
static Sequencesequencer_check_scene_recursion (Scene *scene, ListBase *seqbase)
 
bool SEQ_relations_check_scene_recursion (Scene *scene, ReportList *reports)
 
bool SEQ_relations_render_loop_check (Sequence *seq_main, Sequence *seq)
 
void SEQ_relations_sequence_free_anim (Sequence *seq)
 
void SEQ_relations_session_uid_generate (Sequence *sequence)
 
static bool get_uids_cb (Sequence *seq, void *user_data)
 
void SEQ_relations_check_uids_unique_and_report (const Scene *scene)
 
SequenceSEQ_find_metastrip_by_sequence (ListBase *seqbase, Sequence *meta, Sequence *seq)
 
bool SEQ_exists_in_seqbase (const Sequence *seq, const ListBase *seqbase)
 

Function Documentation

◆ get_uids_cb()

static bool get_uids_cb ( Sequence * seq,
void * user_data )
static

◆ invalidate_movieclip_strips()

static void invalidate_movieclip_strips ( Scene * scene,
MovieClip * clip_target,
ListBase * seqbase )
static

◆ invalidate_scene_strips()

static void invalidate_scene_strips ( Scene * scene,
Scene * scene_target,
ListBase * seqbase )
static

◆ SEQ_exists_in_seqbase()

bool SEQ_exists_in_seqbase ( const Sequence * seq,
const ListBase * seqbase )

◆ SEQ_find_metastrip_by_sequence()

Sequence * SEQ_find_metastrip_by_sequence ( ListBase * seqbase,
Sequence * meta,
Sequence * seq )

Return immediate parent meta of sequence.

Definition at line 448 of file strip_relations.cc.

References LISTBASE_FOREACH, and SEQ_find_metastrip_by_sequence().

Referenced by do_adjustment_impl(), and SEQ_find_metastrip_by_sequence().

◆ SEQ_relation_is_effect_of_strip()

bool SEQ_relation_is_effect_of_strip ( const Sequence * effect,
const Sequence * input )

◆ seq_relations_check_depend()

◆ SEQ_relations_check_scene_recursion()

◆ SEQ_relations_check_uids_unique_and_report()

void SEQ_relations_check_uids_unique_and_report ( const Scene * scene)

A debug and development function which checks whether sequences have unique UIDs. Errors will be reported to the console.

Definition at line 434 of file strip_relations.cc.

References BLI_gset_free(), BLI_gset_new(), BLI_session_uid_ghash_compare(), BLI_session_uid_ghash_hash(), get_uids_cb(), and SEQ_for_each_callback().

◆ seq_relations_find_and_invalidate_metas()

◆ SEQ_relations_free_all_anim_ibufs()

void SEQ_relations_free_all_anim_ibufs ( Scene * scene,
int timeline_frame )

Release FFmpeg handles of strips that are not currently displayed to minimize memory usage.

Definition at line 308 of file strip_relations.cc.

References MAXFRAME, SEQ_editing_get(), Editing::seqbase, and sequencer_all_free_anim_ibufs().

Referenced by SEQ_render_give_ibuf().

◆ SEQ_relations_free_imbuf()

◆ SEQ_relations_invalidate_cache_composite()

◆ SEQ_relations_invalidate_cache_in_range()

void SEQ_relations_invalidate_cache_in_range ( Scene * scene,
Sequence * seq,
Sequence * range_mask,
int invalidate_types )

◆ SEQ_relations_invalidate_cache_preprocessed()

◆ SEQ_relations_invalidate_cache_raw()

◆ SEQ_relations_invalidate_dependent()

◆ SEQ_relations_invalidate_movieclip_strips()

void SEQ_relations_invalidate_movieclip_strips ( Main * bmain,
MovieClip * clip_target )

Definition at line 234 of file strip_relations.cc.

References ListBase::first, invalidate_movieclip_strips(), and Main::scenes.

◆ SEQ_relations_invalidate_scene_strips()

void SEQ_relations_invalidate_scene_strips ( Main * bmain,
Scene * scene_target )

◆ SEQ_relations_render_loop_check()

bool SEQ_relations_render_loop_check ( Sequence * seq_main,
Sequence * seq )

◆ SEQ_relations_sequence_free_anim()

◆ SEQ_relations_session_uid_generate()

void SEQ_relations_session_uid_generate ( Sequence * sequence)

Generate new UID for the given sequence.

Definition at line 411 of file strip_relations.cc.

References BLI_session_uid_generate(), Sequence::runtime, and SequenceRuntime::session_uid.

Referenced by seq_dupli(), seq_read_data_cb(), and SEQ_sequence_alloc().

◆ sequence_do_invalidate_dependent()

◆ sequence_invalidate_cache()

◆ sequencer_all_free_anim_ibufs()

◆ sequencer_check_scene_recursion()

static Sequence * sequencer_check_scene_recursion ( Scene * scene,
ListBase * seqbase )
static