Blender V4.3
strip_retiming.cc File Reference
#include "BLI_math_base.hh"
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_sequence_types.h"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_math_geom.h"
#include "BLI_math_vector.h"
#include "BLI_span.hh"
#include "BLI_vector.hh"
#include "BKE_sound.h"
#include "SEQ_iterator.hh"
#include "SEQ_retiming.hh"
#include "SEQ_sequencer.hh"
#include "SEQ_time.hh"
#include "SEQ_transform.hh"
#include "sequencer.hh"
#include "strip_time.hh"

Go to the source code of this file.

Classes

class  RetimingRange
 
class  RetimingRangeData
 

Enumerations

enum  eRangeType { LINEAR = 0 , TRANSITION = 1 }
 
enum  eIntersectType {
  FULL , PARTIAL_START , PARTIAL_END , INSIDE ,
  NONE
}
 

Functions

MutableSpan< SeqRetimingKeySEQ_retiming_keys_get (const Sequence *seq)
 
bool SEQ_retiming_is_last_key (const Sequence *seq, const SeqRetimingKey *key)
 
SeqRetimingKeySEQ_retiming_last_key_get (const Sequence *seq)
 
int SEQ_retiming_key_index_get (const Sequence *seq, const SeqRetimingKey *key)
 
SeqRetimingKeySEQ_retiming_key_get_by_timeline_frame (const Scene *scene, const Sequence *seq, const int timeline_frame)
 
SeqRetimingKeySEQ_retiming_find_segment_start_key (const Sequence *seq, float frame_index)
 
int SEQ_retiming_keys_count (const Sequence *seq)
 
void SEQ_retiming_data_ensure (Sequence *seq)
 
void SEQ_retiming_data_clear (Sequence *seq)
 
static void retiming_key_overlap (Scene *scene, Sequence *seq)
 
void SEQ_retiming_reset (Scene *scene, Sequence *seq)
 
bool SEQ_retiming_is_active (const Sequence *seq)
 
bool SEQ_retiming_data_is_editable (const Sequence *seq)
 
bool SEQ_retiming_is_allowed (const Sequence *seq)
 
static int seq_retiming_segment_length_get (const SeqRetimingKey *start_key)
 
static float seq_retiming_segment_step_get (const SeqRetimingKey *start_key)
 
static void seq_retiming_segment_as_line_segment (const SeqRetimingKey *start_key, double r_v1[2], double r_v2[2])
 
static void seq_retiming_line_segments_tangent_circle (const SeqRetimingKey *start_key, double r_center[2], double *radius)
 
bool SEQ_retiming_key_is_transition_type (const SeqRetimingKey *key)
 
bool SEQ_retiming_key_is_transition_start (const SeqRetimingKey *key)
 
SeqRetimingKeySEQ_retiming_transition_start_get (SeqRetimingKey *key)
 
bool SEQ_retiming_key_is_freeze_frame (const SeqRetimingKey *key)
 
static bool seq_retiming_transition_is_linear (const Sequence *seq, const SeqRetimingKey *key)
 
static float seq_retiming_evaluate_arc_segment (const SeqRetimingKey *key, const float frame_index)
 
float seq_retiming_evaluate (const Sequence *seq, const float frame_index)
 
static SeqRetimingKeyseq_retiming_add_key (const Scene *, Sequence *seq, float frame_index)
 
SeqRetimingKeySEQ_retiming_add_key (const Scene *scene, Sequence *seq, const int timeline_frame)
 
void SEQ_retiming_transition_key_frame_set (const Scene *scene, const Sequence *seq, SeqRetimingKey *key, const int timeline_frame)
 
static void seq_retiming_cleanup_freeze_frame (SeqRetimingKey *key)
 
void SEQ_retiming_remove_multiple_keys (Sequence *seq, blender::Vector< SeqRetimingKey * > &keys_to_remove)
 
static void seq_retiming_remove_key_ex (Sequence *seq, SeqRetimingKey *key)
 
static SeqRetimingKeyseq_retiming_remove_transition (const Scene *scene, Sequence *seq, SeqRetimingKey *key)
 
void SEQ_retiming_remove_key (const Scene *scene, Sequence *seq, SeqRetimingKey *key)
 
static float seq_retiming_clamp_create_offset (SeqRetimingKey *key, float offset)
 
SeqRetimingKeySEQ_retiming_add_freeze_frame (const Scene *scene, Sequence *seq, SeqRetimingKey *key, const int offset)
 
SeqRetimingKeySEQ_retiming_add_transition (const Scene *scene, Sequence *seq, SeqRetimingKey *key, float offset)
 
float SEQ_retiming_key_speed_get (const Sequence *seq, const SeqRetimingKey *key)
 
static RetimingRangeData seq_retiming_range_data_get (const Scene *scene, const Sequence *seq)
 
void SEQ_retiming_sound_animation_data_set (const Scene *scene, const Sequence *seq)
 
int SEQ_retiming_key_timeline_frame_get (const Scene *scene, const Sequence *seq, const SeqRetimingKey *key)
 
static int seq_retiming_clamp_transition_offset (SeqRetimingKey *start_key, int offset)
 
static void seq_retiming_transition_offset (const Scene *scene, Sequence *seq, SeqRetimingKey *key, const int offset)
 
static int seq_retiming_clamp_timeline_frame (const Scene *scene, Sequence *seq, SeqRetimingKey *key, const int timeline_frame)
 
static void seq_retiming_fix_transition (const Scene *scene, Sequence *seq, SeqRetimingKey *key)
 
static void seq_retiming_fix_transitions (const Scene *scene, Sequence *seq, SeqRetimingKey *key)
 
static void seq_retiming_key_offset (const Scene *scene, Sequence *seq, SeqRetimingKey *key, const int offset)
 
void SEQ_retiming_key_timeline_frame_set (const Scene *scene, Sequence *seq, SeqRetimingKey *key, const int timeline_frame)
 
void SEQ_retiming_key_speed_set (const Scene *scene, Sequence *seq, SeqRetimingKey *key, const float speed, bool keep_retiming)
 
bool SEQ_retiming_selection_clear (const Editing *ed)
 
void SEQ_retiming_selection_append (SeqRetimingKey *key)
 
void SEQ_retiming_selection_remove (SeqRetimingKey *key)
 
void SEQ_retiming_selection_copy (SeqRetimingKey *dst, const SeqRetimingKey *src)
 
blender::Map< SeqRetimingKey *, Sequence * > SEQ_retiming_selection_get (const Editing *ed)
 
bool SEQ_retiming_selection_contains (const Editing *ed, const SeqRetimingKey *key)
 
bool SEQ_retiming_selection_has_whole_transition (const Editing *ed, SeqRetimingKey *key)
 

Enumeration Type Documentation

◆ eIntersectType

Enumerator
FULL 
PARTIAL_START 
PARTIAL_END 
INSIDE 
NONE 

Definition at line 628 of file strip_retiming.cc.

◆ eRangeType

enum eRangeType
Enumerator
LINEAR 
TRANSITION 

Definition at line 623 of file strip_retiming.cc.

Function Documentation

◆ retiming_key_overlap()

◆ SEQ_retiming_add_freeze_frame()

◆ SEQ_retiming_add_key()

SeqRetimingKey * SEQ_retiming_add_key ( const Scene * scene,
Sequence * seq,
int timeline_frame )

◆ seq_retiming_add_key()

◆ SEQ_retiming_add_transition()

◆ seq_retiming_clamp_create_offset()

static float seq_retiming_clamp_create_offset ( SeqRetimingKey * key,
float offset )
static

◆ seq_retiming_clamp_timeline_frame()

static int seq_retiming_clamp_timeline_frame ( const Scene * scene,
Sequence * seq,
SeqRetimingKey * key,
const int timeline_frame )
static

◆ seq_retiming_clamp_transition_offset()

static int seq_retiming_clamp_transition_offset ( SeqRetimingKey * start_key,
int offset )
static

Definition at line 881 of file strip_retiming.cc.

References max_ii(), min_ii(), and SeqRetimingKey::strip_frame_index.

Referenced by seq_retiming_transition_offset().

◆ seq_retiming_cleanup_freeze_frame()

static void seq_retiming_cleanup_freeze_frame ( SeqRetimingKey * key)
static

◆ SEQ_retiming_data_clear()

void SEQ_retiming_data_clear ( Sequence * seq)

◆ SEQ_retiming_data_ensure()

◆ SEQ_retiming_data_is_editable()

◆ seq_retiming_evaluate()

◆ seq_retiming_evaluate_arc_segment()

static float seq_retiming_evaluate_arc_segment ( const SeqRetimingKey * key,
const float frame_index )
static

◆ SEQ_retiming_find_segment_start_key()

SeqRetimingKey * SEQ_retiming_find_segment_start_key ( const Sequence * seq,
float frame_index )

◆ seq_retiming_fix_transition()

◆ seq_retiming_fix_transitions()

static void seq_retiming_fix_transitions ( const Scene * scene,
Sequence * seq,
SeqRetimingKey * key )
static

◆ SEQ_retiming_is_active()

bool SEQ_retiming_is_active ( const Sequence * seq)

◆ SEQ_retiming_is_allowed()

◆ SEQ_retiming_is_last_key()

◆ SEQ_retiming_key_get_by_timeline_frame()

SeqRetimingKey * SEQ_retiming_key_get_by_timeline_frame ( const Scene * scene,
const Sequence * seq,
const int timeline_frame )

◆ SEQ_retiming_key_index_get()

◆ SEQ_retiming_key_is_freeze_frame()

bool SEQ_retiming_key_is_freeze_frame ( const SeqRetimingKey * key)

◆ SEQ_retiming_key_is_transition_start()

◆ SEQ_retiming_key_is_transition_type()

◆ seq_retiming_key_offset()

◆ SEQ_retiming_key_speed_get()

◆ SEQ_retiming_key_speed_set()

◆ SEQ_retiming_key_timeline_frame_get()

◆ SEQ_retiming_key_timeline_frame_set()

◆ SEQ_retiming_keys_count()

◆ SEQ_retiming_keys_get()

◆ SEQ_retiming_last_key_get()

◆ seq_retiming_line_segments_tangent_circle()

static void seq_retiming_line_segments_tangent_circle ( const SeqRetimingKey * start_key,
double r_center[2],
double * radius )
static

◆ seq_retiming_range_data_get()

static RetimingRangeData seq_retiming_range_data_get ( const Scene * scene,
const Sequence * seq )
static

◆ SEQ_retiming_remove_key()

void SEQ_retiming_remove_key ( const Scene * scene,
Sequence * seq,
SeqRetimingKey * key )

◆ seq_retiming_remove_key_ex()

◆ SEQ_retiming_remove_multiple_keys()

◆ seq_retiming_remove_transition()

◆ SEQ_retiming_reset()

◆ seq_retiming_segment_as_line_segment()

static void seq_retiming_segment_as_line_segment ( const SeqRetimingKey * start_key,
double r_v1[2],
double r_v2[2] )
static

◆ seq_retiming_segment_length_get()

static int seq_retiming_segment_length_get ( const SeqRetimingKey * start_key)
static

Definition at line 168 of file strip_retiming.cc.

References SeqRetimingKey::strip_frame_index.

Referenced by seq_retiming_segment_step_get().

◆ seq_retiming_segment_step_get()

static float seq_retiming_segment_step_get ( const SeqRetimingKey * start_key)
static

◆ SEQ_retiming_selection_append()

◆ SEQ_retiming_selection_clear()

◆ SEQ_retiming_selection_contains()

◆ SEQ_retiming_selection_copy()

void SEQ_retiming_selection_copy ( SeqRetimingKey * dst,
const SeqRetimingKey * src )

◆ SEQ_retiming_selection_get()

◆ SEQ_retiming_selection_has_whole_transition()

bool SEQ_retiming_selection_has_whole_transition ( const Editing * ed,
SeqRetimingKey * key )

◆ SEQ_retiming_selection_remove()

void SEQ_retiming_selection_remove ( SeqRetimingKey * key)

◆ SEQ_retiming_sound_animation_data_set()

◆ seq_retiming_transition_is_linear()

static bool seq_retiming_transition_is_linear ( const Sequence * seq,
const SeqRetimingKey * key )
static

Definition at line 254 of file strip_retiming.cc.

References abs(), and SEQ_retiming_key_speed_get().

Referenced by seq_retiming_evaluate().

◆ SEQ_retiming_transition_key_frame_set()

◆ seq_retiming_transition_offset()

◆ SEQ_retiming_transition_start_get()