Blender V4.5
blender::seq Namespace Reference

Classes

struct  FinalImageCache
struct  StripImageMap
struct  IntraFrameCache
struct  SourceImageCache
struct  ThumbnailCache
class  ThumbGenerationJob
struct  AddEffectOp
struct  SubEffectOp
struct  MulEffectOp
struct  AlphaOverEffectOp
struct  AlphaUnderEffectOp
struct  BlendModeEffectOp
struct  CrossEffectOp
struct  GammaCrossEffectOp
struct  SeqFontMap
struct  JFACoord
struct  WipeZone
struct  MediaPresence
struct  ColorBalanceApplyOp
struct  WhiteBalanceApplyOp
struct  CurvesApplyOp
struct  HueCorrectApplyOp
struct  BrightContrastApplyOp
struct  MaskApplyOp
struct  AvgLogLum
struct  AreaLuminance
struct  PrefetchJob
struct  IndexBuildContext
struct  MultiViewPrefixVars
struct  OpaqueQuad
struct  OpaqueQuadTracker
struct  SeqRenderState
struct  StripScreenQuad
struct  StripLookup
class  RetimingRange
class  RetimingRangeData
struct  GapInfo
struct  StripUniqueInfo
struct  LoadData
struct  AnimationBackup
struct  EffectHandle
struct  CharInfo
struct  LineInfo
struct  TextVarsRuntime
struct  StripModifierTypeInfo
struct  ProxyJob
struct  RenderData
struct  SoundModifierWorkerInfo

Typedefs

using ForEachFunc = bool (*)(Strip *strip, void *user_data)
using DrawViewFn

Enumerations

enum  eRangeType { LINEAR = 0 , TRANSITION = 1 }
enum  eIntersectType {
  FULL , PARTIAL_START , PARTIAL_END , INSIDE ,
  NONE
}
enum  eOvelapDescrition {
  STRIP_OVERLAP_NONE , STRIP_OVERLAP_IS_FULL , STRIP_OVERLAP_IS_INSIDE , STRIP_OVERLAP_LEFT_SIDE ,
  STRIP_OVERLAP_RIGHT_SIDE
}
enum  eLoadFlags { SEQ_LOAD_SOUND_CACHE = (1 << 1) , SEQ_LOAD_SOUND_MONO = (1 << 2) , SEQ_LOAD_MOVIE_SYNC_FPS = (1 << 3) , SEQ_LOAD_SET_VIEW_TRANSFORM = (1 << 4) }
enum  eSplitMethod { SPLIT_SOFT , SPLIT_HARD }
enum class  StripEarlyOut { NoInput = -1 , DoEffect = 0 , UseInput1 = 1 , UseInput2 = 2 }
enum  { DO_SINGLE_WIPE , DO_DOUBLE_WIPE , DO_IRIS_WIPE , DO_CLOCK_WIPE }
enum  eTaskId { SEQ_TASK_MAIN_RENDER , SEQ_TASK_PREFETCH_RENDER }
enum  {
  SIDE_MOUSE = -1 , SIDE_NONE = 0 , SIDE_LEFT , SIDE_RIGHT ,
  SIDE_BOTH , SIDE_NO_CHANGE
}

Functions

bool animation_keyframes_exist (const Scene *scene)
bool animation_drivers_exist (Scene *scene)
bool fcurve_matches (const Strip &strip, const FCurve &fcurve)
void offset_animdata (const Scene *scene, Strip *strip, float ofs)
void free_animdata (Scene *scene, Strip *strip)
void animation_backup_original (Scene *scene, AnimationBackup *backup)
void animation_restore_original (Scene *scene, AnimationBackup *backup)
static void strip_animation_duplicate (Strip *strip, animrig::Action &dst, const animrig::slot_handle_t dst_slot_handle, AnimationBackup *src)
static void strip_drivers_duplicate (Strip *strip, AnimData *dst, AnimationBackup *src)
void animation_duplicate_backup_to_scene (Scene *scene, Strip *strip, AnimationBackup *backup)
static FinalImageCacheensure_final_image_cache (Scene *scene)
static FinalImageCachequery_final_image_cache (const Scene *scene)
ImBuffinal_image_cache_get (Scene *scene, const ListBase *seqbasep, const float timeline_frame, const int view_id, const int display_channel)
void final_image_cache_put (Scene *scene, const ListBase *seqbasep, const float timeline_frame, const int view_id, const int display_channel, ImBuf *image)
void final_image_cache_invalidate_frame_range (Scene *scene, const float timeline_frame_start, const float timeline_frame_end)
void final_image_cache_clear (Scene *scene)
void final_image_cache_destroy (Scene *scene)
void final_image_cache_iterate (Scene *scene, void *userdata, void callback_iter(void *userdata, int timeline_frame))
size_t final_image_cache_calc_memory_size (const Scene *scene)
size_t final_image_cache_get_image_count (const Scene *scene)
bool final_image_cache_evict (Scene *scene)
static IntraFrameCachequery_intra_frame_cache (Scene *scene)
void intra_frame_cache_invalidate (Scene *scene)
void intra_frame_cache_invalidate (Scene *scene, const Strip *strip)
ImBufintra_frame_cache_get_preprocessed (Scene *scene, const Strip *strip)
ImBufintra_frame_cache_get_composite (Scene *scene, const Strip *strip)
void intra_frame_cache_put_preprocessed (Scene *scene, const Strip *strip, ImBuf *image)
void intra_frame_cache_put_composite (Scene *scene, const Strip *strip, ImBuf *image)
void intra_frame_cache_destroy (Scene *scene)
void intra_frame_cache_set_cur_frame (Scene *scene, float frame, int view_id, int width, int height)
static SourceImageCacheensure_source_image_cache (Scene *scene)
static SourceImageCachequery_source_image_cache (const Scene *scene)
static float give_cache_frame_index (const Scene *scene, const Strip *strip, float timeline_frame)
ImBufsource_image_cache_get (const RenderData *context, const Strip *strip, float timeline_frame)
void source_image_cache_put (const RenderData *context, const Strip *strip, float timeline_frame, ImBuf *image)
void source_image_cache_invalidate_strip (Scene *scene, const Strip *strip)
void source_image_cache_clear (Scene *scene)
void source_image_cache_destroy (Scene *scene)
void source_image_cache_iterate (Scene *scene, void *userdata, void callback_iter(void *userdata, const Strip *strip, int timeline_frame))
size_t source_image_cache_calc_memory_size (const Scene *scene)
size_t source_image_cache_get_image_count (const Scene *scene)
bool source_image_cache_evict (Scene *scene)
static ThumbnailCacheensure_thumbnail_cache (Scene *scene)
static ThumbnailCachequery_thumbnail_cache (Scene *scene)
bool strip_can_have_thumbnail (const Scene *scene, const Strip *strip)
static std::string get_path_from_strip (Scene *scene, const Strip *strip, float timeline_frame)
static void image_size_to_thumb_size (int &r_width, int &r_height)
static ImBufmake_thumb_for_image (const Scene *scene, const ThumbnailCache::Request &request)
static void scale_to_thumbnail_size (ImBuf *ibuf)
static ImBufquery_thumbnail (ThumbnailCache &cache, const std::string &key, int frame_index, float timeline_frame, const bContext *C, const Strip *strip)
ImBufthumbnail_cache_get (const bContext *C, Scene *scene, const Strip *strip, float timeline_frame)
void thumbnail_cache_invalidate_strip (Scene *scene, const Strip *strip)
void thumbnail_cache_maintain_capacity (Scene *scene)
void thumbnail_cache_discard_requests_outside (Scene *scene, const rctf &rect)
void thumbnail_cache_clear (Scene *scene)
void thumbnail_cache_destroy (Scene *scene)
ListBasechannels_displayed_get (const Editing *ed)
void channels_displayed_set (Editing *ed, ListBase *channels)
void channels_ensure (ListBase *channels)
void channels_duplicate (ListBase *channels_dst, ListBase *channels_src)
void channels_free (ListBase *channels)
SeqTimelineChannelchannel_get_by_index (const ListBase *channels, const int channel_index)
char * channel_name_get (ListBase *channels, const int channel_index)
int channel_index_get (const SeqTimelineChannel *channel)
bool channel_is_locked (const SeqTimelineChannel *channel)
bool channel_is_muted (const SeqTimelineChannel *channel)
ListBaseget_channels_by_strip (Editing *ed, const Strip *strip)
ImBufprepare_effect_imbufs (const RenderData *context, ImBuf *ibuf1, ImBuf *ibuf2, bool uninitialized_pixels)
Array< float > make_gaussian_blur_kernel (float rad, int size)
static void init_noop (Strip *)
static void load_noop (Strip *)
static void free_noop (Strip *, const bool)
static int num_inputs_default ()
static StripEarlyOut early_out_noop (const Strip *, float)
StripEarlyOut early_out_fade (const Strip *, float fac)
StripEarlyOut early_out_mul_input2 (const Strip *, float fac)
StripEarlyOut early_out_mul_input1 (const Strip *, float fac)
static void get_default_fac_noop (const Scene *, const Strip *, float, float *fac)
void get_default_fac_fade (const Scene *scene, const Strip *strip, float timeline_frame, float *fac)
EffectHandle effect_handle_get (int strip_type)
EffectHandle strip_effect_handle_get (Strip *strip)
EffectHandle strip_effect_get_sequence_blend (Strip *strip)
int effect_get_num_inputs (int strip_type)
void strip_effect_speed_rebuild_map (Scene *scene, Strip *strip)
float strip_speed_effect_target_frame_get (Scene *scene, Strip *strip_speed, float timeline_frame, int input)
blender::float4 load_premul_pixel (const uchar *ptr)
blender::float4 load_premul_pixel (const float *ptr)
void store_premul_pixel (const blender::float4 &pix, uchar *dst)
void store_premul_pixel (const blender::float4 &pix, float *dst)
void store_opaque_black_pixel (uchar *dst)
void store_opaque_black_pixel (float *dst)
void add_effect_get_handle (EffectHandle &rval)
void adjustment_effect_get_handle (EffectHandle &rval)
void alpha_over_effect_get_handle (EffectHandle &rval)
void alpha_under_effect_get_handle (EffectHandle &rval)
void blend_mode_effect_get_handle (EffectHandle &rval)
void color_mix_effect_get_handle (EffectHandle &rval)
void cross_effect_get_handle (EffectHandle &rval)
void gamma_cross_effect_get_handle (EffectHandle &rval)
void gaussian_blur_effect_get_handle (EffectHandle &rval)
void glow_effect_get_handle (EffectHandle &rval)
void mul_effect_get_handle (EffectHandle &rval)
void multi_camera_effect_get_handle (EffectHandle &rval)
void solid_color_effect_get_handle (EffectHandle &rval)
void speed_effect_get_handle (EffectHandle &rval)
void sub_effect_get_handle (EffectHandle &rval)
void transform_effect_get_handle (EffectHandle &rval)
void wipe_effect_get_handle (EffectHandle &rval)
template<typename OpT>
static void apply_effect_op (const OpT &op, const ImBuf *src1, const ImBuf *src2, ImBuf *dst)
static ImBufdo_add_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static ImBufdo_sub_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static ImBufdo_mul_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static int num_inputs_adjustment ()
static StripEarlyOut early_out_adjustment (const Strip *, float)
static ImBufdo_adjustment_impl (const RenderData *context, Strip *strip, float timeline_frame)
static ImBufdo_adjustment (const RenderData *context, Strip *strip, float timeline_frame, float, ImBuf *, ImBuf *)
static void init_alpha_over_or_under (Strip *strip)
static bool alpha_opaque (uchar alpha)
static bool alpha_opaque (float alpha)
static ImBufdo_alphaover_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static ImBufdo_alphaunder_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
template<typename T, typename Func>
static void apply_blend_function (float fac, int64_t size, const T *src1, const T *src2, T *dst, Func blend_function)
static void do_blend_effect_float (float fac, int64_t size, const float *rect1, const float *rect2, int btype, float *out)
static void do_blend_effect_byte (float fac, int64_t size, const uchar *rect1, const uchar *rect2, int btype, uchar *out)
static ImBufdo_blend_mode_effect (const RenderData *context, Strip *strip, float, float fac, ImBuf *src1, ImBuf *src2)
static void init_colormix_effect (Strip *strip)
static ImBufdo_colormix_effect (const RenderData *context, Strip *strip, float, float, ImBuf *src1, ImBuf *src2)
static void copy_effect_default (Strip *dst, const Strip *src, const int)
static void free_effect_default (Strip *strip, const bool)
static ImBufdo_cross_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static float gammaCorrect (float c)
static float invGammaCorrect (float c)
static ImBufdo_gammacross_effect (const RenderData *context, Strip *, float, float fac, ImBuf *src1, ImBuf *src2)
static void init_gaussian_blur_effect (Strip *strip)
static int num_inputs_gaussian_blur ()
static void free_gaussian_blur_effect (Strip *strip, const bool)
static void copy_gaussian_blur_effect (Strip *dst, const Strip *src, const int)
static StripEarlyOut early_out_gaussian_blur (const Strip *strip, float)
template<typename T>
static void gaussian_blur_x (const Span< float > gaussian, int half_size, int start_line, int width, int height, int, const T *rect, T *dst)
template<typename T>
static void gaussian_blur_y (const Span< float > gaussian, int half_size, int start_line, int width, int height, int frame_height, const T *rect, T *dst)
static ImBufdo_gaussian_blur_effect (const RenderData *context, Strip *strip, float, float, ImBuf *ibuf1, ImBuf *)
static void glow_blur_bitmap (const float4 *src, float4 *map, int width, int height, float blur, int quality)
static void blur_isolate_highlights (const float4 *in, float4 *out, int width, int height, float threshold, float boost, float clamp)
static void init_glow_effect (Strip *strip)
static int num_inputs_glow ()
static void free_glow_effect (Strip *strip, const bool)
static void copy_glow_effect (Strip *dst, const Strip *src, const int)
static void do_glow_effect_byte (Strip *strip, int render_size, float fac, int x, int y, uchar *rect1, uchar *, uchar *out)
static void do_glow_effect_float (Strip *strip, int render_size, float fac, int x, int y, float *rect1, float *, float *out)
static ImBufdo_glow_effect (const RenderData *context, Strip *strip, float, float fac, ImBuf *ibuf1, ImBuf *ibuf2)
static int num_inputs_multicam ()
static StripEarlyOut early_out_multicam (const Strip *, float)
static ImBufdo_multicam (const RenderData *context, Strip *strip, float timeline_frame, float, ImBuf *, ImBuf *)
static void init_solid_color (Strip *strip)
static int num_inputs_color ()
static void free_solid_color (Strip *strip, const bool)
static void copy_solid_color (Strip *dst, const Strip *src, const int)
static StripEarlyOut early_out_color (const Strip *, float)
static ImBufdo_solid_color (const RenderData *context, Strip *strip, float, float, ImBuf *ibuf1, ImBuf *ibuf2)
static void init_speed_effect (Strip *strip)
static void load_speed_effect (Strip *strip)
static int num_inputs_speed ()
static void free_speed_effect (Strip *strip, const bool)
static void copy_speed_effect (Strip *dst, const Strip *src, const int)
static StripEarlyOut early_out_speed (const Strip *, float)
static FCurvestrip_effect_speed_speed_factor_curve_get (Scene *scene, Strip *strip)
static void strip_effect_speed_frame_map_ensure (Scene *scene, Strip *strip)
static float speed_effect_interpolation_ratio_get (Scene *scene, Strip *strip_speed, float timeline_frame)
static ImBufdo_speed_effect (const RenderData *context, Strip *strip, float timeline_frame, float fac, ImBuf *ibuf1, ImBuf *ibuf2)
void fontmap_clear ()
static int strip_load_font_file (const std::string &path)
static int strip_load_font_mem (const std::string &name, const uchar *data, int data_size)
static void strip_unload_font (int fontid)
static void init_transform_effect (Strip *strip)
static int num_inputs_transform ()
static void free_transform_effect (Strip *strip, const bool)
static void copy_transform_effect (Strip *dst, const Strip *src, const int)
static void transform_image (int x, int y, int start_line, int total_lines, const ImBuf *ibuf, ImBuf *out, float scale_x, float scale_y, float translate_x, float translate_y, float rotate, int interpolation)
static ImBufdo_transform_effect (const RenderData *context, Strip *strip, float, float, ImBuf *src1, ImBuf *)
static WipeZone precalc_wipe_zone (const WipeVars *wipe, int xo, int yo)
static float in_band (float width, float dist, int side, int dir)
static float check_zone (const WipeZone *wipezone, int x, int y, float fac)
static void init_wipe_effect (Strip *strip)
static int num_inputs_wipe ()
static void free_wipe_effect (Strip *strip, const bool)
static void copy_wipe_effect (Strip *dst, const Strip *src, const int)
template<typename T>
static void do_wipe_effect (const Strip *strip, float fac, int width, int height, const T *rect1, const T *rect2, T *out)
static ImBufdo_wipe_effect (const RenderData *context, Strip *strip, float, float fac, ImBuf *ibuf1, ImBuf *ibuf2)
static bool strip_for_each_recursive (ListBase *seqbase, ForEachFunc callback, void *user_data)
static bool strip_for_each_recursive (ListBase *seqbase, blender::FunctionRef< bool(Strip *)> callback)
void for_each_callback (ListBase *seqbase, ForEachFunc callback, void *user_data)
void for_each_callback (ListBase *seqbase, blender::FunctionRef< bool(Strip *)> callback)
VectorSet< Strip * > query_by_reference (Strip *strip_reference, const Scene *scene, ListBase *seqbase, void strip_query_func(const Scene *scene, Strip *strip_reference, ListBase *seqbase, VectorSet< Strip * > &strips))
void iterator_set_expand (const Scene *scene, ListBase *seqbase, VectorSet< Strip * > &strips, void strip_query_func(const Scene *scene, Strip *strip_reference, ListBase *seqbase, VectorSet< Strip * > &strips))
static void query_all_strips_recursive (const ListBase *seqbase, VectorSet< Strip * > &strips)
VectorSet< Strip * > query_all_strips_recursive (const ListBase *seqbase)
VectorSet< Strip * > query_all_strips (ListBase *seqbase)
VectorSet< Strip * > query_selected_strips (ListBase *seqbase)
static VectorSet< Strip * > query_strips_at_frame (const Scene *scene, ListBase *seqbase, const int timeline_frame)
static void collection_filter_channel_up_to_incl (VectorSet< Strip * > &strips, const int channel)
static bool must_render_strip (const VectorSet< Strip * > &strips, Strip *strip)
static void collection_filter_rendered_strips (VectorSet< Strip * > &strips, ListBase *channels)
VectorSet< Strip * > query_rendered_strips (const Scene *scene, ListBase *channels, ListBase *seqbase, const int timeline_frame, const int displayed_channel)
VectorSet< Strip * > query_unselected_strips (ListBase *seqbase)
void query_strip_effect_chain (const Scene *scene, Strip *reference_strip, ListBase *seqbase, VectorSet< Strip * > &r_strips)
void query_strip_connected_and_effect_chain (const Scene *scene, Strip *reference_strip, ListBase *seqbase, VectorSet< Strip * > &r_strips)
static const char * strip_base_path_get (const Strip *strip)
static bool check_sound_media_missing (const bSound *sound, const Strip *strip)
static bool check_media_missing (const Strip *strip)
static MediaPresenceget_media_presence_cache (Scene *scene)
bool media_presence_is_missing (Scene *scene, const Strip *strip)
void media_presence_set_missing (Scene *scene, const Strip *strip, bool missing)
void media_presence_invalidate_strip (Scene *scene, const Strip *strip)
void media_presence_invalidate_sound (Scene *scene, const bSound *sound)
void media_presence_free (Scene *scene)
static float4 load_pixel_premul (const uchar *ptr)
static float4 load_pixel_premul (const float *ptr)
static void store_pixel_premul (float4 pix, uchar *ptr)
static void store_pixel_premul (float4 pix, float *ptr)
static float4 load_pixel_raw (const uchar *ptr)
static float4 load_pixel_raw (const float *ptr)
static void store_pixel_raw (float4 pix, uchar *ptr)
static void store_pixel_raw (float4 pix, float *ptr)
static void apply_and_advance_mask (float4 input, float4 &result, const uchar *&mask)
static void apply_and_advance_mask (float4 input, float4 &result, const float *&mask)
static void apply_and_advance_mask (float4, float4 &, const void *&)
template<typename T>
static void apply_modifier_op (T &op, ImBuf *ibuf, const ImBuf *mask)
static ImBufmodifier_render_mask_input (const RenderData *context, int mask_input_type, Strip *mask_strip, Mask *mask_id, int timeline_frame, int fra_offset)
static ImBufmodifier_mask_get (StripModifierData *smd, const RenderData *context, int timeline_frame, int fra_offset)
void seq_anim_add_suffix (Scene *scene, MovieReader *anim, const int view_id)
int seq_num_files (Scene *scene, char views_format, const bool is_multiview)
void seq_multiview_name (Scene *scene, const int view_id, const char *prefix, const char *ext, char *r_path, size_t r_size)
static PrefetchJobseq_prefetch_job_get (Scene *scene)
bool seq_prefetch_job_is_running (Scene *scene)
static void seq_prefetch_job_scrubbing_set (Scene *scene, bool is_scrubbing)
static bool seq_prefetch_job_is_waiting (Scene *scene)
static Striporiginal_strip_get (const Strip *strip, ListBase *seqbase)
static Striporiginal_strip_get (const Strip *strip, Scene *scene)
static RenderDataget_original_context (const RenderData *context)
Sceneprefetch_get_original_scene (const RenderData *context)
Sceneprefetch_get_original_scene_and_strip (const RenderData *context, const Strip *&strip)
static bool seq_prefetch_is_cache_full (Scene *scene)
static float seq_prefetch_cfra (PrefetchJob *pfjob)
static AnimationEvalContext seq_prefetch_anim_eval_context (PrefetchJob *pfjob)
void seq_prefetch_get_time_range (Scene *scene, int *r_start, int *r_end)
static void seq_prefetch_free_depsgraph (PrefetchJob *pfjob)
static void seq_prefetch_update_depsgraph (PrefetchJob *pfjob)
static void seq_prefetch_init_depsgraph (PrefetchJob *pfjob)
static void seq_prefetch_update_area (PrefetchJob *pfjob)
void prefetch_stop_all ()
void prefetch_stop (Scene *scene)
static void seq_prefetch_update_context (const RenderData *context)
static void seq_prefetch_update_scene (Scene *scene)
static void seq_prefetch_update_active_seqbase (PrefetchJob *pfjob)
static void seq_prefetch_resume (Scene *scene)
void seq_prefetch_free (Scene *scene)
static blender::VectorSet< Strip * > query_scene_strips (ListBase *seqbase)
static bool seq_prefetch_scene_strip_is_rendered (const Scene *scene, ListBase *channels, ListBase *seqbase, blender::Span< Strip * > scene_strips, int timeline_frame)
static bool seq_prefetch_must_skip_frame (PrefetchJob *pfjob, ListBase *channels, ListBase *seqbase)
static bool seq_prefetch_need_suspend (PrefetchJob *pfjob)
static void seq_prefetch_do_suspend (PrefetchJob *pfjob)
static void * seq_prefetch_frames (void *job)
static PrefetchJobseq_prefetch_start_ex (const RenderData *context, float cfra)
void seq_prefetch_start (const RenderData *context, float timeline_frame)
bool prefetch_need_redraw (const bContext *C, Scene *scene)
int rendersize_to_proxysize (int render_size)
double rendersize_to_scale_factor (int render_size)
bool seq_proxy_get_custom_file_filepath (Strip *strip, char *filepath, const int view_id)
static bool seq_proxy_get_filepath (Scene *scene, Strip *strip, int timeline_frame, eSpaceSeq_Proxy_RenderSize render_size, char *filepath, const int view_id)
bool can_use_proxy (const RenderData *context, const Strip *strip, int psize)
ImBufseq_proxy_fetch (const RenderData *context, Strip *strip, int timeline_frame)
static void seq_proxy_build_frame (const RenderData *context, SeqRenderState *state, Strip *strip, int timeline_frame, int proxy_render_size, const bool overwrite)
static bool seq_proxy_multiview_context_invalid (Strip *strip, Scene *scene, const int view_id, MultiViewPrefixVars *prefix_vars)
static int seq_proxy_context_count (Strip *strip, Scene *scene)
static bool seq_proxy_need_rebuild (Strip *strip, MovieReader *anim)
bool proxy_rebuild_context (Main *bmain, Depsgraph *depsgraph, Scene *scene, Strip *strip, blender::Set< std::string > *processed_paths, ListBase *queue, bool build_only_on_bad_performance)
void proxy_rebuild (IndexBuildContext *context, wmJobWorkerStatus *worker_status)
void proxy_rebuild_finish (IndexBuildContext *context, bool stop)
void proxy_set (Strip *strip, bool value)
void seq_proxy_index_dir_set (MovieReader *anim, const char *base_dir)
void free_strip_proxy (Strip *strip)
static void proxy_freejob (void *pjv)
static void proxy_startjob (void *pjv, wmJobWorkerStatus *worker_status)
static void proxy_endjob (void *pjv)
ProxyJobED_seq_proxy_job_get (const bContext *C, wmJob *wm_job)
wmJobED_seq_proxy_wm_job_get (const bContext *C)
static bool seq_set_strip_done_cb (Strip *strip, void *)
static bool strip_write_data_cb (Strip *strip, void *userdata)
void blend_write (BlendWriter *writer, ListBase *seqbase)
static bool strip_read_data_cb (Strip *strip, void *user_data)
void blend_read (BlendDataReader *reader, ListBase *seqbase)
static bool strip_doversion_250_sound_proxy_update_cb (Strip *strip, void *user_data)
void doversion_250_sound_proxy_update (Main *bmain, Editing *ed)
static bool seq_mute_sound_strips_cb (Strip *strip, void *user_data)
static void strip_update_mix_sounds (Scene *scene, Strip *strip)
static void strip_update_sound_properties (const Scene *scene, const Strip *strip)
static void strip_update_sound_modifiers (Strip *strip)
static bool must_update_strip_sound (Scene *scene, Strip *strip)
static void seq_update_sound_strips (Scene *scene, Strip *strip)
static bool scene_sequencer_is_used (const Scene *scene, ListBase *seqbase)
static void seq_update_scene_strip_sound (const Scene *scene, Strip *strip)
static bool strip_sound_update_cb (Strip *strip, void *user_data)
void eval_strips (Depsgraph *depsgraph, Scene *scene, ListBase *seqbase)
blender::Span< Strip * > SEQ_lookup_effects_by_strip (Editing *ed, const Strip *key)
void sound_update_length (Main *bmain, Scene *scene)
void sound_update_bounds_all (Scene *scene)
void sound_update_bounds (Scene *scene, Strip *strip)
static void strip_update_sound_recursive (Scene *scene, ListBase *seqbasep, bSound *sound)
void sound_update (Scene *scene, bSound *sound)
float sound_pitch_get (const Scene *scene, const Strip *strip)
EQCurveMappingDatasound_equalizer_add (SoundEqualizerModifierData *semd, float minX, float maxX)
void sound_equalizermodifier_set_graphs (SoundEqualizerModifierData *semd, int number)
EQCurveMappingDatasound_equalizermodifier_add_graph (SoundEqualizerModifierData *semd, float min_freq, float max_freq)
void sound_equalizermodifier_remove_graph (SoundEqualizerModifierData *semd, EQCurveMappingData *eqcmd)
void sound_equalizermodifier_init_data (StripModifierData *smd)
void sound_equalizermodifier_free (StripModifierData *smd)
void sound_equalizermodifier_copy_data (StripModifierData *target, StripModifierData *smd)
void * sound_equalizermodifier_recreator (Strip *strip, StripModifierData *smd, void *sound)
const SoundModifierWorkerInfosound_modifier_worker_info_get (int type)
void * sound_modifier_recreator (Strip *strip, StripModifierData *smd, void *sound)
void add_load_data_init (LoadData *load_data, const char *name, const char *path, const int start_frame, const int channel)
static void strip_add_generic_update (Scene *scene, Strip *strip)
static void strip_add_set_name (Scene *scene, Strip *strip, LoadData *load_data)
static void strip_add_set_view_transform (Scene *scene, Strip *strip, LoadData *load_data)
Stripadd_scene_strip (Scene *scene, ListBase *seqbase, LoadData *load_data)
Stripadd_movieclip_strip (Scene *scene, ListBase *seqbase, LoadData *load_data)
Stripadd_mask_strip (Scene *scene, ListBase *seqbase, LoadData *load_data)
Stripadd_effect_strip (Scene *scene, ListBase *seqbase, LoadData *load_data)
void add_image_set_directory (Strip *strip, const char *dirpath)
void add_image_load_file (Scene *scene, Strip *strip, size_t strip_frame, const char *filename)
void add_image_init_alpha_mode (Strip *strip)
Stripadd_image_strip (Main *bmain, Scene *scene, ListBase *seqbase, LoadData *load_data)
void add_sound_av_sync (Main *, Scene *, Strip *, LoadData *)
Stripadd_sound_strip (Main *, Scene *, ListBase *, LoadData *)
Stripadd_meta_strip (Scene *scene, ListBase *seqbase, LoadData *load_data)
Stripadd_movie_strip (Main *bmain, Scene *scene, ListBase *seqbase, LoadData *load_data)
void add_reload_new_file (Main *bmain, Scene *scene, Strip *strip, const bool lock_range)
void add_movie_reload_if_needed (Main *bmain, Scene *scene, Strip *strip, bool *r_was_reloaded, bool *r_can_produce_frames)
static void strip_connections_free (Strip *strip)
void connections_duplicate (ListBase *connections_dst, ListBase *connections_src)
bool disconnect (Strip *strip)
bool disconnect (blender::VectorSet< Strip * > &strip_list)
void cut_one_way_connections (Strip *strip)
void connect (Strip *strip1, Strip *strip2)
void connect (blender::VectorSet< Strip * > &strip_list)
blender::VectorSet< Strip * > connected_strips_get (const Strip *strip)
bool is_strip_connected (const Strip *strip)
bool are_strips_connected_together (blender::VectorSet< Strip * > &strip_list)
bool edit_strip_swap (Scene *scene, Strip *strip_a, Strip *strip_b, const char **r_error_str)
static void strip_update_muting_recursive (ListBase *channels, ListBase *seqbasep, Strip *strip_meta, const bool mute)
void edit_update_muting (Editing *ed)
static void sequencer_flag_users_for_removal (Scene *scene, ListBase *seqbase, Strip *strip)
void edit_flag_for_removal (Scene *scene, ListBase *seqbase, Strip *strip)
void edit_remove_flagged_strips (Scene *scene, ListBase *seqbase)
bool edit_move_strip_to_seqbase (Scene *scene, ListBase *seqbase, Strip *strip, ListBase *dst_seqbase)
bool edit_move_strip_to_meta (Scene *scene, Strip *src_strip, Strip *dst_stripm, const char **r_error_str)
static void seq_split_set_right_hold_offset (Main *bmain, Scene *scene, Strip *strip, int timeline_frame)
static void seq_split_set_left_hold_offset (Main *bmain, Scene *scene, Strip *strip, int timeline_frame)
static bool seq_edit_split_intersect_check (const Scene *scene, const Strip *strip, const int timeline_frame)
static void seq_edit_split_handle_strip_offsets (Main *bmain, Scene *scene, Strip *left_strip, Strip *right_strip, const int timeline_frame, const eSplitMethod method)
static bool seq_edit_split_effect_inputs_intersect (const Scene *scene, const Strip *strip, const int timeline_frame)
static bool seq_edit_split_operation_permitted_check (const Scene *scene, blender::Span< Strip * > strips, const int timeline_frame, const char **r_error)
Stripedit_strip_split (Main *bmain, Scene *scene, ListBase *seqbase, Strip *strip, const int timeline_frame, const eSplitMethod method, const bool ignore_connections, const char **r_error)
bool edit_remove_gaps (Scene *scene, ListBase *seqbase, const int initial_frame, const bool remove_all_gaps)
void edit_strip_name_set (Scene *scene, Strip *strip, const char *new_name)
static void strip_lookup_append_effect (const Strip *input, Strip *effect, StripLookup *lookup)
static void strip_by_scene_lookup_build (Strip *strip, StripLookup *lookup)
static void strip_lookup_build_effect (Strip *strip, StripLookup *lookup)
static void strip_lookup_build_from_seqbase (Strip *parent_meta, const ListBase *seqbase, StripLookup *lookup)
static void strip_lookup_build (const Editing *ed, StripLookup *lookup)
static StripLookupstrip_lookup_new ()
static void strip_lookup_free (StripLookup **lookup)
static void strip_lookup_rebuild (const Editing *ed, StripLookup **lookup)
static void strip_lookup_update_if_needed (const Editing *ed, StripLookup **lookup)
void strip_lookup_free (Editing *ed)
Striplookup_strip_by_name (Editing *ed, const char *key)
Span< Strip * > lookup_strips_by_scene (Editing *ed, const Scene *key)
Striplookup_meta_by_strip (Editing *ed, const Strip *key)
Striplookup_strip_by_channel_owner (Editing *ed, const SeqTimelineChannel *channel)
void strip_lookup_invalidate (const Editing *ed)
bool relation_is_effect_of_strip (const Strip *effect, const Strip *input)
void cache_cleanup (Scene *scene)
void cache_cleanup_intra (Scene *scene)
void cache_cleanup_final (Scene *scene)
bool is_cache_full (const Scene *scene)
static void invalidate_final_cache_strip_range (Scene *scene, const Strip *strip)
static void invalidate_raw_cache_of_parent_meta (Scene *scene, Strip *strip)
void relations_invalidate_cache_raw (Scene *scene, Strip *strip)
void relations_invalidate_cache (Scene *scene, Strip *strip)
void relations_invalidate_scene_strips (const Main *bmain, const Scene *scene_target)
static void invalidate_movieclip_strips (Scene *scene, MovieClip *clip_target, ListBase *seqbase)
void relations_invalidate_movieclip_strips (Main *bmain, MovieClip *clip_target)
void 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 relations_free_all_anim_ibufs (Scene *scene, int timeline_frame)
static Stripsequencer_check_scene_recursion (Scene *scene, ListBase *seqbase)
bool relations_check_scene_recursion (Scene *scene, ReportList *reports)
bool relations_render_loop_check (Strip *strip_main, Strip *strip)
void relations_strip_free_anim (Strip *strip)
void relations_session_uid_generate (Strip *strip)
static bool get_uids_cb (Strip *strip, void *user_data)
void relations_check_uids_unique_and_report (const Scene *scene)
bool exists_in_seqbase (const Strip *strip, const ListBase *seqbase)
MutableSpan< SeqRetimingKeyretiming_keys_get (const Strip *strip)
bool retiming_is_last_key (const Strip *strip, const SeqRetimingKey *key)
SeqRetimingKeyretiming_last_key_get (const Strip *strip)
int retiming_key_index_get (const Strip *strip, const SeqRetimingKey *key)
static int content_frame_index_get (const Scene *scene, const Strip *strip, const int timeline_frame)
SeqRetimingKeyretiming_key_get_by_timeline_frame (const Scene *scene, const Strip *strip, const int timeline_frame)
SeqRetimingKeyretiming_find_segment_start_key (const Strip *strip, float frame_index)
int retiming_keys_count (const Strip *strip)
void retiming_data_ensure (Strip *strip)
void retiming_data_clear (Strip *strip)
static void retiming_key_overlap (Scene *scene, Strip *strip)
void retiming_reset (Scene *scene, Strip *strip)
bool retiming_is_active (const Strip *strip)
bool retiming_data_is_editable (const Strip *strip)
bool retiming_is_allowed (const Strip *strip)
static double strip_retiming_segment_length_get (const SeqRetimingKey *start_key)
static float strip_retiming_segment_step_get (const SeqRetimingKey *start_key)
static void strip_retiming_segment_as_line_segment (const SeqRetimingKey *start_key, double r_v1[2], double r_v2[2])
static void strip_retiming_line_segments_tangent_circle (const SeqRetimingKey *start_key, double r_center[2], double *radius)
bool retiming_key_is_transition_type (const SeqRetimingKey *key)
bool retiming_key_is_transition_start (const SeqRetimingKey *key)
SeqRetimingKeyretiming_transition_start_get (SeqRetimingKey *key)
bool retiming_key_is_freeze_frame (const SeqRetimingKey *key)
static bool strip_retiming_transition_is_linear (const Strip *strip, const SeqRetimingKey *key)
static float strip_retiming_evaluate_arc_segment (const SeqRetimingKey *key, const float frame_index)
float strip_retiming_evaluate (const Strip *strip, const float frame_index)
static SeqRetimingKeystrip_retiming_add_key (Strip *strip, float frame_index)
SeqRetimingKeyretiming_add_key (const Scene *scene, Strip *strip, const int timeline_frame)
void retiming_transition_key_frame_set (const Scene *scene, const Strip *strip, SeqRetimingKey *key, const int timeline_frame)
static void strip_retiming_cleanup_freeze_frame (SeqRetimingKey *key)
void retiming_remove_multiple_keys (Strip *strip, blender::Vector< SeqRetimingKey * > &keys_to_remove)
static void strip_retiming_remove_key_ex (Strip *strip, SeqRetimingKey *key)
static SeqRetimingKeystrip_retiming_remove_transition (Strip *strip, SeqRetimingKey *key)
void retiming_remove_key (Strip *strip, SeqRetimingKey *key)
static float strip_retiming_clamp_create_offset (const Scene *scene, const Strip *strip, SeqRetimingKey *key, int offset)
SeqRetimingKeyretiming_add_freeze_frame (const Scene *scene, Strip *strip, SeqRetimingKey *key, const int offset)
SeqRetimingKeyretiming_add_transition (const Scene *scene, Strip *strip, SeqRetimingKey *key, float offset)
static float strip_retiming_clamp_transition_offset (const Scene *scene, const Strip *strip, SeqRetimingKey *start_key, float offset)
static void strip_retiming_transition_offset (const Scene *scene, Strip *strip, SeqRetimingKey *key, const float offset)
static int strip_retiming_clamp_timeline_frame (const Scene *scene, Strip *strip, SeqRetimingKey *key, const int timeline_frame)
static void strip_retiming_fix_transition (const Scene *scene, Strip *strip, SeqRetimingKey *key)
static void strip_retiming_fix_transitions (const Scene *scene, Strip *strip, SeqRetimingKey *key)
static void strip_retiming_key_offset (const Scene *scene, Strip *strip, SeqRetimingKey *key, const float offset)
int retiming_key_timeline_frame_get (const Scene *scene, const Strip *strip, const SeqRetimingKey *key)
void retiming_key_timeline_frame_set (const Scene *scene, Strip *strip, SeqRetimingKey *key, const int timeline_frame)
float retiming_key_speed_get (const Strip *strip, const SeqRetimingKey *key)
void retiming_key_speed_set (const Scene *scene, Strip *strip, SeqRetimingKey *key, const float speed, bool keep_retiming)
static RetimingRangeData strip_retiming_range_data_get (const Scene *scene, const Strip *strip)
void retiming_sound_animation_data_set (const Scene *scene, const Strip *strip)
bool retiming_selection_clear (const Editing *ed)
void retiming_selection_append (SeqRetimingKey *key)
void retiming_selection_remove (SeqRetimingKey *key)
void retiming_selection_copy (SeqRetimingKey *dst, const SeqRetimingKey *src)
blender::Map< SeqRetimingKey *, Strip * > retiming_selection_get (const Editing *ed)
bool retiming_selection_contains (const Editing *ed, const SeqRetimingKey *key)
bool retiming_selection_has_whole_transition (const Editing *ed, SeqRetimingKey *key)
Stripselect_active_get (const Scene *scene)
void select_active_set (Scene *scene, Strip *strip)
bool select_active_get_pair (Scene *scene, Strip **r_strip_act, Strip **r_strip_other)
float time_media_playback_rate_factor_get (const Strip *strip, const float scene_fps)
float give_frame_index (const Scene *scene, const Strip *strip, float timeline_frame)
static int metastrip_start_get (Strip *strip_meta)
static int metastrip_end_get (Strip *strip_meta)
static void strip_update_sound_bounds_recursive_impl (const Scene *scene, Strip *strip_meta, int start, int end)
void strip_update_sound_bounds_recursive (const Scene *scene, Strip *strip_meta)
void time_update_meta_strip_range (const Scene *scene, Strip *strip_meta)
void strip_time_effect_range_set (const Scene *scene, Strip *strip)
void strip_time_update_effects_strip_range (const Scene *scene, const blender::Span< Strip * > effects)
int time_find_next_prev_edit (Scene *scene, int timeline_frame, const short side, const bool do_skip_mute, const bool do_center, const bool do_unselected)
float time_strip_fps_get (Scene *scene, Strip *strip)
void timeline_init_boundbox (const Scene *scene, rctf *r_rect)
void timeline_expand_boundbox (const Scene *scene, const ListBase *seqbase, rctf *rect)
void timeline_boundbox (const Scene *scene, const ListBase *seqbase, rctf *r_rect)
static bool strip_exists_at_frame (const Scene *scene, blender::Span< Strip * > strips, const int timeline_frame)
void seq_time_gap_info_get (const Scene *scene, ListBase *seqbase, const int initial_frame, GapInfo *r_gap_info)
bool time_strip_intersects_frame (const Scene *scene, const Strip *strip, const int timeline_frame)
bool time_has_left_still_frames (const Scene *scene, const Strip *strip)
bool time_has_right_still_frames (const Scene *scene, const Strip *strip)
bool time_has_still_frames (const Scene *scene, const Strip *strip)
int time_strip_length_get (const Scene *scene, const Strip *strip)
float time_start_frame_get (const Strip *strip)
void time_start_frame_set (const Scene *scene, Strip *strip, int timeline_frame)
float time_content_end_frame_get (const Scene *scene, const Strip *strip)
int time_left_handle_frame_get (const Scene *, const Strip *strip)
int time_right_handle_frame_get (const Scene *scene, const Strip *strip)
void time_left_handle_frame_set (const Scene *scene, Strip *strip, int timeline_frame)
void time_right_handle_frame_set (const Scene *scene, Strip *strip, int timeline_frame)
void strip_time_translate_handles (const Scene *scene, Strip *strip, const int offset)
static void strip_time_slip_strip_ex (const Scene *scene, Strip *strip, int delta, float subframe_delta, bool slip_keyframes, bool recursed)
void time_slip_strip (const Scene *scene, Strip *strip, int frame_delta, float subframe_delta, bool slip_keyframes)
int time_get_rounded_sound_offset (const Strip *strip, const float frames_per_second)
void strip_time_update_effects_strip_range (const Scene *scene, blender::Span< Strip * > effects)
float strip_time_media_playback_rate_factor_get (const Scene *scene, const Strip *strip)
bool transform_single_image_check (const Strip *strip)
bool transform_strip_can_be_translated (const Strip *strip)
bool transform_test_overlap (const Scene *scene, Strip *strip1, Strip *strip2)
bool transform_test_overlap (const Scene *scene, ListBase *seqbasep, Strip *test)
void transform_translate_strip (Scene *evil_scene, Strip *strip, int delta)
bool transform_seqbase_shuffle_ex (ListBase *seqbasep, Strip *test, Scene *evil_scene, int channel_delta)
bool transform_seqbase_shuffle (ListBase *seqbasep, Strip *test, Scene *evil_scene)
static bool shuffle_strip_test_overlap (const Scene *scene, const Strip *strip1, const Strip *strip2, const int offset)
static int shuffle_strip_time_offset_get (const Scene *scene, blender::Span< Strip * > strips_to_shuffle, ListBase *seqbasep, char dir)
bool transform_seqbase_shuffle_time (blender::Span< Strip * > strips_to_shuffle, ListBase *seqbasep, Scene *evil_scene, ListBase *markers, const bool use_sync_markers)
bool transform_seqbase_shuffle_time (blender::Span< Strip * > strips_to_shuffle, blender::Span< Strip * > time_dependent_strips, ListBase *seqbasep, Scene *evil_scene, ListBase *markers, const bool use_sync_markers)
static blender::VectorSet< Strip * > extract_standalone_strips (blender::Span< Strip * > transformed_strips)
static blender::VectorSet< Strip * > query_right_side_strips (const Scene *scene, ListBase *seqbase, blender::Span< Strip * > transformed_strips, blender::Span< Strip * > time_dependent_strips)
static void strip_transform_handle_expand_to_fit (Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips, blender::Span< Strip * > time_dependent_strips, bool use_sync_markers)
static blender::VectorSet< Strip * > query_overwrite_targets (const Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips)
static eOvelapDescrition overlap_description_get (const Scene *scene, const Strip *transformed, const Strip *target)
static void strip_transform_handle_overwrite_split (Scene *scene, ListBase *seqbasep, const Strip *transformed, Strip *target)
static void strip_transform_handle_overwrite_trim (Scene *scene, ListBase *seqbasep, const Strip *transformed, Strip *target, const eOvelapDescrition overlap)
static void strip_transform_handle_overwrite (Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips)
static void strip_transform_handle_overlap_shuffle (Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips, blender::Span< Strip * > time_dependent_strips, bool use_sync_markers)
void transform_handle_overlap (Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips, bool use_sync_markers)
void transform_handle_overlap (Scene *scene, ListBase *seqbasep, blender::Span< Strip * > transformed_strips, blender::Span< Strip * > time_dependent_strips, bool use_sync_markers)
void transform_offset_after_frame (Scene *scene, ListBase *seqbase, const int delta, const int timeline_frame)
void strip_channel_set (Strip *strip, int channel)
bool transform_is_locked (ListBase *channels, const Strip *strip)
float2float2 image_transform_mirror_factor_get (const Strip *strip)
static float2float2 strip_raw_image_size_get (const Scene *scene, const Strip *strip)
float2float2 image_transform_origin_offset_pixelspace_get (const Scene *scene, const Strip *strip)
static float3x3 seq_image_transform_matrix_get_ex (const Scene *scene, const Strip *strip, bool apply_rotation=true)
float3x3 image_transform_matrix_get (const Scene *scene, const Strip *strip)
static Array< float2float2strip_image_transform_quad_get_ex (const Scene *scene, const Strip *strip, bool apply_rotation)
Array< float2float2image_transform_quad_get (const Scene *scene, const Strip *strip, bool apply_rotation)
Array< float2float2image_transform_final_quad_get (const Scene *scene, const Strip *strip)
float2float2 image_preview_unit_to_px (const Scene *scene, const float2float2 co_src)
float2float2 image_preview_unit_from_px (const Scene *scene, const float2float2 co_src)
static Bounds< float2float2negative_bounds ()
Bounds< float2float2image_transform_bounding_box_from_collection (Scene *scene, blender::Span< Strip * > strips, bool apply_rotation)
static void seqbase_unique_name (ListBase *seqbasep, StripUniqueInfo *sui)
static bool seqbase_unique_name_recursive_fn (Strip *strip, void *arg_pt)
void strip_unique_name_set (Scene *scene, ListBase *seqbasep, Strip *strip)
const char * get_default_stripname_by_type (int type)
const char * strip_give_name (const Strip *strip)
ListBaseget_seqbase_from_strip (Strip *strip, ListBase **r_channels, int *r_offset)
static void open_anim_filepath (Strip *strip, StripAnim *sanim, const char *filepath, bool openfile)
static bool use_proxy (Editing *ed, Strip *strip)
static void proxy_dir_get (Editing *ed, Strip *strip, size_t str_len, char *r_proxy_dirpath)
static void index_dir_set (Editing *ed, Strip *strip, StripAnim *sanim)
static bool open_anim_file_multiview (Scene *scene, Strip *strip, const char *filepath)
void strip_open_anim_file (Scene *scene, Strip *strip, bool openfile)
const Stripstrip_topmost_get (const Scene *scene, int frame)
ListBaseget_seqbase_by_strip (const Scene *scene, Strip *strip)
Stripstrip_from_strip_elem (ListBase *seqbase, StripElem *se)
Stripget_strip_by_name (ListBase *seqbase, const char *name, bool recursive)
Maskactive_mask_get (Scene *scene)
void alpha_mode_from_file_extension (Strip *strip)
bool strip_has_valid_data (const Strip *strip)
bool sequencer_strip_generates_image (Strip *strip)
void set_scale_to_fit (const Strip *strip, const int image_width, const int image_height, const int preview_width, const int preview_height, const eSeqImageFitMethod fit_method)
void ensure_unique_name (Strip *strip, Scene *scene)
void sound_blend_write (BlendWriter *writer, ListBase *soundbase)
void sound_blend_read_data (BlendDataReader *reader, ListBase *lb)
White Balance Modifier
static void whiteBalance_init_data (StripModifierData *smd)
static void whiteBalance_apply (const StripScreenQuad &, StripModifierData *smd, ImBuf *ibuf, ImBuf *mask)
Curves Modifier
static void curves_init_data (StripModifierData *smd)
static void curves_free_data (StripModifierData *smd)
static void curves_copy_data (StripModifierData *target, StripModifierData *smd)
static void curves_apply (const StripScreenQuad &, StripModifierData *smd, ImBuf *ibuf, ImBuf *mask)
Hue Correct Modifier
static void hue_correct_init_data (StripModifierData *smd)
static void hue_correct_free_data (StripModifierData *smd)
static void hue_correct_copy_data (StripModifierData *target, StripModifierData *smd)
static void hue_correct_apply (const StripScreenQuad &, StripModifierData *smd, ImBuf *ibuf, ImBuf *mask)
Brightness/Contrast Modifier
static void brightcontrast_apply (const StripScreenQuad &, StripModifierData *smd, ImBuf *ibuf, ImBuf *mask)
Mask Modifier
static float load_mask_min (const uchar *&mask)
static float load_mask_min (const float *&mask)
static float load_mask_min (const void *&)
static void maskmodifier_apply (const StripScreenQuad &, StripModifierData *, ImBuf *ibuf, ImBuf *mask)
Tonemap Modifier
static void tonemapmodifier_init_data (StripModifierData *smd)
static void pixels_to_scene_linear_float (const ColorSpace *colorspace, float4 *pixels, int64_t count)
static void pixels_to_scene_linear_byte (const ColorSpace *colorspace, const uchar *pixels, float4 *dst, int64_t count)
static void scene_linear_to_image_chunk_float (ImBuf *ibuf, IndexRange range)
static void scene_linear_to_image_chunk_byte (float4 *src, ImBuf *ibuf, IndexRange range)
static void tonemap_simple (float4 *scene_linear, ImBuf *mask, IndexRange range, const AvgLogLum &avg)
static void tonemap_rd_photoreceptor (float4 *scene_linear, ImBuf *mask, IndexRange range, const AvgLogLum &avg)
static bool is_point_inside_quad (const StripScreenQuad &quad, int x, int y)
static void tonemap_calc_chunk_luminance (const StripScreenQuad &quad, const bool all_pixels_inside_quad, const int width, const IndexRange y_range, const float4 *scene_linear, AreaLuminance &r_lum)
static AreaLuminance tonemap_calc_input_luminance (const StripScreenQuad &quad, const ImBuf *ibuf)
static void tonemapmodifier_apply (const StripScreenQuad &quad, StripModifierData *smd, ImBuf *ibuf, ImBuf *mask)
.blend File I/O
void modifier_blend_write (BlendWriter *writer, ListBase *modbase)
void modifier_blend_read_data (BlendDataReader *reader, ListBase *lb)
Strip Stack Rendering Functions
static ImBufseq_render_strip_stack (const RenderData *context, SeqRenderState *state, ListBase *channels, ListBase *seqbasep, float timeline_frame, int chanshown)
static ImBufdo_render_strip_uncached (const RenderData *context, SeqRenderState *state, Strip *strip, float timeline_frame, bool *r_is_proxy_image)
ImBufseq_render_strip (const RenderData *context, SeqRenderState *state, Strip *strip, float timeline_frame)
static bool seq_must_swap_input_in_blend_mode (Strip *strip)
static StripEarlyOut strip_get_early_out_for_blend_mode (Strip *strip)
static ImBufseq_render_strip_stack_apply_effect (const RenderData *context, Strip *strip, float timeline_frame, ImBuf *ibuf1, ImBuf *ibuf2)
static bool is_opaque_alpha_over (const Strip *strip)
static void evict_caches_if_full (Scene *scene)
ImBufrender_give_ibuf (const RenderData *context, float timeline_frame, int chanshown)
ImBufseq_render_give_ibuf_seqbase (const RenderData *context, float timeline_frame, int chan_shown, ListBase *channels, ListBase *seqbasep)
ImBufrender_give_ibuf_direct (const RenderData *context, float timeline_frame, Strip *strip)
bool render_is_muted (const ListBase *channels, const Strip *strip)
Color-space utility functions
void seq_imbuf_assign_spaces (const Scene *scene, ImBuf *ibuf)
void seq_imbuf_to_sequencer_space (const Scene *scene, ImBuf *ibuf, bool make_float)
void render_imbuf_from_sequencer_space (const Scene *scene, ImBuf *ibuf)
void render_pixel_from_sequencer_space_v4 (const Scene *scene, float pixel[4])
Rendering utility functions
void render_new_render_data (Main *bmain, Depsgraph *depsgraph, Scene *scene, int rectx, int recty, int preview_render_size, int for_render, RenderData *r_context)
StripElemrender_give_stripelem (const Scene *scene, const Strip *strip, int timeline_frame)
Vector< Strip * > seq_shown_strips_get (const Scene *scene, ListBase *channels, ListBase *seqbase, const int timeline_frame, const int chanshown)
StripScreenQuad get_strip_screen_quad (const RenderData *context, const Strip *strip)
static bool is_quad_a_inside_b (const StripScreenQuad &a, const StripScreenQuad &b)
Preprocessing & Effects

Input preprocessing for STRIP_TYPE_IMAGE, STRIP_TYPE_MOVIE, STRIP_TYPE_MOVIECLIP and STRIP_TYPE_SCENE.

Do all the things you can't really do afterwards using sequence effects (read: before re-scaling to render resolution has been done).

Order is important!

  • De-interlace.
  • Crop and transform in image source coordinate space.
  • Flip X + Flip Y (could be done afterwards, backward compatibility).
  • Promote image to float data (affects pipeline operations afterwards).
  • Color balance (is most efficient in the byte -> float (future: half -> float should also work fine!) case, if done on load, since we can use lookup tables).
  • Pre-multiply.
static bool sequencer_use_transform (const Strip *strip)
static bool sequencer_use_crop (const Strip *strip)
static bool seq_input_have_to_preprocess (const RenderData *context, Strip *strip, float)
static bool seq_need_scale_to_render_size (const Strip *strip, bool is_proxy_image)
static float3x3 sequencer_image_crop_transform_matrix (const Strip *strip, const ImBuf *in, const ImBuf *out, const float image_scale_factor, const float preview_scale_factor)
static void sequencer_image_crop_init (const Strip *strip, const ImBuf *in, float crop_scale_factor, rctf *r_crop)
static bool is_strip_covering_screen (const RenderData *context, const Strip *strip)
static eIMBInterpolationFilterMode get_auto_filter (const StripTransform *transform)
static void sequencer_preprocess_transform_crop (ImBuf *in, ImBuf *out, const RenderData *context, Strip *strip, const bool is_proxy_image)
static void multiply_ibuf (ImBuf *ibuf, const float fmul, const bool multiply_alpha)
static ImBufinput_preprocess (const RenderData *context, Strip *strip, float timeline_frame, ImBuf *ibuf, const bool is_proxy_image)
static ImBufseq_render_preprocess_ibuf (const RenderData *context, Strip *strip, ImBuf *ibuf, float timeline_frame, bool use_preprocess, const bool is_proxy_image)
static ImBufseq_render_effect_strip_impl (const RenderData *context, SeqRenderState *state, Strip *strip, float timeline_frame)
Individual strip rendering functions
static void convert_multilayer_ibuf (ImBuf *ibuf)
static ImBufseq_render_image_strip_view (const RenderData *context, Strip *strip, char *filepath, char *prefix, const char *ext, int view_id)
static bool seq_image_strip_is_multiview_render (Scene *scene, Strip *strip, int totfiles, const char *filepath, char *r_prefix, const char *r_ext)
static ImBufcreate_missing_media_image (const RenderData *context, int width, int height)
static ImBufseq_render_image_strip (const RenderData *context, Strip *strip, int timeline_frame, bool *r_is_proxy_image)
static ImBufseq_render_movie_strip_custom_file_proxy (const RenderData *context, Strip *strip, int timeline_frame)
static IMB_Timecode_Type seq_render_movie_strip_timecode_get (Strip *strip)
static ImBufseq_render_movie_strip_view (const RenderData *context, Strip *strip, float timeline_frame, StripAnim *sanim, bool *r_is_proxy_image)
static ImBufseq_render_movie_strip (const RenderData *context, Strip *strip, float timeline_frame, bool *r_is_proxy_image)
static ImBufseq_get_movieclip_ibuf (Strip *strip, MovieClipUser user)
static ImBufseq_render_movieclip_strip (const RenderData *context, Strip *strip, float frame_index, bool *r_is_proxy_image)
ImBufseq_render_mask (const RenderData *context, Mask *mask, float frame_index, bool make_float)
static ImBufseq_render_mask_strip (const RenderData *context, Strip *strip, float frame_index)
static ImBufseq_render_scene_strip (const RenderData *context, Strip *strip, float frame_index, float timeline_frame)
static ImBufdo_render_strip_seqbase (const RenderData *context, SeqRenderState *state, Strip *strip, float frame_index)
Allocate / Free Functions
StripProxyseq_strip_proxy_alloc ()
static StripDataseq_strip_alloc (int type)
static void seq_free_strip (StripData *data)
Stripstrip_alloc (ListBase *lb, int timeline_frame, int channel, int type)
static void seq_strip_free_ex (Scene *scene, Strip *strip, const bool do_cache, const bool do_id_user)
void strip_free (Scene *scene, Strip *strip)
void seq_free_strip_recurse (Scene *scene, Strip *strip, const bool do_id_user)
Editingediting_get (const Scene *scene)
Editingediting_ensure (Scene *scene)
void editing_free (Scene *scene, const bool do_id_user)
static void seq_new_fix_links_recursive (Strip *strip, blender::Map< Strip *, Strip * > strip_map)
SequencerToolSettingstool_settings_init ()
SequencerToolSettingstool_settings_ensure (Scene *scene)
void tool_settings_free (SequencerToolSettings *tool_settings)
eSeqImageFitMethod tool_settings_fit_method_get (Scene *scene)
short tool_settings_snap_mode_get (Scene *scene)
short tool_settings_snap_flag_get (Scene *scene)
int tool_settings_snap_distance_get (Scene *scene)
void tool_settings_fit_method_set (Scene *scene, eSeqImageFitMethod fit_method)
eSeqOverlapMode tool_settings_overlap_mode_get (Scene *scene)
int tool_settings_pivot_point_get (Scene *scene)
ListBaseactive_seqbase_get (const Editing *ed)
void active_seqbase_set (Editing *ed, ListBase *seqbase)
static MetaStackseq_meta_stack_alloc (const Scene *scene, Strip *strip_meta)
MetaStackmeta_stack_active_get (const Editing *ed)
void meta_stack_set (const Scene *scene, Strip *dst)
Stripmeta_stack_pop (Editing *ed)
Duplicate Functions
static Stripstrip_duplicate (const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Strip *strip, int dupe_flag, const int flag, blender::Map< Strip *, Strip * > &strip_map)
static Stripstrip_duplicate_recursive_impl (const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Strip *strip, const int dupe_flag, blender::Map< Strip *, Strip * > &strip_map)
Stripstrip_duplicate_recursive (const Scene *scene_src, Scene *scene_dst, ListBase *new_seq_list, Strip *strip, int dupe_flag)
static void seqbase_dupli_recursive (const Scene *scene_src, Scene *scene_dst, ListBase *nseqbase, const ListBase *seqbase, int dupe_flag, const int flag, blender::Map< Strip *, Strip * > &strip_map)
void seqbase_duplicate_recursive (const Scene *scene_src, Scene *scene_dst, ListBase *nseqbase, const ListBase *seqbase, int dupe_flag, const int flag)
bool is_valid_strip_channel (const Strip *strip)
SequencerToolSettingstool_settings_copy (SequencerToolSettings *tool_settings)

Variables

static Mutex final_image_cache_mutex
static Mutex source_image_cache_mutex
static constexpr int MAX_THUMBNAILS = 5000
static Mutex thumb_cache_mutex
static SeqFontMap g_font_map
static blender::Mutex presence_lock
static blender::Mutex seq_render_mutex
DrawViewFn view3d_fn = nullptr
const SoundModifierWorkerInfo workersSoundModifiers []
static Mutex lookup_lock
constexpr int MAX_CHANNELS = 128
static constexpr int THUMB_SIZE = 256

Text Effect

constexpr uint16_t JFA_INVALID = 0xFFFF
void text_effect_get_handle (EffectHandle &rval)
bool effects_can_render_text (const Strip *strip)
static void init_text_effect (Strip *strip)
void effect_text_font_unload (TextVars *data, const bool do_id_user)
void effect_text_font_load (TextVars *data, const bool do_id_user)
static void free_text_effect (Strip *strip, const bool do_id_user)
static void load_text_effect (Strip *strip)
static void copy_text_effect (Strip *dst, const Strip *src, const int flag)
static int num_inputs_text ()
static StripEarlyOut early_out_text (const Strip *strip, float)
static void text_gaussian_blur_x (const Span< float > gaussian, int half_size, int start_line, int width, int height, const uchar *rect, uchar *dst, const rcti &shadow_rect)
static void text_gaussian_blur_y (const Span< float > gaussian, int half_size, int start_line, int width, int height, const uchar *rect, uchar *dst, const rcti &shadow_rect)
static void clamp_rect (int width, int height, rcti &r_rect)
static void initialize_shadow_alpha (int width, int height, int2int2 offset, const rcti &shadow_rect, const uchar *input, Array< uchar > &r_shadow_mask)
static void composite_shadow (int width, const rcti &shadow_rect, const float4 &shadow_color, const Array< uchar > &shadow_mask, uchar *output)
static void draw_text_shadow (const RenderData *context, const TextVars *data, int line_height, const rcti &rect, ImBuf *out)
static void jump_flooding_pass (Span< JFACoord > input, MutableSpan< JFACoord > output, int2int2 size, IndexRange x_range, IndexRange y_range, int step_size)
static void text_draw (const TextVarsRuntime *runtime, float color[4])
static rcti draw_text_outline (const RenderData *context, const TextVars *data, const TextVarsRuntime *runtime, const ColorManagedDisplay *display, ImBuf *out)
static void fill_rect_alpha_under (const ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, float corner_radius)
static int text_effect_line_size_get (const RenderData *context, const Strip *strip)
static int text_effect_font_init (const RenderData *context, const Strip *strip, int font_flags)
static Vector< CharInfobuild_character_info (const TextVars *data, int font)
static int wrap_width_get (const TextVars *data, const int2int2 image_size)
static void apply_word_wrapping (const TextVars *data, TextVarsRuntime *runtime, const int2int2 image_size, Vector< CharInfo > &characters)
static int text_box_width_get (const Vector< LineInfo > &lines)
static float2float2 horizontal_alignment_offset_get (const TextVars *data, float line_width, int width_max)
static float2float2 anchor_offset_get (const TextVars *data, int width_max, int text_height)
static void calc_boundbox (const TextVars *data, TextVarsRuntime *runtime, const int2int2 image_size)
static void apply_text_alignment (const TextVars *data, TextVarsRuntime *runtime, const int2int2 image_size)
static void calc_text_runtime (const Strip *strip, int font, const int2int2 image_size)
static ImBufdo_text_effect (const RenderData *context, Strip *strip, float, float, ImBuf *, ImBuf *)

Color Balance Modifier

static constexpr int CB_TABLE_SIZE = 1024
static float color_balance_lgg (float in, const float lift, const float gain, const float gamma, const float mul)
static float color_balance_sop (float in, const float slope, const float offset, const float power, float mul)
static void make_cb_table_lgg (float lift, float gain, float gamma, float mul, float r_table[CB_TABLE_SIZE])
static void make_cb_table_sop (float slope, float offset, float power, float mul, float r_table[CB_TABLE_SIZE])
static void colorBalance_init_data (StripModifierData *smd)
static void colorBalance_apply (const StripScreenQuad &, StripModifierData *smd, ImBuf *ibuf, ImBuf *mask)

Public Modifier Functions

static StripModifierTypeInfo modifiersTypes [NUM_SEQUENCE_MODIFIER_TYPES]
const StripModifierTypeInfomodifier_type_info_get (int type)
StripModifierDatamodifier_new (Strip *strip, const char *name, int type)
bool modifier_remove (Strip *strip, StripModifierData *smd)
void modifier_clear (Strip *strip)
void modifier_free (StripModifierData *smd)
void modifier_unique_name (Strip *strip, StripModifierData *smd)
StripModifierDatamodifier_find_by_name (Strip *strip, const char *name)
static bool skip_modifier (Scene *scene, const StripModifierData *smd, int timeline_frame)
void modifier_apply_stack (const RenderData *context, const Strip *strip, ImBuf *ibuf, int timeline_frame)
void modifier_list_copy (Strip *strip_new, Strip *strip)
int sequence_supports_modifiers (Strip *strip)

Typedef Documentation

◆ DrawViewFn

Initial value:
struct ImBuf *(*)(struct Depsgraph *,
struct Scene *,
struct View3DShading *,
struct Object *,
int,
int,
int,
const char *,
struct GPUOffScreen *,
struct GPUViewport *,
char *)
eDrawType
eV3DOffscreenDrawFlag
eImBufFlags

Definition at line 25 of file SEQ_offscreen.hh.

◆ ForEachFunc

using blender::seq::ForEachFunc = bool (*)(Strip *strip, void *user_data)

Callback format for the for_each function below.

Definition at line 23 of file SEQ_iterator.hh.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DO_SINGLE_WIPE 
DO_DOUBLE_WIPE 
DO_IRIS_WIPE 
DO_CLOCK_WIPE 

Definition at line 33 of file SEQ_effects.hh.

◆ anonymous enum

anonymous enum
Enumerator
SIDE_MOUSE 
SIDE_NONE 
SIDE_LEFT 
SIDE_RIGHT 
SIDE_BOTH 
SIDE_NO_CHANGE 

Definition at line 29 of file SEQ_sequencer.hh.

◆ eIntersectType

Enumerator
FULL 
PARTIAL_START 
PARTIAL_END 
INSIDE 
NONE 

Definition at line 836 of file strip_retiming.cc.

◆ eLoadFlags

#SeqLoadData.flags

Enumerator
SEQ_LOAD_SOUND_CACHE 
SEQ_LOAD_SOUND_MONO 
SEQ_LOAD_MOVIE_SYNC_FPS 
SEQ_LOAD_SET_VIEW_TRANSFORM 

Definition at line 26 of file SEQ_add.hh.

◆ eOvelapDescrition

Enumerator
STRIP_OVERLAP_NONE 
STRIP_OVERLAP_IS_FULL 
STRIP_OVERLAP_IS_INSIDE 
STRIP_OVERLAP_LEFT_SIDE 
STRIP_OVERLAP_RIGHT_SIDE 

Definition at line 349 of file strip_transform.cc.

◆ eRangeType

Enumerator
LINEAR 
TRANSITION 

Definition at line 831 of file strip_retiming.cc.

◆ eSplitMethod

Enumerator
SPLIT_SOFT 
SPLIT_HARD 

Definition at line 54 of file SEQ_edit.hh.

◆ eTaskId

Enumerator
SEQ_TASK_MAIN_RENDER 
SEQ_TASK_PREFETCH_RENDER 

Definition at line 23 of file SEQ_render.hh.

◆ StripEarlyOut

Enumerator
NoInput 
DoEffect 
UseInput1 
UseInput2 

Definition at line 25 of file SEQ_effects.hh.

Function Documentation

◆ active_mask_get()

Mask * blender::seq::active_mask_get ( Scene * scene)

◆ active_seqbase_get()

ListBase * blender::seq::active_seqbase_get ( const Editing * ed)

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

Parameters
edsequence editor data
Returns
pointer to active seqbase. returns NULL if ed is NULL

Definition at line 420 of file sequencer.cc.

Referenced by blender::ed::vse::all_strips_from_context(), blo_do_versions_pre250(), blender::ed::vse::channel_draw_context_init(), blender::ed::transform::createTransSeqData(), blender::ed::transform::createTransSeqImageData(), blender::ed::vse::deselect_all_strips(), blender::ed::vse::draw_timeline_seq_display(), ensure_change_frame_keylist(), blender::ed::transform::freeSeqData(), blender::ed::transform::gizmo2d_calc_bounds(), blender::ed::transform::gizmo2d_calc_rotation(), blender::ed::transform::gizmo2d_calc_transform_orientation(), blender::ed::transform::gizmo2d_calc_transform_pivot(), blender::ed::transform::query_snap_sources_timeline(), blender::ed::transform::query_snap_targets_timeline(), blender::ed::transform::recalcData_sequencer_retiming(), retiming_key_overlap(), blender::ed::vse::segment_speed_set_exec(), blender::ed::vse::select_linked_internal(), blender::ed::vse::select_linked_time_strip(), blender::ed::vse::select_more_less_impl(), blender::ed::vse::selected_strips_from_context(), blender::ed::vse::seq_box_select_strip_from_preview(), seq_get_snap_targets(), blender::ed::transform::seq_get_strip_pivot_median(), seq_prefetch_frames(), seq_prefetch_scene_strip_is_rendered(), blender::ed::vse::seq_proxy_build_job(), blender::ed::transform::seq_transform_cancel(), blender::ed::vse::seq_view_collection_rect_timeline(), blender::ed::transform::seqbase_active_get(), blender::ed::vse::sequencer_add_duplicate_exec(), blender::ed::vse::sequencer_connect_exec(), blender::ed::vse::sequencer_delete_exec(), blender::ed::vse::sequencer_disconnect_exec(), blender::ed::vse::sequencer_drop_copy(), blender::ed::vse::sequencer_enable_proxies_exec(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_meta_separate_exec(), blender::ed::vse::sequencer_rebuild_proxy_exec(), blender::ed::vse::sequencer_select_exec(), blender::ed::vse::sequencer_select_grouped_exec(), blender::ed::vse::sequencer_select_side_of_frame(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_separate_images_exec(), blender::ed::vse::sequencer_split_exec(), blender::ed::vse::sequencer_swap_exec(), blender::ed::vse::sequencer_view_all_exec(), blender::ed::vse::strip_modifier_copy_exec(), blender::ed::vse::strip_select_from_preview(), and blender::ed::vse::strip_speed_set_exec().

◆ active_seqbase_set()

void blender::seq::active_seqbase_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 429 of file sequencer.cc.

Referenced by meta_stack_pop(), meta_stack_set(), seq_prefetch_update_active_seqbase(), and seq_update_meta_disp_range().

◆ add_effect_get_handle()

void blender::seq::add_effect_get_handle ( EffectHandle & rval)

◆ add_effect_strip()

◆ add_image_init_alpha_mode()

◆ add_image_load_file()

void blender::seq::add_image_load_file ( Scene * scene,
Strip * strip,
size_t strip_frame,
const char * filename )

Set directory used by image strip.

Parameters
stripimage strip to be changed
strip_frameframe index of strip to be changed
filenameimage filename (only filename, not complete path)

Definition at line 201 of file strip_add.cc.

References StripElem::filename, render_give_stripelem(), STRNCPY(), and time_start_frame_get().

Referenced by blender::ed::vse::sequencer_add_image_strip_load_files().

◆ add_image_set_directory()

void blender::seq::add_image_set_directory ( Strip * strip,
const char * dirpath )

Set directory used by image strip.

Parameters
stripimage strip to be changed
pathdirectory path

Definition at line 196 of file strip_add.cc.

References Strip::data, StripData::dirpath, and STRNCPY().

Referenced by blender::ed::vse::sequencer_add_image_strip_load_files().

◆ add_image_strip()

◆ add_load_data_init()

void blender::seq::add_load_data_init ( LoadData * load_data,
const char * name,
const char * path,
int start_frame,
int channel )

Initialize common SeqLoadData members

Parameters
load_dataSeqLoadData to be initialized
namestrip name (can be NULL)
pathpath to file that is used as strip input (can be NULL)
start_frametimeline frame where strip will be created
channeltimeline channel where strip will be created

Definition at line 61 of file strip_add.cc.

References blender::seq::LoadData::channel, blender::seq::LoadData::name, blender::seq::LoadData::path, blender::seq::LoadData::start_frame, and STRNCPY().

◆ add_mask_strip()

Strip * blender::seq::add_mask_strip ( Scene * scene,
ListBase * seqbase,
LoadData * load_data )

Add mask strip.

Parameters
sceneScene where strips will be added
seqbaseListBase where strips will be added
load_dataSeqLoadData with information necessary to create strip
Returns
created strip

Definition at line 154 of file strip_add.cc.

References BKE_mask_get_duration(), blender::seq::LoadData::channel, id_us_ensure_real(), Strip::len, blender::seq::LoadData::mask, Strip::mask, blender::seq::LoadData::start_frame, strip_add_generic_update(), strip_add_set_name(), strip_alloc(), and STRIP_TYPE_MASK.

Referenced by blender::ed::vse::sequencer_add_mask_strip_exec().

◆ add_meta_strip()

Strip * blender::seq::add_meta_strip ( Scene * scene,
ListBase * seqbase,
LoadData * load_data )

Add meta strip.

Parameters
sceneScene where strips will be added
seqbaseListBase where strips will be added
load_dataSeqLoadData with information necessary to create strip
Returns
created strip

Definition at line 379 of file strip_add.cc.

References blender::seq::LoadData::channel, Strip::len, Strip::start, blender::seq::LoadData::start_frame, strip_add_generic_update(), strip_add_set_name(), strip_alloc(), and STRIP_TYPE_META.

◆ add_movie_reload_if_needed()

void blender::seq::add_movie_reload_if_needed ( Main * bmain,
Scene * scene,
Strip * strip,
bool * r_was_reloaded,
bool * r_can_produce_frames )

◆ add_movie_strip()

Strip * blender::seq::add_movie_strip ( Main * bmain,
Scene * scene,
ListBase * seqbase,
LoadData * load_data )

Add movie strip.

Parameters
bmainMain reference
sceneScene where strips will be added
seqbaseListBase where strips will be added
load_dataSeqLoadData with information necessary to create strip
Returns
created strip

Definition at line 397 of file strip_add.cc.

References blender::seq::LoadData::adjust_playback_rate, blender::seq::LoadData::allow_invalid_file, StripAnim::anim, Strip::anims, BKE_main_blendfile_path(), BKE_scene_multiview_view_prefix_get(), BLI_addtail(), BLI_path_abs(), BLI_path_split_dir_file(), blender::seq::LoadData::channel, StripData::colorspace_settings, data, Strip::data, DEG_id_tag_update(), FILE_MAX, StripElem::filename, blender::seq::LoadData::fit_method, Strip::flag, blender::seq::LoadData::flags, i, IB_byte_data, Scene::id, ID_RECALC_AUDIO_FPS, ID_RECALC_SEQUENCER_STRIPS, IMB_TC_RECORD_RUN, Strip::len, Strip::media_playback_rate, MEM_calloc_arrayN(), MEM_callocN(), MEM_freeN(), MEM_mallocN(), MOV_get_duration_frames(), MOV_get_fps(), MOV_get_fps_num_denom(), MOV_get_image_height(), MOV_get_image_width(), MOV_get_start_offset_seconds(), MOV_load_metadata(), ColorManagedColorspaceSettings::name, openanim(), blender::seq::LoadData::path, Scene::r, R_IMF_VIEWS_INDIVIDUAL, blender::seq::LoadData::r_video_stream_start, seq_anim_add_suffix(), SEQ_AUTO_PLAYBACK_RATE, SEQ_LOAD_MOVIE_SYNC_FPS, seq_multiview_name(), seq_num_files(), SEQ_USE_VIEWS, set_scale_to_fit(), blender::seq::LoadData::start_frame, blender::seq::LoadData::stereo3d_format, Strip::stereo3d_format, strip_add_generic_update(), strip_add_set_name(), strip_add_set_view_transform(), strip_alloc(), STRIP_TYPE_MOVIE, STRNCPY(), blender::seq::LoadData::use_multiview, blender::seq::LoadData::views_format, and Strip::views_format.

Referenced by blender::ed::vse::sequencer_add_movie_multiple_strips(), and blender::ed::vse::sequencer_add_movie_single_strip().

◆ add_movieclip_strip()

Strip * blender::seq::add_movieclip_strip ( Scene * scene,
ListBase * seqbase,
LoadData * load_data )

Add movieclip strip.

Parameters
sceneScene where strips will be added
seqbaseListBase where strips will be added
load_dataSeqLoadData with information necessary to create strip
Returns
created strip

Definition at line 142 of file strip_add.cc.

References BKE_movieclip_get_duration(), blender::seq::LoadData::channel, blender::seq::LoadData::clip, Strip::clip, id_us_ensure_real(), Strip::len, blender::seq::LoadData::start_frame, strip_add_generic_update(), strip_add_set_name(), strip_alloc(), and STRIP_TYPE_MOVIECLIP.

Referenced by blender::ed::vse::sequencer_add_movieclip_strip_exec().

◆ add_reload_new_file()

void blender::seq::add_reload_new_file ( Main * bmain,
Scene * scene,
Strip * strip,
const bool lock_range )

Definition at line 529 of file strip_add.cc.

References StripAnim::anim, Strip::anim_endofs, Strip::anim_startofs, Strip::anims, BKE_main_blendfile_path_from_global(), BKE_mask_get_duration(), BKE_movieclip_get_duration(), BKE_scene_multiview_view_prefix_get(), BKE_sound_get_length(), BLI_addtail(), BLI_path_abs(), BLI_path_join, ceil, Strip::clip, StripData::colorspace_settings, Strip::data, StripData::dirpath, ELEM, FILE_MAX, StripElem::filename, ListBase::first, Strip::flag, FPS, free_strip_proxy(), i, IB_animdeinterlace, IB_byte_data, IMB_TC_RECORD_RUN, Strip::len, Strip::mask, MEM_allocN_len, MEM_mallocN(), MOV_get_duration_frames(), MOV_load_metadata(), ColorManagedColorspaceSettings::name, openanim(), StripData::proxy, Scene::r, R_IMF_VIEWS_INDIVIDUAL, R_MULTIVIEW, relations_invalidate_cache_raw(), relations_strip_free_anim(), Strip::scene, seq_anim_add_suffix(), SEQ_FILTERY, seq_multiview_name(), seq_num_files(), SEQ_USE_VIEWS, Strip::sound, Strip::streamindex, STRIP_TYPE_IMAGE, STRIP_TYPE_MASK, STRIP_TYPE_META, STRIP_TYPE_MOVIE, STRIP_TYPE_MOVIECLIP, STRIP_TYPE_SCENE, STRIP_TYPE_SOUND_RAM, StripData::stripdata, StripProxy::tc, time_left_handle_frame_get(), time_left_handle_frame_set(), time_right_handle_frame_get(), time_right_handle_frame_set(), Strip::type, UNUSED_VARS, and Strip::views_format.

Referenced by add_movie_reload_if_needed(), seq_split_set_left_hold_offset(), seq_split_set_right_hold_offset(), blender::ed::vse::sequencer_change_path_exec(), and blender::ed::vse::sequencer_reload_exec().

◆ add_scene_strip()

Strip * blender::seq::add_scene_strip ( Scene * scene,
ListBase * seqbase,
LoadData * load_data )

Add scene strip.

Parameters
sceneScene where strips will be added
seqbaseListBase where strips will be added
load_dataSeqLoadData with information necessary to create strip
Returns
created strip

Definition at line 130 of file strip_add.cc.

References blender::seq::LoadData::channel, id_us_ensure_real(), Strip::len, Scene::r, blender::seq::LoadData::scene, Strip::scene, blender::seq::LoadData::start_frame, strip_add_generic_update(), strip_add_set_name(), strip_alloc(), and STRIP_TYPE_SCENE.

Referenced by blender::ed::vse::sequencer_add_scene_strip_exec(), and blender::ed::vse::sequencer_add_scene_strip_new_exec().

◆ add_sound_av_sync()

void blender::seq::add_sound_av_sync ( Main * bmain,
Scene * scene,
Strip * strip,
LoadData * load_data )

Sync up the sound strip 'seq' with the video data in 'load_data'. This is intended to be used after adding a movie strip and you want to make sure that the audio track is properly synced up with the video.

Parameters
bmainMain reference
sceneScene where the sound strip is located
stripThe sound strip that will be synced
load_dataSeqLoadData with information necessary to sync the sound strip

Definition at line 363 of file strip_add.cc.

Referenced by blender::ed::vse::sequencer_add_movie_sync_sound_strip().

◆ add_sound_strip()

Strip * blender::seq::add_sound_strip ( Main * bmain,
Scene * scene,
ListBase * seqbase,
LoadData * load_data )

Add sound strip.

Note
Use SEQ_add_image_set_directory() and SEQ_add_image_load_file() to load image sequences
Parameters
bmainMain reference
sceneScene where strips will be added
seqbaseListBase where strips will be added
load_dataSeqLoadData with information necessary to create strip
Returns
created strip

Definition at line 370 of file strip_add.cc.

Referenced by blender::ed::vse::sequencer_add_movie_multiple_strips(), blender::ed::vse::sequencer_add_movie_single_strip(), blender::ed::vse::sequencer_add_sound_multiple_strips(), and blender::ed::vse::sequencer_add_sound_single_strip().

◆ adjustment_effect_get_handle()

◆ alpha_mode_from_file_extension()

void blender::seq::alpha_mode_from_file_extension ( Strip * strip)

◆ alpha_opaque() [1/2]

bool blender::seq::alpha_opaque ( float alpha)
static

Definition at line 38 of file vse_effect_blend.cc.

◆ alpha_opaque() [2/2]

bool blender::seq::alpha_opaque ( uchar alpha)
static

◆ alpha_over_effect_get_handle()

◆ alpha_under_effect_get_handle()

void blender::seq::alpha_under_effect_get_handle ( EffectHandle & rval)

◆ anchor_offset_get()

float2float2 blender::seq::anchor_offset_get ( const TextVars * data,
int width_max,
int text_height )
static

◆ animation_backup_original()

◆ animation_drivers_exist()

bool blender::seq::animation_drivers_exist ( Scene * scene)

◆ animation_duplicate_backup_to_scene()

◆ animation_keyframes_exist()

◆ animation_restore_original()

◆ apply_and_advance_mask() [1/3]

void blender::seq::apply_and_advance_mask ( float4 input,
float4 & result,
const float *& mask )
static

Definition at line 102 of file sequencer/intern/modifier.cc.

References input, blender::math::interpolate(), mask(), and result.

◆ apply_and_advance_mask() [2/3]

◆ apply_and_advance_mask() [3/3]

void blender::seq::apply_and_advance_mask ( float4 ,
float4 & ,
const void *&  )
static

Definition at line 112 of file sequencer/intern/modifier.cc.

◆ apply_blend_function()

template<typename T, typename Func>
void blender::seq::apply_blend_function ( float fac,
int64_t size,
const T * src1,
const T * src2,
T * dst,
Func blend_function )
static

Definition at line 146 of file vse_effect_blend.cc.

References i, size(), and T.

Referenced by do_blend_effect_byte(), and do_blend_effect_float().

◆ apply_effect_op()

template<typename OpT>
void blender::seq::apply_effect_op ( const OpT & op,
const ImBuf * src1,
const ImBuf * src2,
ImBuf * dst )
static

◆ apply_modifier_op()

template<typename T>
void blender::seq::apply_modifier_op ( T & op,
ImBuf * ibuf,
const ImBuf * mask )
static

◆ apply_text_alignment()

◆ apply_word_wrapping()

◆ are_strips_connected_together()

bool blender::seq::are_strips_connected_together ( blender::VectorSet< Strip * > & strip_list)

Check whether the list of strips are a single connection "group", that is, they are all connected to each other and there are no outside connections.

Definition at line 138 of file strip_connect.cc.

References connected_strips_get(), blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), and blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size().

Referenced by blender::ed::vse::sequencer_connect_exec().

◆ blend_mode_effect_get_handle()

void blender::seq::blend_mode_effect_get_handle ( EffectHandle & rval)

◆ blend_read()

void blender::seq::blend_read ( BlendDataReader * reader,
ListBase * seqbase )

Definition at line 949 of file sequencer.cc.

References for_each_callback(), and strip_read_data_cb().

Referenced by scene_blend_read_data().

◆ blend_write()

void blender::seq::blend_write ( BlendWriter * writer,
ListBase * seqbase )

Read and Write functions for .blend file data.

Definition at line 822 of file sequencer.cc.

References for_each_callback(), seq_set_strip_done_cb(), and strip_write_data_cb().

Referenced by scene_blend_write().

◆ blur_isolate_highlights()

void blender::seq::blur_isolate_highlights ( const float4 * in,
float4 * out,
int width,
int height,
float threshold,
float boost,
float clamp )
static

◆ brightcontrast_apply()

◆ build_character_info()

◆ cache_cleanup()

◆ cache_cleanup_final()

void blender::seq::cache_cleanup_final ( Scene * scene)

Definition at line 61 of file strip_relations.cc.

References final_image_cache_clear().

Referenced by update_sequencer().

◆ cache_cleanup_intra()

void blender::seq::cache_cleanup_intra ( Scene * scene)

Definition at line 56 of file strip_relations.cc.

References intra_frame_cache_invalidate().

Referenced by update_sequencer().

◆ calc_boundbox()

◆ calc_text_runtime()

◆ can_use_proxy()

bool blender::seq::can_use_proxy ( const RenderData * context,
const Strip * strip,
int psize )

◆ channel_get_by_index()

SeqTimelineChannel * blender::seq::channel_get_by_index ( const ListBase * channels,
int channel_index )

◆ channel_index_get()

int blender::seq::channel_index_get ( const SeqTimelineChannel * channel)

Definition at line 76 of file channels.cc.

References SeqTimelineChannel::index.

◆ channel_is_locked()

◆ channel_is_muted()

◆ channel_name_get()

char * blender::seq::channel_name_get ( ListBase * channels,
const int channel_index )

Definition at line 70 of file channels.cc.

References channel_get_by_index(), and SeqTimelineChannel::name.

Referenced by blender::ed::vse::draw_channel_labels().

◆ channels_displayed_get()

ListBase * blender::seq::channels_displayed_get ( const Editing * ed)

Definition at line 28 of file channels.cc.

Referenced by blender::ed::vse::all_strips_from_context(), blender::ed::vse::can_select_handle(), blender::ed::vse::channel_draw_context_init(), blender::ed::transform::createTransSeqImageData(), blender::ed::vse::find_unlocked_unmuted_channel(), blender::ed::transform::gizmo2d_calc_bounds(), blender::ed::transform::gizmo2d_calc_rotation(), blender::ed::transform::gizmo2d_calc_transform_orientation(), blender::ed::transform::gizmo2d_calc_transform_pivot(), blender::ed::vse::preview_draw_all_image_overlays(), blender::ed::transform::query_snap_sources_preview(), blender::ed::transform::query_snap_targets_preview(), blender::ed::transform::query_snap_targets_timeline(), screen_ctx_selected_editable_sequences(), screen_ctx_selected_editable_strips(), blender::ed::vse::selected_strips_from_context(), blender::ed::vse::seq_box_select_strip_from_preview(), seq_edit_split_operation_permitted_check(), blender::ed::transform::seq_get_strip_pivot_median(), seq_prefetch_frames(), seq_prefetch_scene_strip_is_rendered(), blender::ed::transform::SeqTransInfo(), blender::ed::vse::sequencer_drop_copy(), blender::ed::vse::sequencer_main_cursor(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_offset_clear_exec(), blender::ed::vse::sequencer_snap_exec(), blender::ed::vse::sequencer_swap_exec(), blender::ed::vse::slip_data_init(), blender::ed::vse::strip_get_text_strip_cb(), blender::ed::vse::strip_select_from_preview(), strip_topmost_get(), time_find_next_prev_edit(), blender::ed::vse::timeline_draw_context_get(), and transform_seqbase_shuffle_ex().

◆ channels_displayed_set()

void blender::seq::channels_displayed_set ( Editing * ed,
ListBase * channels )

Definition at line 33 of file channels.cc.

Referenced by meta_stack_pop(), and meta_stack_set().

◆ channels_duplicate()

void blender::seq::channels_duplicate ( ListBase * channels_dst,
ListBase * channels_src )

Definition at line 49 of file channels.cc.

References BLI_addtail(), LISTBASE_FOREACH, and MEM_dupallocN().

Referenced by strip_duplicate().

◆ channels_ensure()

void blender::seq::channels_ensure ( ListBase * channels)

◆ channels_free()

void blender::seq::channels_free ( ListBase * channels)

Definition at line 58 of file channels.cc.

References LISTBASE_FOREACH_MUTABLE, and MEM_freeN().

Referenced by editing_free(), and seq_strip_free_ex().

◆ check_media_missing()

◆ check_sound_media_missing()

bool blender::seq::check_sound_media_missing ( const bSound * sound,
const Strip * strip )
static

◆ check_zone()

◆ clamp_rect()

void blender::seq::clamp_rect ( int width,
int height,
rcti & r_rect )
static

Definition at line 368 of file vse_effect_text.cc.

References blender::math::clamp(), rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.

Referenced by draw_text_shadow().

◆ collection_filter_channel_up_to_incl()

void blender::seq::collection_filter_channel_up_to_incl ( VectorSet< Strip * > & strips,
const int channel )
static

◆ collection_filter_rendered_strips()

void blender::seq::collection_filter_rendered_strips ( VectorSet< Strip * > & strips,
ListBase * channels )
static

◆ color_balance_lgg()

float blender::seq::color_balance_lgg ( float in,
const float lift,
const float gain,
const float gamma,
const float mul )
static

◆ color_balance_sop()

float blender::seq::color_balance_sop ( float in,
const float slope,
const float offset,
const float power,
float mul )
static

◆ color_mix_effect_get_handle()

◆ colorBalance_apply()

void blender::seq::colorBalance_apply ( const StripScreenQuad & ,
StripModifierData * smd,
ImBuf * ibuf,
ImBuf * mask )
static

◆ colorBalance_init_data()

◆ composite_shadow()

void blender::seq::composite_shadow ( int width,
const rcti & shadow_rect,
const float4 & shadow_color,
const Array< uchar > & shadow_mask,
uchar * output )
static

◆ connect() [1/2]

◆ connect() [2/2]

void blender::seq::connect ( Strip * strip1,
Strip * strip2 )

Connect strips so that they may be selected together. Any connections the strips already have will be severed before reconnection.

Definition at line 90 of file strip_connect.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), and connect().

Referenced by connect(), blender::ed::vse::sequencer_add_movie_multiple_strips(), blender::ed::vse::sequencer_add_movie_single_strip(), and blender::ed::vse::sequencer_connect_exec().

◆ connected_strips_get()

blender::VectorSet< Strip * > blender::seq::connected_strips_get ( const Strip * strip)

◆ connections_duplicate()

void blender::seq::connections_duplicate ( ListBase * connections_dst,
ListBase * connections_src )

Definition at line 29 of file strip_connect.cc.

References BLI_addtail(), LISTBASE_FOREACH, and MEM_dupallocN().

Referenced by strip_duplicate().

◆ content_frame_index_get()

int blender::seq::content_frame_index_get ( const Scene * scene,
const Strip * strip,
const int timeline_frame )
static

◆ convert_multilayer_ibuf()

◆ copy_effect_default()

void blender::seq::copy_effect_default ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 366 of file vse_effect_blend.cc.

References Strip::effectdata, and MEM_dupallocN().

Referenced by color_mix_effect_get_handle().

◆ copy_gaussian_blur_effect()

void blender::seq::copy_gaussian_blur_effect ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 41 of file vse_effect_gaussian_blur.cc.

References Strip::effectdata, and MEM_dupallocN().

Referenced by gaussian_blur_effect_get_handle().

◆ copy_glow_effect()

void blender::seq::copy_glow_effect ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 154 of file vse_effect_glow.cc.

References Strip::effectdata, and MEM_dupallocN().

Referenced by glow_effect_get_handle().

◆ copy_solid_color()

void blender::seq::copy_solid_color ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 42 of file vse_effect_solid_color.cc.

References Strip::effectdata, and MEM_dupallocN().

Referenced by solid_color_effect_get_handle().

◆ copy_speed_effect()

void blender::seq::copy_speed_effect ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 61 of file vse_effect_speed.cc.

References Strip::effectdata, MEM_dupallocN(), and v.

Referenced by speed_effect_get_handle().

◆ copy_text_effect()

void blender::seq::copy_text_effect ( Strip * dst,
const Strip * src,
const int flag )
static

◆ copy_transform_effect()

void blender::seq::copy_transform_effect ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 56 of file vse_effect_transform.cc.

References Strip::effectdata, and MEM_dupallocN().

Referenced by transform_effect_get_handle().

◆ copy_wipe_effect()

void blender::seq::copy_wipe_effect ( Strip * dst,
const Strip * src,
const int  )
static

Definition at line 304 of file vse_effect_wipe.cc.

References Strip::effectdata, and MEM_dupallocN().

Referenced by wipe_effect_get_handle().

◆ create_missing_media_image()

ImBuf * blender::seq::create_missing_media_image ( const RenderData * context,
int width,
int height )
static

◆ cross_effect_get_handle()

◆ curves_apply()

◆ curves_copy_data()

void blender::seq::curves_copy_data ( StripModifierData * target,
StripModifierData * smd )
static

◆ curves_free_data()

void blender::seq::curves_free_data ( StripModifierData * smd)
static

◆ curves_init_data()

void blender::seq::curves_init_data ( StripModifierData * smd)
static

◆ cut_one_way_connections()

void blender::seq::cut_one_way_connections ( Strip * strip)

Ensure that the strip has only bidirectional connections (expected behavior).

Definition at line 68 of file strip_connect.cc.

References BLI_remlink(), Strip::connections, LISTBASE_FOREACH, and LISTBASE_FOREACH_MUTABLE.

Referenced by seqbase_duplicate_recursive(), and strip_duplicate_recursive().

◆ disconnect() [1/2]

bool blender::seq::disconnect ( blender::VectorSet< Strip * > & strip_list)

Definition at line 58 of file strip_connect.cc.

References disconnect().

◆ disconnect() [2/2]

bool blender::seq::disconnect ( Strip * strip)

Disconnect the strip(s) from any connections with other strips. This function also frees the allocated memory as necessary. Returns false if any of the strips were not already connected.

Definition at line 37 of file strip_connect.cc.

References BLI_listbase_is_empty(), BLI_remlink(), Strip::connections, LISTBASE_FOREACH, LISTBASE_FOREACH_MUTABLE, and strip_connections_free().

Referenced by connect(), disconnect(), edit_strip_split(), seq_strip_free_ex(), blender::ed::vse::sequencer_connect_exec(), and blender::ed::vse::sequencer_disconnect_exec().

◆ do_add_effect()

ImBuf * blender::seq::do_add_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_adjustment()

ImBuf * blender::seq::do_adjustment ( const RenderData * context,
Strip * strip,
float timeline_frame,
float ,
ImBuf * ,
ImBuf *  )
static

Definition at line 73 of file vse_effect_adjustment.cc.

References do_adjustment_impl(), and out.

Referenced by adjustment_effect_get_handle().

◆ do_adjustment_impl()

◆ do_alphaover_effect()

ImBuf * blender::seq::do_alphaover_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_alphaunder_effect()

ImBuf * blender::seq::do_alphaunder_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_blend_effect_byte()

◆ do_blend_effect_float()

◆ do_blend_mode_effect()

ImBuf * blender::seq::do_blend_mode_effect ( const RenderData * context,
Strip * strip,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_colormix_effect()

ImBuf * blender::seq::do_colormix_effect ( const RenderData * context,
Strip * strip,
float ,
float ,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_cross_effect()

ImBuf * blender::seq::do_cross_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_gammacross_effect()

ImBuf * blender::seq::do_gammacross_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_gaussian_blur_effect()

ImBuf * blender::seq::do_gaussian_blur_effect ( const RenderData * context,
Strip * strip,
float ,
float ,
ImBuf * ibuf1,
ImBuf *  )
static

◆ do_glow_effect()

ImBuf * blender::seq::do_glow_effect ( const RenderData * context,
Strip * strip,
float ,
float fac,
ImBuf * ibuf1,
ImBuf * ibuf2 )
static

◆ do_glow_effect_byte()

◆ do_glow_effect_float()

void blender::seq::do_glow_effect_float ( Strip * strip,
int render_size,
float fac,
int x,
int y,
float * rect1,
float * ,
float * out )
static

◆ do_mul_effect()

ImBuf * blender::seq::do_mul_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_multicam()

ImBuf * blender::seq::do_multicam ( const RenderData * context,
Strip * strip,
float timeline_frame,
float ,
ImBuf * ,
ImBuf *  )
static

◆ do_render_strip_seqbase()

ImBuf * blender::seq::do_render_strip_seqbase ( const RenderData * context,
SeqRenderState * state,
Strip * strip,
float frame_index )
static

◆ do_render_strip_uncached()

◆ do_solid_color()

ImBuf * blender::seq::do_solid_color ( const RenderData * context,
Strip * strip,
float ,
float ,
ImBuf * ibuf1,
ImBuf * ibuf2 )
static

◆ do_speed_effect()

ImBuf * blender::seq::do_speed_effect ( const RenderData * context,
Strip * strip,
float timeline_frame,
float fac,
ImBuf * ibuf1,
ImBuf * ibuf2 )
static

◆ do_sub_effect()

ImBuf * blender::seq::do_sub_effect ( const RenderData * context,
Strip * ,
float ,
float fac,
ImBuf * src1,
ImBuf * src2 )
static

◆ do_text_effect()

◆ do_transform_effect()

ImBuf * blender::seq::do_transform_effect ( const RenderData * context,
Strip * strip,
float ,
float ,
ImBuf * src1,
ImBuf *  )
static

◆ do_wipe_effect() [1/2]

ImBuf * blender::seq::do_wipe_effect ( const RenderData * context,
Strip * strip,
float ,
float fac,
ImBuf * ibuf1,
ImBuf * ibuf2 )
static

◆ do_wipe_effect() [2/2]

template<typename T>
void blender::seq::do_wipe_effect ( const Strip * strip,
float fac,
int width,
int height,
const T * rect1,
const T * rect2,
T * out )
static

◆ doversion_250_sound_proxy_update()

void blender::seq::doversion_250_sound_proxy_update ( Main * bmain,
Editing * ed )

◆ draw_text_outline()

◆ draw_text_shadow()

◆ early_out_adjustment()

StripEarlyOut blender::seq::early_out_adjustment ( const Strip * ,
float  )
static

Definition at line 29 of file vse_effect_adjustment.cc.

References NoInput.

Referenced by adjustment_effect_get_handle().

◆ early_out_color()

StripEarlyOut blender::seq::early_out_color ( const Strip * ,
float  )
static

Definition at line 47 of file vse_effect_solid_color.cc.

References NoInput.

Referenced by solid_color_effect_get_handle().

◆ early_out_fade()

StripEarlyOut blender::seq::early_out_fade ( const Strip * ,
float fac )

◆ early_out_gaussian_blur()

StripEarlyOut blender::seq::early_out_gaussian_blur ( const Strip * strip,
float  )
static

Definition at line 46 of file vse_effect_gaussian_blur.cc.

References data, DoEffect, Strip::effectdata, and UseInput1.

Referenced by gaussian_blur_effect_get_handle().

◆ early_out_mul_input1()

StripEarlyOut blender::seq::early_out_mul_input1 ( const Strip * ,
float fac )

Definition at line 136 of file effects.cc.

References DoEffect, and UseInput2.

Referenced by alpha_over_effect_get_handle().

◆ early_out_mul_input2()

StripEarlyOut blender::seq::early_out_mul_input2 ( const Strip * ,
float fac )

◆ early_out_multicam()

StripEarlyOut blender::seq::early_out_multicam ( const Strip * ,
float  )
static

Definition at line 27 of file vse_effect_multi_camera.cc.

References NoInput.

Referenced by multi_camera_effect_get_handle().

◆ early_out_noop()

StripEarlyOut blender::seq::early_out_noop ( const Strip * ,
float  )
static

Definition at line 112 of file effects.cc.

References DoEffect.

Referenced by effect_handle_get().

◆ early_out_speed()

StripEarlyOut blender::seq::early_out_speed ( const Strip * ,
float  )
static

Definition at line 69 of file vse_effect_speed.cc.

References DoEffect.

Referenced by speed_effect_get_handle().

◆ early_out_text()

StripEarlyOut blender::seq::early_out_text ( const Strip * strip,
float  )
static

Definition at line 294 of file vse_effect_text.cc.

References effects_can_render_text(), NoInput, and UseInput1.

Referenced by text_effect_get_handle().

◆ ED_seq_proxy_job_get()

◆ ED_seq_proxy_wm_job_get()

wmJob * blender::seq::ED_seq_proxy_wm_job_get ( const bContext * C)

◆ edit_flag_for_removal()

◆ edit_move_strip_to_meta()

bool blender::seq::edit_move_strip_to_meta ( Scene * scene,
Strip * src_strip,
Strip * dst_stripm,
const char ** r_error_str )

Move strip to meta-strip.

Parameters
sceneScene containing the editing
src_stripStrip to move
dst_stripmTarget meta-strip
r_error_strError message

Definition at line 215 of file strip_edit.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), edit_move_strip_to_seqbase(), editing_get(), exists_in_seqbase(), get_seqbase_by_strip(), iterator_set_expand(), N_, query_strip_effect_chain(), Strip::seqbase, STRIP_TYPE_META, and Strip::type.

◆ edit_move_strip_to_seqbase()

bool blender::seq::edit_move_strip_to_seqbase ( Scene * scene,
ListBase * seqbase,
Strip * strip,
ListBase * dst_seqbase )

Move strip to seqbase.

Parameters
sceneScene containing the editing
seqbaseseqbase where strip is located
stripStrip to move
dst_seqbaseTarget seqbase

Definition at line 197 of file strip_edit.cc.

References BLI_addtail(), BLI_remlink(), relations_invalidate_cache(), transform_seqbase_shuffle(), and transform_test_overlap().

Referenced by edit_move_strip_to_meta().

◆ edit_remove_flagged_strips()

◆ edit_remove_gaps()

bool blender::seq::edit_remove_gaps ( Scene * scene,
ListBase * seqbase,
int initial_frame,
bool remove_all_gaps )

Find gap after initial_frame and move strips on right side to close the gap

Parameters
sceneScene in which strips are located
seqbaseListBase in which strips are located
initial_frameframe on timeline from where gaps are searched for
remove_all_gapsremove all gaps instead of one gap
Returns
true if gap is removed, otherwise false

Definition at line 496 of file strip_edit.cc.

References blender::seq::GapInfo::gap_exists, blender::seq::GapInfo::gap_length, blender::seq::GapInfo::gap_start_frame, seq_time_gap_info_get(), and transform_offset_after_frame().

Referenced by blender::ed::vse::sequencer_gap_remove_exec().

◆ edit_strip_name_set()

void blender::seq::edit_strip_name_set ( Scene * scene,
Strip * strip,
const char * new_name )

◆ edit_strip_split()

Strip * blender::seq::edit_strip_split ( Main * bmain,
Scene * scene,
ListBase * seqbase,
Strip * strip,
int timeline_frame,
eSplitMethod method,
bool ignore_connections,
const char ** r_error )

◆ edit_strip_swap()

◆ edit_update_muting()

void blender::seq::edit_update_muting ( Editing * ed)

Definition at line 126 of file strip_edit.cc.

References MetaStack::parent_strip, and strip_update_muting_recursive().

Referenced by eval_strips().

◆ editing_ensure()

◆ editing_free()

◆ editing_get()

Editing * blender::seq::editing_get ( const Scene * scene)

Definition at line 272 of file sequencer.cc.

References Scene::ed.

Referenced by blender::ed::vse::all_strips_from_context(), animchan_sync_fcurve_scene(), blo_do_versions_290(), blo_do_versions_300(), blo_do_versions_440(), blender::ed::outliner::TreeDisplaySequencer::build_tree(), blender::ed::vse::can_select_handle(), blender::ed::vse::channel_draw_context_init(), blender::ed::transform::createTransSeqData(), blender::ed::transform::createTransSeqImageData(), blender::ed::transform::createTransSeqRetimingData(), blender::ed::vse::deselect_all_strips(), do_versions_after_linking_300(), do_versions_after_linking_400(), blender::ed::vse::draw_channels(), blender::ed::vse::draw_timeline_seq_display(), blender::ed::vse::draw_timeline_sfra_efra(), ED_imbuf_sample_poll(), edit_move_strip_to_meta(), edit_strip_swap(), ensure_change_frame_keylist(), blender::ed::vse::find_neighboring_strip(), blender::ed::vse::find_next_prev_strip(), blender::ed::transform::freeSeqData(), blender::ed::transform::freeSeqData(), blender::ed::vse::freeze_frame_add_from_retiming_selection(), get_seqbase_by_strip(), get_seqbase_from_strip(), blender::ed::transform::gizmo2d_calc_bounds(), blender::ed::transform::gizmo2d_calc_rotation(), blender::ed::transform::gizmo2d_calc_transform_orientation(), blender::ed::transform::gizmo2d_calc_transform_pivot(), blender::ed::transform::gizmo2d_generic_poll(), blender::ed::transform::image_transform_set(), invalidate_raw_cache_of_parent_meta(), meta_stack_set(), blender::ed::vse::padded_strips_under_mouse_get(), proxy_endjob(), blender::ed::transform::query_snap_sources_preview(), blender::ed::transform::query_snap_sources_timeline(), blender::ed::transform::query_snap_targets_preview(), blender::ed::transform::query_snap_targets_timeline(), blender::ed::transform::recalcData_sequencer_retiming(), relations_check_scene_recursion(), relations_free_all_anim_ibufs(), relations_invalidate_scene_strips(), render_give_ibuf(), blender::ed::vse::retiming_key_add_to_editable_strips(), retiming_key_overlap(), blender::ed::vse::retiming_poll(), screen_ctx_selected_editable_sequences(), screen_ctx_selected_editable_strips(), screen_ctx_selected_sequences(), screen_ctx_selected_strips(), screen_ctx_sequences(), screen_ctx_strips(), blender::ed::vse::segment_speed_set_exec(), select_active_get(), select_active_get_pair(), select_active_set(), blender::ed::vse::select_linked_internal(), blender::ed::vse::select_linked_time(), blender::ed::vse::select_more_less_impl(), blender::ed::vse::select_strip_single(), blender::ed::vse::selected_strips_from_context(), blender::ed::vse::seq_box_select_strip_from_preview(), seq_edit_split_operation_permitted_check(), seq_get_snap_targets(), blender::ed::transform::seq_get_strip_pivot_median(), blender::ed::vse::seq_load_apply_generic_options(), blender::ed::vse::seq_load_apply_generic_options_only_test_overlap(), seq_meta_stack_alloc(), seq_prefetch_frames(), seq_prefetch_scene_strip_is_rendered(), seq_prefetch_update_active_seqbase(), blender::ed::vse::seq_proxy_build_job(), seq_proxy_get_filepath(), blender::ed::transform::seq_transform_cancel(), seq_update_meta_disp_range(), blender::ed::vse::seq_view_collection_rect_timeline(), blender::ed::transform::seqbase_active_get(), blender::ed::transform::SeqTransInfo(), blender::ed::outliner::sequence_fn(), blender::ed::vse::sequencer_add_duplicate_exec(), sequencer_all_free_anim_ibufs(), blender::ed::vse::sequencer_box_select_exec(), blender::ed::vse::sequencer_clipboard_copy_exec(), blender::ed::vse::sequencer_connect_exec(), blender::ed::vse::sequencer_delete_exec(), blender::ed::vse::sequencer_disable_one_time_properties(), blender::ed::vse::sequencer_disconnect_exec(), blender::ed::vse::sequencer_edit_poll(), blender::ed::vse::sequencer_effect_poll(), blender::ed::vse::sequencer_enable_proxies_exec(), blender::ed::vse::sequencer_export_subtitles_exec(), blender::ed::vse::sequencer_gap_insert_exec(), blender::ed::vse::sequencer_gap_remove_exec(), blender::ed::vse::sequencer_lock_exec(), blender::ed::vse::sequencer_main_clamp_view(), blender::ed::vse::sequencer_main_cursor(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_meta_separate_exec(), blender::ed::vse::sequencer_meta_toggle_exec(), blender::ed::vse::sequencer_offset_clear_exec(), blender::ed::vse::sequencer_rebuild_proxy_exec(), blender::ed::vse::sequencer_refresh_all_exec(), blender::ed::vse::sequencer_reload_exec(), blender::ed::vse::sequencer_retiming_box_select_exec(), blender::ed::vse::sequencer_retiming_data_show_exec(), blender::ed::vse::sequencer_retiming_key_delete_exec(), blender::ed::vse::sequencer_retiming_key_select_exec(), blender::ed::vse::sequencer_retiming_mode_is_active(), blender::ed::vse::sequencer_retiming_reset_exec(), blender::ed::vse::sequencer_retiming_segment_speed_set_exec(), blender::ed::vse::sequencer_retiming_select_all_exec(), blender::ed::vse::sequencer_retiming_select_linked_time(), blender::ed::vse::sequencer_scene_frame_range_update_exec(), blender::ed::vse::sequencer_scene_frame_range_update_poll(), blender::ed::vse::sequencer_select_exec(), blender::ed::vse::sequencer_select_grouped_exec(), blender::ed::vse::sequencer_select_handle_exec(), blender::ed::vse::sequencer_select_handles_exec(), blender::ed::vse::sequencer_select_linked_handle(), blender::ed::vse::sequencer_select_set_active(), blender::ed::vse::sequencer_select_side_exec(), blender::ed::vse::sequencer_select_side_of_frame(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_separate_images_exec(), blender::ed::vse::sequencer_set_range_to_strips_exec(), sequencer_skip_for_handle_tweak(), blender::ed::vse::sequencer_snap_exec(), blender::ed::vse::sequencer_split_exec(), blender::ed::vse::sequencer_strip_change_scene_poll(), blender::ed::vse::sequencer_strip_color_tag_set_exec(), blender::ed::vse::sequencer_strip_color_tag_set_poll(), blender::ed::vse::sequencer_strip_editable_poll(), blender::ed::vse::sequencer_strip_has_path_poll(), blender::ed::vse::sequencer_strip_is_text_poll(), blender::ed::vse::sequencer_strip_transform_clear_exec(), blender::ed::vse::sequencer_strip_transform_fit_exec(), blender::ed::vse::sequencer_swap_exec(), blender::ed::vse::sequencer_unlock_exec(), blender::ed::vse::sequencer_unmute_exec(), blender::ed::vse::sequencer_view_all_exec(), blender::ed::vse::sequencer_view_has_preview_poll(), blender::ed::vse::sequencer_view_preview_only_poll(), blender::ed::vse::sequencer_visible_strips_get(), skip_fcurve_selected_data(), blender::ed::vse::slip_data_init(), blender::ed::transform::snap_data_build_timeline(), blender::ed::transform::store_transform_properties(), blender::ed::vse::strip_effect_get_new_inputs(), blender::ed::vse::strip_get_text_strip_cb(), strip_retiming_transition_offset(), blender::ed::vse::strip_select_from_preview(), blender::ed::vse::strip_speed_get(), blender::ed::vse::strip_speed_set_exec(), time_find_next_prev_edit(), blender::ed::vse::timeline_draw_context_get(), transform_seqbase_shuffle_ex(), blender::ed::vse::transition_add_from_retiming_selection(), blender::ed::outliner::tree_element_strip_activate(), blender::ed::outliner::tree_element_strip_dup_activate(), and update_sequencer().

◆ effect_get_num_inputs()

◆ effect_handle_get()

EffectHandle blender::seq::effect_handle_get ( int strip_type)

Definition at line 159 of file effects.cc.

References add_effect_get_handle(), adjustment_effect_get_handle(), alpha_over_effect_get_handle(), alpha_under_effect_get_handle(), blend_mode_effect_get_handle(), color_mix_effect_get_handle(), blender::seq::EffectHandle::copy, cross_effect_get_handle(), blender::seq::EffectHandle::early_out, early_out_noop(), blender::seq::EffectHandle::execute, blender::seq::EffectHandle::free, free_noop(), gamma_cross_effect_get_handle(), gaussian_blur_effect_get_handle(), blender::seq::EffectHandle::get_default_fac, get_default_fac_noop(), glow_effect_get_handle(), blender::seq::EffectHandle::init, init_noop(), blender::seq::EffectHandle::load, load_noop(), mul_effect_get_handle(), multi_camera_effect_get_handle(), blender::seq::EffectHandle::num_inputs, num_inputs_default(), solid_color_effect_get_handle(), speed_effect_get_handle(), STRIP_TYPE_ADD, STRIP_TYPE_ADJUSTMENT, STRIP_TYPE_ALPHAOVER, STRIP_TYPE_ALPHAUNDER, STRIP_TYPE_BLEND_COLOR, STRIP_TYPE_COLOR, STRIP_TYPE_COLOR_BURN, STRIP_TYPE_COLORMIX, STRIP_TYPE_CROSS, STRIP_TYPE_DARKEN, STRIP_TYPE_DIFFERENCE, STRIP_TYPE_DODGE, STRIP_TYPE_EXCLUSION, STRIP_TYPE_GAMCROSS, STRIP_TYPE_GAUSSIAN_BLUR, STRIP_TYPE_GLOW, STRIP_TYPE_HARD_LIGHT, STRIP_TYPE_HUE, STRIP_TYPE_LIGHTEN, STRIP_TYPE_LIN_LIGHT, STRIP_TYPE_LINEAR_BURN, STRIP_TYPE_MUL, STRIP_TYPE_MULTICAM, STRIP_TYPE_OVERLAY, STRIP_TYPE_PIN_LIGHT, STRIP_TYPE_SATURATION, STRIP_TYPE_SCREEN, STRIP_TYPE_SOFT_LIGHT, STRIP_TYPE_SPEED, STRIP_TYPE_SUB, STRIP_TYPE_TEXT, STRIP_TYPE_TRANSFORM, STRIP_TYPE_VALUE, STRIP_TYPE_VIVID_LIGHT, STRIP_TYPE_WIPE, sub_effect_get_handle(), text_effect_get_handle(), transform_effect_get_handle(), and wipe_effect_get_handle().

Referenced by do_speed_effect(), effect_get_num_inputs(), strip_effect_get_sequence_blend(), and strip_effect_handle_get().

◆ effect_text_font_load()

◆ effect_text_font_unload()

void blender::seq::effect_text_font_unload ( TextVars * data,
const bool do_id_user )

Definition at line 209 of file vse_effect_text.cc.

References data, id_us_min(), and strip_unload_font().

Referenced by free_text_effect().

◆ effects_can_render_text()

bool blender::seq::effects_can_render_text ( const Strip * strip)

◆ ensure_final_image_cache()

FinalImageCache * blender::seq::ensure_final_image_cache ( Scene * scene)
static

◆ ensure_source_image_cache()

SourceImageCache * blender::seq::ensure_source_image_cache ( Scene * scene)
static

◆ ensure_thumbnail_cache()

ThumbnailCache * blender::seq::ensure_thumbnail_cache ( Scene * scene)
static

Definition at line 145 of file thumbnail_cache.cc.

References Scene::ed, Editing::runtime, and EditingRuntime::thumbnail_cache.

Referenced by thumbnail_cache_get().

◆ ensure_unique_name()

void blender::seq::ensure_unique_name ( Strip * strip,
Scene * scene )

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

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

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

References Scene::adt, BKE_animdata_fix_paths_rename(), Scene::ed, ensure_unique_name(), Scene::id, LISTBASE_FOREACH, Strip::name, Editing::seqbase, Strip::seqbase, STRIP_NAME_MAXSTR, STRIP_TYPE_META, strip_unique_name_set(), STRNCPY_UTF8, and Strip::type.

Referenced by edit_strip_split(), ensure_unique_name(), blender::ed::vse::sequencer_add_duplicate_exec(), blender::ed::vse::sequencer_change_effect_type_exec(), and blender::ed::vse::sequencer_clipboard_paste_exec().

◆ eval_strips()

void blender::seq::eval_strips ( Depsgraph * depsgraph,
Scene * scene,
ListBase * seqbase )

Evaluate parts of strips which needs to be done as a part of a dependency graph evaluation. This does NOT include actual rendering of the strips, but rather makes them up-to-date for animation playback and makes them ready for the sequencer's rendering pipeline to render them.

Definition at line 1098 of file sequencer.cc.

References BKE_sound_ensure_scene(), DEG_debug_print_eval(), depsgraph, Scene::ed, edit_update_muting(), for_each_callback(), Scene::id, ID::name, sound_update_bounds_all(), and strip_sound_update_cb().

◆ evict_caches_if_full()

void blender::seq::evict_caches_if_full ( Scene * scene)
static

◆ exists_in_seqbase()

bool blender::seq::exists_in_seqbase ( const Strip * strip,
const ListBase * seqbase )

◆ extract_standalone_strips()

◆ fcurve_matches()

bool blender::seq::fcurve_matches ( const Strip & strip,
const FCurve & fcurve )

Return whether the fcurve targets the given strip.

Definition at line 36 of file animation.cc.

References blender::animrig::fcurve_matches_collection_path(), and Strip::name.

Referenced by blender::ed::vse::sequencer_copy_animation_listbase(), and blender::ed::vse::sequencer_copy_animation_to_vector().

◆ fill_rect_alpha_under()

void blender::seq::fill_rect_alpha_under ( const ImBuf * ibuf,
const float col[4],
int x1,
int y1,
int x2,
int y2,
float corner_radius )
static

◆ final_image_cache_calc_memory_size()

size_t blender::seq::final_image_cache_calc_memory_size ( const Scene * scene)

◆ final_image_cache_clear()

◆ final_image_cache_destroy()

void blender::seq::final_image_cache_destroy ( Scene * scene)

◆ final_image_cache_evict()

◆ final_image_cache_get()

ImBuf * blender::seq::final_image_cache_get ( Scene * scene,
const ListBase * seqbasep,
const float timeline_frame,
const int view_id,
const int display_channel )

◆ final_image_cache_get_image_count()

size_t blender::seq::final_image_cache_get_image_count ( const Scene * scene)

◆ final_image_cache_invalidate_frame_range()

void blender::seq::final_image_cache_invalidate_frame_range ( Scene * scene,
const float timeline_frame_start,
const float timeline_frame_end )

◆ final_image_cache_iterate()

void blender::seq::final_image_cache_iterate ( Scene * scene,
void * userdata,
void callback_itervoid *userdata, int timeline_frame )

◆ final_image_cache_put()

void blender::seq::final_image_cache_put ( Scene * scene,
const ListBase * seqbasep,
const float timeline_frame,
const int view_id,
const int display_channel,
ImBuf * image )

◆ fontmap_clear()

void blender::seq::fontmap_clear ( )

Definition at line 74 of file vse_effect_text.cc.

References BLF_unload_id(), and g_font_map.

Referenced by BKE_blender_free().

◆ for_each_callback() [1/2]

void blender::seq::for_each_callback ( ListBase * seqbase,
blender::FunctionRef< bool(Strip *)> callback )

Same as above, but using a more modern FunctionRef as callback.

Definition at line 64 of file iterator.cc.

References strip_for_each_recursive().

◆ for_each_callback() [2/2]

void blender::seq::for_each_callback ( ListBase * seqbase,
ForEachFunc callback,
void * user_data )

◆ free_animdata()

void blender::seq::free_animdata ( Scene * scene,
Strip * strip )

◆ free_effect_default()

void blender::seq::free_effect_default ( Strip * strip,
const bool  )
static

Definition at line 371 of file vse_effect_blend.cc.

References Strip::effectdata, and MEM_SAFE_FREE.

Referenced by color_mix_effect_get_handle().

◆ free_gaussian_blur_effect()

void blender::seq::free_gaussian_blur_effect ( Strip * strip,
const bool  )
static

Definition at line 36 of file vse_effect_gaussian_blur.cc.

References Strip::effectdata, and MEM_SAFE_FREE.

Referenced by gaussian_blur_effect_get_handle().

◆ free_glow_effect()

void blender::seq::free_glow_effect ( Strip * strip,
const bool  )
static

Definition at line 149 of file vse_effect_glow.cc.

References Strip::effectdata, and MEM_SAFE_FREE.

Referenced by glow_effect_get_handle().

◆ free_noop()

void blender::seq::free_noop ( Strip * ,
const bool  )
static

Definition at line 105 of file effects.cc.

Referenced by effect_handle_get().

◆ free_solid_color()

void blender::seq::free_solid_color ( Strip * strip,
const bool  )
static

Definition at line 37 of file vse_effect_solid_color.cc.

References Strip::effectdata, and MEM_SAFE_FREE.

Referenced by solid_color_effect_get_handle().

◆ free_speed_effect()

void blender::seq::free_speed_effect ( Strip * strip,
const bool  )
static

Definition at line 52 of file vse_effect_speed.cc.

References Strip::effectdata, MEM_freeN(), MEM_SAFE_FREE, and v.

Referenced by speed_effect_get_handle().

◆ free_strip_proxy()

void blender::seq::free_strip_proxy ( Strip * strip)

Definition at line 624 of file proxy.cc.

References StripProxy::anim, Strip::data, MOV_close(), and StripData::proxy.

Referenced by add_reload_new_file().

◆ free_text_effect()

void blender::seq::free_text_effect ( Strip * strip,
const bool do_id_user )
static

Definition at line 261 of file vse_effect_text.cc.

References data, effect_text_font_unload(), Strip::effectdata, and MEM_freeN().

Referenced by text_effect_get_handle().

◆ free_transform_effect()

void blender::seq::free_transform_effect ( Strip * strip,
const bool  )
static

Definition at line 51 of file vse_effect_transform.cc.

References Strip::effectdata, and MEM_SAFE_FREE.

Referenced by transform_effect_get_handle().

◆ free_wipe_effect()

void blender::seq::free_wipe_effect ( Strip * strip,
const bool  )
static

Definition at line 299 of file vse_effect_wipe.cc.

References Strip::effectdata, and MEM_SAFE_FREE.

Referenced by wipe_effect_get_handle().

◆ gamma_cross_effect_get_handle()

◆ gammaCorrect()

float blender::seq::gammaCorrect ( float c)
static

Definition at line 66 of file vse_effect_cross.cc.

References UNLIKELY.

Referenced by blender::seq::GammaCrossEffectOp::apply().

◆ gaussian_blur_effect_get_handle()

◆ gaussian_blur_x()

template<typename T>
void blender::seq::gaussian_blur_x ( const Span< float > gaussian,
int half_size,
int start_line,
int width,
int height,
int ,
const T * rect,
T * dst )
static

◆ gaussian_blur_y()

template<typename T>
void blender::seq::gaussian_blur_y ( const Span< float > gaussian,
int half_size,
int start_line,
int width,
int height,
int frame_height,
const T * rect,
T * dst )
static

◆ get_auto_filter()

eIMBInterpolationFilterMode blender::seq::get_auto_filter ( const StripTransform * transform)
static

◆ get_channels_by_strip()

ListBase * blender::seq::get_channels_by_strip ( Editing * ed,
const Strip * strip )

Definition at line 91 of file channels.cc.

References Strip::channels, and lookup_meta_by_strip().

Referenced by do_adjustment_impl(), and do_multicam().

◆ get_default_fac_fade()

void blender::seq::get_default_fac_fade ( const Scene * scene,
const Strip * strip,
float timeline_frame,
float * fac )

◆ get_default_fac_noop()

void blender::seq::get_default_fac_noop ( const Scene * ,
const Strip * ,
float ,
float * fac )
static

Definition at line 144 of file effects.cc.

Referenced by effect_handle_get().

◆ get_default_stripname_by_type()

◆ get_media_presence_cache()

MediaPresence * blender::seq::get_media_presence_cache ( Scene * scene)
static

◆ get_original_context()

RenderData * blender::seq::get_original_context ( const RenderData * context)
static

◆ get_path_from_strip()

std::string blender::seq::get_path_from_strip ( Scene * scene,
const Strip * strip,
float timeline_frame )
static

◆ get_seqbase_by_strip()

ListBase * blender::seq::get_seqbase_by_strip ( const Scene * scene,
Strip * strip )

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

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

References BLI_findindex(), editing_get(), lookup_meta_by_strip(), and Strip::seqbase.

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

◆ get_seqbase_from_strip()

ListBase * blender::seq::get_seqbase_from_strip ( Strip * strip,
ListBase ** r_channels,
int * r_offset )

◆ get_strip_by_name()

Strip * blender::seq::get_strip_by_name ( ListBase * seqbase,
const char * name,
bool recursive )

◆ get_strip_screen_quad()

◆ get_uids_cb()

bool blender::seq::get_uids_cb ( Strip * strip,
void * user_data )
static

◆ give_cache_frame_index()

float blender::seq::give_cache_frame_index ( const Scene * scene,
const Strip * strip,
float timeline_frame )
static

◆ give_frame_index()

◆ glow_blur_bitmap()

void blender::seq::glow_blur_bitmap ( const float4 * src,
float4 * map,
int width,
int height,
float blur,
int quality )
static

◆ glow_effect_get_handle()

◆ horizontal_alignment_offset_get()

float2float2 blender::seq::horizontal_alignment_offset_get ( const TextVars * data,
float line_width,
int width_max )
static

◆ hue_correct_apply()

◆ hue_correct_copy_data()

void blender::seq::hue_correct_copy_data ( StripModifierData * target,
StripModifierData * smd )
static

◆ hue_correct_free_data()

void blender::seq::hue_correct_free_data ( StripModifierData * smd)
static

◆ hue_correct_init_data()

◆ image_preview_unit_from_px()

blender::float2 blender::seq::image_preview_unit_from_px ( const Scene * scene,
const float2float2 co_src )

Definition at line 688 of file strip_transform.cc.

References Scene::r.

Referenced by blender::ed::vse::sequencer_set_2d_cursor_exec().

◆ image_preview_unit_to_px()

◆ image_size_to_thumb_size()

void blender::seq::image_size_to_thumb_size ( int & r_width,
int & r_height )
static

Definition at line 198 of file thumbnail_cache.cc.

References round_fl_to_int(), and THUMB_SIZE.

Referenced by scale_to_thumbnail_size().

◆ image_transform_bounding_box_from_collection()

blender::Bounds< blender::float2 > blender::seq::image_transform_bounding_box_from_collection ( Scene * scene,
blender::Span< Strip * > strips,
bool apply_rotation )

Get viewport axis aligned bounding box from a collection of sequences. The collection must have one or more strips

Parameters
sceneScene in which strips are located
stripsCollection of strips to get the bounding box from
apply_rotationInclude strip rotation transform in the bounding box calculation
r_minMinimum x and y values
r_maxMaximum x and y values

Definition at line 698 of file strip_transform.cc.

References image_transform_quad_get(), blender::bounds::merge(), blender::bounds::min_max(), negative_bounds(), and quad.

Referenced by blender::ed::transform::gizmo2d_calc_bounds(), and blender::ed::vse::seq_view_collection_rect_preview().

◆ image_transform_final_quad_get()

blender::Array< blender::float2 > blender::seq::image_transform_final_quad_get ( const Scene * scene,
const Strip * strip )

Get 4 corner points of strip image. Corner vectors are in viewport space. Indices correspond to following corners (assuming no rotation): 3–0 | | 2–1

Parameters
sceneScene in which strips are located
stripStrip to calculate transformed image quad
Returns
array of 4 2D vectors

Definition at line 678 of file strip_transform.cc.

References strip_image_transform_quad_get_ex().

Referenced by blender::ed::transform::calculate_translation_offset(), get_strip_screen_quad(), blender::ed::transform::points_build_3x3_grid(), blender::ed::transform::points_build_sources_preview_image(), blender::ed::transform::points_build_targets_preview_image(), blender::ed::transform::store_transform_properties(), blender::ed::vse::strip_box_select_rect_image_isect(), blender::ed::vse::strip_draw_image_origin_and_outline(), and blender::ed::vse::strip_point_image_isect().

◆ image_transform_matrix_get()

blender::float3x3 blender::seq::image_transform_matrix_get ( const Scene * scene,
const Strip * strip )

Get strip image transformation matrix. Pivot point is set to correspond with viewport coordinate system

Parameters
sceneScene in which strips are located
stripStrip that is used to construct the matrix

Definition at line 640 of file strip_transform.cc.

References seq_image_transform_matrix_get_ex().

Referenced by blender::ed::vse::cursor_set_by_mouse_position(), blender::ed::transform::store_transform_properties(), blender::ed::vse::text_edit_draw_box(), blender::ed::vse::text_edit_draw_cursor(), and blender::ed::vse::text_selection_draw().

◆ image_transform_mirror_factor_get()

◆ image_transform_origin_offset_pixelspace_get()

blender::float2 blender::seq::image_transform_origin_offset_pixelspace_get ( const Scene * scene,
const Strip * strip )

◆ image_transform_quad_get()

blender::Array< blender::float2 > blender::seq::image_transform_quad_get ( const Scene * scene,
const Strip * strip,
bool apply_rotation )

Get 4 corner points of strip image, optionally without rotation component applied. Corner vectors are in viewport space.

Parameters
sceneScene in which strips are located
stripStrip to calculate transformed image quad
apply_rotationApply strip rotation transform to the quad
Returns
array of 4 2D vectors

Definition at line 673 of file strip_transform.cc.

References strip_image_transform_quad_get_ex().

Referenced by image_transform_bounding_box_from_collection().

◆ in_band()

float blender::seq::in_band ( float width,
float dist,
int side,
int dir )
static

This function calculates the blur band for the wipe effects.

Definition at line 52 of file vse_effect_wipe.cc.

Referenced by check_zone().

◆ index_dir_set()

void blender::seq::index_dir_set ( Editing * ed,
Strip * strip,
StripAnim * sanim )
static

◆ init_alpha_over_or_under()

void blender::seq::init_alpha_over_or_under ( Strip * strip)
static

Definition at line 24 of file vse_effect_blend.cc.

References Strip::input1, and Strip::input2.

Referenced by alpha_over_effect_get_handle(), and alpha_under_effect_get_handle().

◆ init_colormix_effect()

void blender::seq::init_colormix_effect ( Strip * strip)
static

◆ init_gaussian_blur_effect()

void blender::seq::init_gaussian_blur_effect ( Strip * strip)
static

◆ init_glow_effect()

void blender::seq::init_glow_effect ( Strip * strip)
static

◆ init_noop()

void blender::seq::init_noop ( Strip * )
static

Definition at line 101 of file effects.cc.

Referenced by effect_handle_get().

◆ init_solid_color()

void blender::seq::init_solid_color ( Strip * strip)
static

◆ init_speed_effect()

void blender::seq::init_speed_effect ( Strip * strip)
static

Definition at line 26 of file vse_effect_speed.cc.

References Strip::effectdata, MEM_callocN(), MEM_freeN(), SEQ_SPEED_STRETCH, and v.

Referenced by speed_effect_get_handle().

◆ init_text_effect()

void blender::seq::init_text_effect ( Strip * strip)
static

◆ init_transform_effect()

void blender::seq::init_transform_effect ( Strip * strip)
static

◆ init_wipe_effect()

void blender::seq::init_wipe_effect ( Strip * strip)
static

Definition at line 285 of file vse_effect_wipe.cc.

References Strip::effectdata, MEM_callocN(), and MEM_freeN().

Referenced by wipe_effect_get_handle().

◆ initialize_shadow_alpha()

void blender::seq::initialize_shadow_alpha ( int width,
int height,
int2int2 offset,
const rcti & shadow_rect,
const uchar * input,
Array< uchar > & r_shadow_mask )
static

◆ input_preprocess()

◆ intra_frame_cache_destroy()

void blender::seq::intra_frame_cache_destroy ( Scene * scene)

◆ intra_frame_cache_get_composite()

ImBuf * blender::seq::intra_frame_cache_get_composite ( Scene * scene,
const Strip * strip )

◆ intra_frame_cache_get_preprocessed()

ImBuf * blender::seq::intra_frame_cache_get_preprocessed ( Scene * scene,
const Strip * strip )

◆ intra_frame_cache_invalidate() [1/2]

◆ intra_frame_cache_invalidate() [2/2]

void blender::seq::intra_frame_cache_invalidate ( Scene * scene,
const Strip * strip )

◆ intra_frame_cache_put_composite()

void blender::seq::intra_frame_cache_put_composite ( Scene * scene,
const Strip * strip,
ImBuf * image )

◆ intra_frame_cache_put_preprocessed()

void blender::seq::intra_frame_cache_put_preprocessed ( Scene * scene,
const Strip * strip,
ImBuf * image )

◆ intra_frame_cache_set_cur_frame()

◆ invalidate_final_cache_strip_range()

void blender::seq::invalidate_final_cache_strip_range ( Scene * scene,
const Strip * strip )
static

◆ invalidate_movieclip_strips()

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

◆ invalidate_raw_cache_of_parent_meta()

void blender::seq::invalidate_raw_cache_of_parent_meta ( Scene * scene,
Strip * strip )
static

◆ invGammaCorrect()

float blender::seq::invGammaCorrect ( float c)
static

Definition at line 74 of file vse_effect_cross.cc.

References sqrtf_signed().

Referenced by blender::seq::GammaCrossEffectOp::apply().

◆ is_cache_full()

bool blender::seq::is_cache_full ( const Scene * scene)

◆ is_opaque_alpha_over()

bool blender::seq::is_opaque_alpha_over ( const Strip * strip)
static

◆ is_point_inside_quad()

bool blender::seq::is_point_inside_quad ( const StripScreenQuad & quad,
int x,
int y )
static

◆ is_quad_a_inside_b()

◆ is_strip_connected()

◆ is_strip_covering_screen()

bool blender::seq::is_strip_covering_screen ( const RenderData * context,
const Strip * strip )
static

Definition at line 486 of file render.cc.

References get_strip_screen_quad(), is_quad_a_inside_b(), and quad.

Referenced by sequencer_preprocess_transform_crop().

◆ is_valid_strip_channel()

bool blender::seq::is_valid_strip_channel ( const Strip * strip)

Definition at line 715 of file sequencer.cc.

References Strip::channel, and MAX_CHANNELS.

Referenced by link_recurs_seq(), and transform_seqbase_shuffle_ex().

◆ iterator_set_expand()

void blender::seq::iterator_set_expand ( const Scene * scene,
ListBase * seqbase,
blender::VectorSet< Strip * > & strips,
void strip_query_funcconst Scene *scene, Strip *strip_reference, ListBase *seqbase, blender::VectorSet< Strip * > &strips )

◆ jump_flooding_pass()

void blender::seq::jump_flooding_pass ( Span< JFACoord > input,
MutableSpan< JFACoord > output,
int2int2 size,
IndexRange x_range,
IndexRange y_range,
int step_size )
static

◆ load_mask_min() [1/3]

float blender::seq::load_mask_min ( const float *& mask)
static

Definition at line 739 of file sequencer/intern/modifier.cc.

References load_mask_min(), mask(), and min_fff().

◆ load_mask_min() [2/3]

float blender::seq::load_mask_min ( const uchar *& mask)
static

◆ load_mask_min() [3/3]

float blender::seq::load_mask_min ( const void *& )
static

Definition at line 745 of file sequencer/intern/modifier.cc.

References load_mask_min().

◆ load_noop()

void blender::seq::load_noop ( Strip * )
static

Definition at line 103 of file effects.cc.

Referenced by effect_handle_get().

◆ load_pixel_premul() [1/2]

float4 blender::seq::load_pixel_premul ( const float * ptr)
static

Definition at line 53 of file sequencer/intern/modifier.cc.

References ptr.

◆ load_pixel_premul() [2/2]

◆ load_pixel_raw() [1/2]

float4 blender::seq::load_pixel_raw ( const float * ptr)
static

Definition at line 75 of file sequencer/intern/modifier.cc.

References ptr.

◆ load_pixel_raw() [2/2]

float4 blender::seq::load_pixel_raw ( const uchar * ptr)
static

◆ load_premul_pixel() [1/2]

blender::float4 blender::seq::load_premul_pixel ( const float * ptr)
inline

Definition at line 52 of file effects.hh.

References ptr.

◆ load_premul_pixel() [2/2]

◆ load_speed_effect()

void blender::seq::load_speed_effect ( Strip * strip)
static

Definition at line 41 of file vse_effect_speed.cc.

References Strip::effectdata, and v.

Referenced by speed_effect_get_handle().

◆ load_text_effect()

void blender::seq::load_text_effect ( Strip * strip)
static

Definition at line 273 of file vse_effect_text.cc.

References data, effect_text_font_load(), and Strip::effectdata.

Referenced by text_effect_get_handle().

◆ lookup_meta_by_strip()

Strip * blender::seq::lookup_meta_by_strip ( Editing * ed,
const Strip * key )

◆ lookup_strip_by_channel_owner()

Strip * blender::seq::lookup_strip_by_channel_owner ( Editing * ed,
const SeqTimelineChannel * channel )

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

Definition at line 172 of file strip_lookup.cc.

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

◆ lookup_strip_by_name()

Strip * blender::seq::lookup_strip_by_name ( Editing * ed,
const char * key )

Find a strip 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
edEditing that owns lookup hash
keyStrip name without SQ prefix (strip->name + 2)
Returns
pointer to Strip

Definition at line 134 of file strip_lookup.cc.

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

◆ lookup_strips_by_scene()

Span< Strip * > blender::seq::lookup_strips_by_scene ( Editing * ed,
const Scene * key )

Find a strips using provided scene as input

Parameters
edEditing that owns lookup hash
keyInput Scene pointer
Returns
Span of strips

Definition at line 143 of file strip_lookup.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::as_span(), BLI_assert, lock, lookup_lock, and strip_lookup_update_if_needed().

Referenced by relations_invalidate_scene_strips().

◆ make_cb_table_lgg()

void blender::seq::make_cb_table_lgg ( float lift,
float gain,
float gamma,
float mul,
float r_table[CB_TABLE_SIZE] )
static

◆ make_cb_table_sop()

void blender::seq::make_cb_table_sop ( float slope,
float offset,
float power,
float mul,
float r_table[CB_TABLE_SIZE] )
static

◆ make_gaussian_blur_kernel()

blender::Array< float > blender::seq::make_gaussian_blur_kernel ( float rad,
int size )

Definition at line 80 of file effects.cc.

References i, R_FILTER_GAUSS, RE_filter_value(), size(), and sum().

Referenced by do_gaussian_blur_effect(), and draw_text_shadow().

◆ make_thumb_for_image()

ImBuf * blender::seq::make_thumb_for_image ( const Scene * scene,
const ThumbnailCache::Request & request )
static

◆ maskmodifier_apply()

void blender::seq::maskmodifier_apply ( const StripScreenQuad & ,
StripModifierData * ,
ImBuf * ibuf,
ImBuf * mask )
static

◆ media_presence_free()

void blender::seq::media_presence_free ( Scene * scene)

Free media presence cache, if it was created.

Definition at line 178 of file media_presence.cc.

References Scene::ed, lock, EditingRuntime::media_presence, presence_lock, and Editing::runtime.

Referenced by editing_free(), and blender::ed::vse::sequencer_refresh_all_exec().

◆ media_presence_invalidate_sound()

void blender::seq::media_presence_invalidate_sound ( Scene * scene,
const bSound * sound )

◆ media_presence_invalidate_strip()

void blender::seq::media_presence_invalidate_strip ( Scene * scene,
const Strip * strip )

◆ media_presence_is_missing()

bool blender::seq::media_presence_is_missing ( Scene * scene,
const Strip * strip )

Check whether a sequence strip has missing media. Results of the query for this strip will be cached into MediaPresence cache. The cache will be created on demand.

Parameters
sceneScene to query.
seqSequencer strip.
Returns
True if media file is missing.

Definition at line 102 of file media_presence.cc.

References Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), check_media_missing(), check_sound_media_missing(), Scene::ed, get_media_presence_cache(), lock, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), blender::seq::MediaPresence::map_seq, blender::seq::MediaPresence::map_sound, presence_lock, Strip::sound, STRIP_TYPE_SOUND_RAM, and Strip::type.

Referenced by skip_modifier().

◆ media_presence_set_missing()

void blender::seq::media_presence_set_missing ( Scene * scene,
const Strip * strip,
bool missing )

◆ meta_stack_active_get()

MetaStack * blender::seq::meta_stack_active_get ( const Editing * ed)

Get MetaStack that corresponds to current level that is being viewed

Returns
pointer to meta stack

Definition at line 452 of file sequencer.cc.

Referenced by meta_stack_pop(), seq_prefetch_update_active_seqbase(), seq_update_meta_disp_range(), sequencer_all_free_anim_ibufs(), and blender::ed::vse::sequencer_view_all_exec().

◆ meta_stack_pop()

Strip * blender::seq::meta_stack_pop ( Editing * ed)

Close last Meta strip open for editing.

Parameters
edsequence editor data

Definition at line 485 of file sequencer.cc.

References active_seqbase_set(), BLI_remlink(), channels_displayed_set(), MEM_freeN(), meta_stack_active_get(), MetaStack::old_channels, MetaStack::oldbasep, and MetaStack::parent_strip.

Referenced by blender::ed::vse::sequencer_meta_toggle_exec().

◆ meta_stack_set()

void blender::seq::meta_stack_set ( const Scene * scene,
Strip * dst )

Open Meta strip content for editing.

Parameters
edsequence editor data
dstmeta strip or NULL for top level view

Definition at line 461 of file sequencer.cc.

References active_seqbase_set(), BLI_freelistN(), Strip::channels, channels_displayed_set(), editing_get(), lookup_meta_by_strip(), seq_meta_stack_alloc(), and Strip::seqbase.

Referenced by blender::ed::vse::sequencer_meta_toggle_exec().

◆ metastrip_end_get()

int blender::seq::metastrip_end_get ( Strip * strip_meta)
static

◆ metastrip_start_get()

int blender::seq::metastrip_start_get ( Strip * strip_meta)
static

◆ modifier_apply_stack()

◆ modifier_blend_read_data()

◆ modifier_blend_write()

◆ modifier_clear()

void blender::seq::modifier_clear ( Strip * strip)

◆ modifier_find_by_name()

◆ modifier_free()

◆ modifier_list_copy()

◆ modifier_mask_get()

ImBuf * blender::seq::modifier_mask_get ( StripModifierData * smd,
const RenderData * context,
int timeline_frame,
int fra_offset )
static

◆ modifier_new()

◆ modifier_remove()

bool blender::seq::modifier_remove ( Strip * strip,
StripModifierData * smd )

◆ modifier_render_mask_input()

ImBuf * blender::seq::modifier_render_mask_input ( const RenderData * context,
int mask_input_type,
Strip * mask_strip,
Mask * mask_id,
int timeline_frame,
int fra_offset )
static

timeline_frame is offset by fra_offset only in case we are using a real mask.

Definition at line 174 of file sequencer/intern/modifier.cc.

References modifier_render_mask_input(), seq_render_mask(), seq_render_strip(), SEQUENCE_MASK_INPUT_ID, SEQUENCE_MASK_INPUT_STRIP, and state.

Referenced by modifier_mask_get(), and modifier_render_mask_input().

◆ modifier_type_info_get()

◆ modifier_unique_name()

◆ mul_effect_get_handle()

void blender::seq::mul_effect_get_handle ( EffectHandle & rval)

◆ multi_camera_effect_get_handle()

◆ multiply_ibuf()

void blender::seq::multiply_ibuf ( ImBuf * ibuf,
const float fmul,
const bool multiply_alpha )
static

◆ must_render_strip()

bool blender::seq::must_render_strip ( const VectorSet< Strip * > & strips,
Strip * strip )
static

◆ must_update_strip_sound()

bool blender::seq::must_update_strip_sound ( Scene * scene,
Strip * strip )
static

◆ negative_bounds()

Bounds< float2float2 > blender::seq::negative_bounds ( )
static

Definition at line 693 of file strip_transform.cc.

Referenced by image_transform_bounding_box_from_collection().

◆ num_inputs_adjustment()

int blender::seq::num_inputs_adjustment ( )
static

Definition at line 24 of file vse_effect_adjustment.cc.

Referenced by adjustment_effect_get_handle().

◆ num_inputs_color()

int blender::seq::num_inputs_color ( )
static

Definition at line 32 of file vse_effect_solid_color.cc.

Referenced by solid_color_effect_get_handle().

◆ num_inputs_default()

int blender::seq::num_inputs_default ( )
static

Definition at line 107 of file effects.cc.

Referenced by effect_handle_get().

◆ num_inputs_gaussian_blur()

int blender::seq::num_inputs_gaussian_blur ( )
static

Definition at line 31 of file vse_effect_gaussian_blur.cc.

Referenced by gaussian_blur_effect_get_handle().

◆ num_inputs_glow()

int blender::seq::num_inputs_glow ( )
static

Definition at line 144 of file vse_effect_glow.cc.

Referenced by glow_effect_get_handle().

◆ num_inputs_multicam()

int blender::seq::num_inputs_multicam ( )
static

Definition at line 22 of file vse_effect_multi_camera.cc.

Referenced by multi_camera_effect_get_handle().

◆ num_inputs_speed()

int blender::seq::num_inputs_speed ( )
static

Definition at line 47 of file vse_effect_speed.cc.

Referenced by speed_effect_get_handle().

◆ num_inputs_text()

int blender::seq::num_inputs_text ( )
static

Definition at line 289 of file vse_effect_text.cc.

Referenced by text_effect_get_handle().

◆ num_inputs_transform()

int blender::seq::num_inputs_transform ( )
static

Definition at line 46 of file vse_effect_transform.cc.

Referenced by transform_effect_get_handle().

◆ num_inputs_wipe()

int blender::seq::num_inputs_wipe ( )
static

Definition at line 294 of file vse_effect_wipe.cc.

Referenced by wipe_effect_get_handle().

◆ offset_animdata()

◆ open_anim_file_multiview()

◆ open_anim_filepath()

void blender::seq::open_anim_filepath ( Strip * strip,
StripAnim * sanim,
const char * filepath,
bool openfile )
static

◆ original_strip_get() [1/2]

Strip * blender::seq::original_strip_get ( const Strip * strip,
ListBase * seqbase )
static

◆ original_strip_get() [2/2]

Strip * blender::seq::original_strip_get ( const Strip * strip,
Scene * scene )
static

Definition at line 146 of file prefetch.cc.

References Scene::ed, and original_strip_get().

◆ overlap_description_get()

eOvelapDescrition blender::seq::overlap_description_get ( const Scene * scene,
const Strip * transformed,
const Strip * target )
static

◆ pixels_to_scene_linear_byte()

void blender::seq::pixels_to_scene_linear_byte ( const ColorSpace * colorspace,
const uchar * pixels,
float4 * dst,
int64_t count )
static

◆ pixels_to_scene_linear_float()

void blender::seq::pixels_to_scene_linear_float ( const ColorSpace * colorspace,
float4 * pixels,
int64_t count )
static

◆ precalc_wipe_zone()

◆ prefetch_get_original_scene()

Scene * blender::seq::prefetch_get_original_scene ( const RenderData * context)

◆ prefetch_get_original_scene_and_strip()

Scene * blender::seq::prefetch_get_original_scene_and_strip ( const RenderData * context,
const Strip *& strip )

Definition at line 170 of file prefetch.cc.

References get_original_context(), and original_strip_get().

Referenced by source_image_cache_get(), and source_image_cache_put().

◆ prefetch_need_redraw()

◆ prefetch_stop()

◆ prefetch_stop_all()

void blender::seq::prefetch_stop_all ( )

Definition at line 273 of file prefetch.cc.

References G, and prefetch_stop().

Referenced by WM_jobs_kill_all().

◆ prepare_effect_imbufs()

◆ proxy_dir_get()

void blender::seq::proxy_dir_get ( Editing * ed,
Strip * strip,
size_t str_len,
char * r_proxy_dirpath )
static

◆ proxy_endjob()

◆ proxy_freejob()

void blender::seq::proxy_freejob ( void * pjv)
static

Definition at line 29 of file proxy_job.cc.

References BLI_freelistN(), MEM_freeN(), and blender::seq::ProxyJob::queue.

Referenced by ED_seq_proxy_job_get().

◆ proxy_rebuild()

◆ proxy_rebuild_context()

◆ proxy_rebuild_finish()

void blender::seq::proxy_rebuild_finish ( IndexBuildContext * context,
bool stop )

◆ proxy_set()

void blender::seq::proxy_set ( Strip * strip,
bool value )

◆ proxy_startjob()

void blender::seq::proxy_startjob ( void * pjv,
wmJobWorkerStatus * worker_status )
static

◆ query_all_strips()

blender::VectorSet< Strip * > blender::seq::query_all_strips ( ListBase * seqbase)

Query all strips in seqbase. This does not include strips nested in meta strips.

Parameters
seqbaseListBase in which strips are queried
Returns
set of strips

Definition at line 118 of file iterator.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), and LISTBASE_FOREACH.

Referenced by blender::ed::vse::all_strips_from_context(), blender::ed::vse::deselect_all_strips(), seq_get_snap_targets(), and seq_time_gap_info_get().

◆ query_all_strips_recursive() [1/2]

blender::VectorSet< Strip * > blender::seq::query_all_strips_recursive ( const ListBase * seqbase)

Query all strips in seqbase and nested meta strips.

Parameters
seqbaseListBase in which strips are queried
Returns
set of strips

Definition at line 111 of file iterator.cc.

References query_all_strips_recursive().

◆ query_all_strips_recursive() [2/2]

◆ query_by_reference()

blender::VectorSet< Strip * > blender::seq::query_by_reference ( Strip * strip_reference,
const Scene * scene,
ListBase * seqbase,
void strip_query_funcconst Scene *scene, Strip *strip_reference, ListBase *seqbase, blender::VectorSet< Strip * > &strips )

Query strips from seqbase. strip_reference is used by query function as filter condition.

Parameters
strip_referencereference strip for query function
seqbaseListBase in which strips are queried
strip_query_funcquery function callback
Returns
set of strips

Definition at line 69 of file iterator.cc.

Referenced by iterator_set_expand(), and strip_transform_handle_overwrite_trim().

◆ query_final_image_cache()

◆ query_intra_frame_cache()

◆ query_overwrite_targets()

◆ query_rendered_strips()

◆ query_right_side_strips()

◆ query_scene_strips()

◆ query_selected_strips()

◆ query_source_image_cache()

◆ query_strip_connected_and_effect_chain()

void blender::seq::query_strip_connected_and_effect_chain ( const Scene * scene,
Strip * reference_strip,
ListBase * seqbase,
blender::VectorSet< Strip * > & r_strips )

Query all connected strips, as well as all effect strips directly or indirectly connected to those connected strips. These steps repeat until there are no new strips to process.

Parameters
strip_referencereference strip
seqbaseListBase in which strips are queried
stripsset of strips to be filled

Definition at line 260 of file iterator.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), connected_strips_get(), blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::pop_last(), and query_strip_effect_chain().

Referenced by edit_strip_split(), and blender::ed::vse::sequencer_meta_make_exec().

◆ query_strip_effect_chain()

◆ query_strips_at_frame()

VectorSet< Strip * > blender::seq::query_strips_at_frame ( const Scene * scene,
ListBase * seqbase,
const int timeline_frame )
static

◆ query_thumbnail()

◆ query_thumbnail_cache()

◆ query_unselected_strips()

blender::VectorSet< Strip * > blender::seq::query_unselected_strips ( ListBase * seqbase)

Query all unselected strips in seqbase.

Parameters
seqbaseListBase in which strips are queried
Returns
set of strips

Definition at line 219 of file iterator.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), LISTBASE_FOREACH, and SELECT.

Referenced by query_overwrite_targets().

◆ relation_is_effect_of_strip()

bool blender::seq::relation_is_effect_of_strip ( const Strip * effect,
const Strip * input )

◆ relations_check_scene_recursion()

◆ relations_check_uids_unique_and_report()

void blender::seq::relations_check_uids_unique_and_report ( const Scene * scene)

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

Definition at line 340 of file strip_relations.cc.

References BLI_gset_free(), BLI_gset_new(), BLI_session_uid_ghash_compare(), BLI_session_uid_ghash_hash(), Scene::ed, for_each_callback(), get_uids_cb(), and Editing::seqbase.

◆ relations_free_all_anim_ibufs()

void blender::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 213 of file strip_relations.cc.

References editing_get(), MAXFRAME, and sequencer_all_free_anim_ibufs().

Referenced by render_give_ibuf().

◆ relations_free_imbuf()

◆ relations_invalidate_cache()

void blender::seq::relations_invalidate_cache ( Scene * scene,
Strip * strip )

Invalidates various caches related to a given strip:

  • Final cached frames over the length of the strip,
  • Intra-frame caches of the current frame,
  • Source/raw caches of the meta strip that contains this strip, if any,
  • Media presence cache of the strip,
  • Rebuilds speed index map if this is a speed effect strip,
  • Tags DEG for strip recalculation,
  • Stops prefetching job, if any.

Definition at line 96 of file strip_relations.cc.

References DEG_id_tag_update(), Strip::effectdata, Scene::id, ID_RECALC_SEQUENCER_STRIPS, intra_frame_cache_invalidate(), invalidate_final_cache_strip_range(), invalidate_raw_cache_of_parent_meta(), media_presence_invalidate_strip(), prefetch_stop(), strip_effect_speed_rebuild_map(), STRIP_TYPE_SPEED, and Strip::type.

Referenced by edit_move_strip_to_seqbase(), blender::ed::transform::image_origin_set(), blender::ed::transform::image_transform_set(), blender::ed::transform::recalcData_sequencer(), blender::ed::transform::recalcData_sequencer_retiming(), relations_invalidate_cache_raw(), blender::ed::outliner::sequence_fn(), blender::ed::vse::sequencer_change_effect_type_exec(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_meta_separate_exec(), blender::ed::vse::sequencer_mute_exec(), blender::ed::vse::sequencer_offset_clear_exec(), blender::ed::vse::sequencer_reassign_inputs_exec(), blender::ed::vse::sequencer_rendersize_exec(), blender::ed::vse::sequencer_snap_exec(), blender::ed::vse::sequencer_strip_transform_clear_exec(), blender::ed::vse::sequencer_strip_transform_fit_exec(), blender::ed::vse::sequencer_swap_inputs_exec(), blender::ed::vse::sequencer_unmute_exec(), blender::ed::vse::slip_strips_delta(), strip_add_generic_update(), blender::ed::vse::strip_modifier_add_exec(), blender::ed::vse::strip_modifier_copy_exec(), blender::ed::vse::strip_modifier_equalizer_redefine_exec(), blender::ed::vse::strip_modifier_move_exec(), blender::ed::vse::strip_modifier_remove_exec(), blender::ed::vse::swap_strips(), and transform_offset_after_frame().

◆ relations_invalidate_cache_raw()

◆ relations_invalidate_movieclip_strips()

void blender::seq::relations_invalidate_movieclip_strips ( Main * bmain,
MovieClip * clip_target )

Definition at line 138 of file strip_relations.cc.

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

◆ relations_invalidate_scene_strips()

void blender::seq::relations_invalidate_scene_strips ( const Main * bmain,
const Scene * scene_target )

◆ relations_render_loop_check()

bool blender::seq::relations_render_loop_check ( Strip * strip_main,
Strip * strip )

◆ relations_session_uid_generate()

void blender::seq::relations_session_uid_generate ( Strip * strip)

Generate new UID for the given strip.

Definition at line 317 of file strip_relations.cc.

References BLI_session_uid_generate(), Strip::runtime, and StripRuntime::session_uid.

Referenced by strip_alloc(), strip_duplicate(), and strip_read_data_cb().

◆ relations_strip_free_anim()

◆ render_give_ibuf()

◆ render_give_ibuf_direct()

ImBuf * blender::seq::render_give_ibuf_direct ( const RenderData * context,
float timeline_frame,
Strip * strip )

◆ render_give_stripelem()

◆ render_imbuf_from_sequencer_space()

◆ render_is_muted()

◆ render_new_render_data()

◆ render_pixel_from_sequencer_space_v4()

void blender::seq::render_pixel_from_sequencer_space_v4 ( const Scene * scene,
float pixel[4] )

◆ rendersize_to_proxysize()

◆ rendersize_to_scale_factor()

◆ retiming_add_freeze_frame()

◆ retiming_add_key()

SeqRetimingKey * blender::seq::retiming_add_key ( const Scene * scene,
Strip * strip,
int timeline_frame )

◆ retiming_add_transition()

◆ retiming_data_clear()

void blender::seq::retiming_data_clear ( Strip * strip)

◆ retiming_data_ensure()

◆ retiming_data_is_editable()

◆ retiming_find_segment_start_key()

SeqRetimingKey * blender::seq::retiming_find_segment_start_key ( const Strip * strip,
float frame_index )

◆ retiming_is_active()

bool blender::seq::retiming_is_active ( const Strip * strip)

◆ retiming_is_allowed()

◆ retiming_is_last_key()

◆ retiming_key_get_by_timeline_frame()

SeqRetimingKey * blender::seq::retiming_key_get_by_timeline_frame ( const Scene * scene,
const Strip * strip,
const int timeline_frame )

◆ retiming_key_index_get()

◆ retiming_key_is_freeze_frame()

bool blender::seq::retiming_key_is_freeze_frame ( const SeqRetimingKey * key)

◆ retiming_key_is_transition_start()

◆ retiming_key_is_transition_type()

◆ retiming_key_overlap()

◆ retiming_key_speed_get()

◆ retiming_key_speed_set()

◆ retiming_key_timeline_frame_get()

◆ retiming_key_timeline_frame_set()

◆ retiming_keys_count()

◆ retiming_keys_get()

◆ retiming_last_key_get()

SeqRetimingKey * blender::seq::retiming_last_key_get ( const Strip * strip)

◆ retiming_remove_key()

void blender::seq::retiming_remove_key ( Strip * strip,
SeqRetimingKey * key )

◆ retiming_remove_multiple_keys()

◆ retiming_reset()

◆ retiming_selection_append()

◆ retiming_selection_clear()

◆ retiming_selection_contains()

◆ retiming_selection_copy()

void blender::seq::retiming_selection_copy ( SeqRetimingKey * dst,
const SeqRetimingKey * src )

◆ retiming_selection_get()

◆ retiming_selection_has_whole_transition()

◆ retiming_selection_remove()

void blender::seq::retiming_selection_remove ( SeqRetimingKey * key)

◆ retiming_sound_animation_data_set()

◆ retiming_transition_key_frame_set()

◆ retiming_transition_start_get()

SeqRetimingKey * blender::seq::retiming_transition_start_get ( SeqRetimingKey * key)

◆ scale_to_thumbnail_size()

void blender::seq::scale_to_thumbnail_size ( ImBuf * ibuf)
static

Definition at line 228 of file thumbnail_cache.cc.

References image_size_to_thumb_size(), IMB_scale(), Nearest, ImBuf::x, and ImBuf::y.

◆ scene_linear_to_image_chunk_byte()

◆ scene_linear_to_image_chunk_float()

◆ scene_sequencer_is_used()

bool blender::seq::scene_sequencer_is_used ( const Scene * scene,
ListBase * seqbase )
static

◆ select_active_get()

Strip * blender::seq::select_active_get ( const Scene * scene)

Definition at line 21 of file strip_select.cc.

References editing_get().

Referenced by active_mask_get(), blender::ed::vse::cursor_set_by_mouse_position(), blender::ed::vse::draw_multicam_highlight(), blender::ed::vse::filter_modifiers_by_sequence_type_itemf(), blender::ed::outliner::get_sync_select_active_data(), blender::ed::vse::preview_draw_all_image_overlays(), scene_new_sequencer_enum_itemf(), scene_new_sequencer_poll(), screen_ctx_active_sequence_strip(), screen_ctx_active_strip(), select_active_get_pair(), blender::ed::vse::sequencer_add_duplicate_exec(), blender::ed::vse::sequencer_change_effect_type_exec(), blender::ed::vse::sequencer_change_path_exec(), blender::ed::vse::sequencer_change_path_invoke(), blender::ed::vse::sequencer_change_scene_exec(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::sequencer_draw_get_transform_preview(), blender::ed::vse::sequencer_draw_get_transform_preview_frame(), blender::ed::vse::sequencer_effect_poll(), blender::ed::vse::sequencer_generic_invoke_path__internal(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_meta_separate_exec(), blender::ed::vse::sequencer_meta_toggle_exec(), blender::ed::vse::sequencer_reassign_inputs_exec(), blender::ed::vse::sequencer_rendersize_exec(), blender::ed::vse::sequencer_retiming_data_show_exec(), blender::ed::vse::sequencer_select_grouped_exec(), blender::ed::vse::sequencer_swap_exec(), blender::ed::vse::sequencer_swap_inputs_exec(), blender::ed::vse::sequencer_swap_inputs_poll(), blender::ed::vse::sequencer_text_cursor_move_exec(), blender::ed::vse::sequencer_text_cursor_set_invoke(), blender::ed::vse::sequencer_text_cursor_set_modal(), blender::ed::vse::sequencer_text_delete_exec(), blender::ed::vse::sequencer_text_deselect_all_exec(), blender::ed::vse::sequencer_text_edit_copy_exec(), blender::ed::vse::sequencer_text_edit_cut_exec(), blender::ed::vse::sequencer_text_edit_mode_toggle_exec(), blender::ed::vse::sequencer_text_edit_paste_exec(), blender::ed::vse::sequencer_text_editing_active_poll(), blender::ed::vse::sequencer_text_editing_poll(), blender::ed::vse::sequencer_text_insert_exec(), blender::ed::vse::sequencer_text_line_break_exec(), blender::ed::vse::sequencer_text_select_all_exec(), blender::ed::vse::sequencer_write_copy_paste_file(), blender::ed::vse::strip_data_highlight_flags_set(), blender::ed::vse::strip_draw_context_get(), blender::ed::vse::strip_effect_get_new_inputs(), blender::ed::vse::strip_modifier_add_exec(), blender::ed::vse::strip_modifier_copy_exec(), blender::ed::vse::strip_modifier_equalizer_redefine_exec(), blender::ed::vse::strip_modifier_move_exec(), blender::ed::vse::strip_modifier_remove_exec(), blender::ed::vse::strip_new_sequencer_enum_itemf(), blender::ed::vse::strip_select_from_preview(), blender::ed::vse::text_edit_draw(), blender::ed::vse::text_editing_update(), and blender::ed::transform::transform_orientation_matrix_get().

◆ select_active_get_pair()

bool blender::seq::select_active_get_pair ( Scene * scene,
Strip ** r_strip_act,
Strip ** r_strip_other )

◆ select_active_set()

◆ seq_anim_add_suffix()

void blender::seq::seq_anim_add_suffix ( Scene * scene,
MovieReader * anim,
const int view_id )

◆ seq_edit_split_effect_inputs_intersect()

bool blender::seq::seq_edit_split_effect_inputs_intersect ( const Scene * scene,
const Strip * strip,
const int timeline_frame )
static

◆ seq_edit_split_handle_strip_offsets()

void blender::seq::seq_edit_split_handle_strip_offsets ( Main * bmain,
Scene * scene,
Strip * left_strip,
Strip * right_strip,
const int timeline_frame,
const eSplitMethod method )
static

◆ seq_edit_split_intersect_check()

bool blender::seq::seq_edit_split_intersect_check ( const Scene * scene,
const Strip * strip,
const int timeline_frame )
static

◆ seq_edit_split_operation_permitted_check()

bool blender::seq::seq_edit_split_operation_permitted_check ( const Scene * scene,
blender::Span< Strip * > strips,
const int timeline_frame,
const char ** r_error )
static

◆ seq_free_strip()

void blender::seq::seq_free_strip ( StripData * data)
static

Definition at line 98 of file sequencer.cc.

References data, MEM_freeN(), MOV_close(), and printf.

Referenced by seq_strip_free_ex().

◆ seq_free_strip_recurse()

void blender::seq::seq_free_strip_recurse ( Scene * scene,
Strip * strip,
bool do_id_user )

Cache must be freed before calling this function since it leaves the Editing::seqbase in an invalid state.

Definition at line 260 of file sequencer.cc.

References ListBase::first, Strip::next, seq_free_strip_recurse(), seq_strip_free_ex(), and Strip::seqbase.

Referenced by editing_free(), proxy_rebuild_finish(), and seq_free_strip_recurse().

◆ seq_get_movieclip_ibuf()

◆ seq_image_strip_is_multiview_render()

bool blender::seq::seq_image_strip_is_multiview_render ( Scene * scene,
Strip * strip,
int totfiles,
const char * filepath,
char * r_prefix,
const char * r_ext )
static

◆ seq_image_transform_matrix_get_ex()

float3x3 blender::seq::seq_image_transform_matrix_get_ex ( const Scene * scene,
const Strip * strip,
bool apply_rotation = true )
static

◆ seq_imbuf_assign_spaces()

◆ seq_imbuf_to_sequencer_space()

◆ seq_input_have_to_preprocess()

bool blender::seq::seq_input_have_to_preprocess ( const RenderData * context,
Strip * strip,
float  )
static

◆ SEQ_lookup_effects_by_strip()

blender::Span< Strip * > blender::seq::SEQ_lookup_effects_by_strip ( Editing * ed,
const Strip * key )

Find effect strips, that use strip strip 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
keypointer to Strip inside of meta strip
Returns
collection of effect strips

Definition at line 162 of file strip_lookup.cc.

References blender::VectorSet< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::as_span(), BLI_assert, lock, lookup_lock, and strip_lookup_update_if_needed().

Referenced by retiming_key_timeline_frame_set(), retiming_reset(), strip_time_slip_strip_ex(), strip_time_translate_handles(), strip_time_update_effects_strip_range(), time_left_handle_frame_set(), time_right_handle_frame_set(), time_start_frame_set(), time_update_meta_strip_range(), and transform_translate_strip().

◆ seq_meta_stack_alloc()

◆ seq_multiview_name()

void blender::seq::seq_multiview_name ( Scene * scene,
const int view_id,
const char * prefix,
const char * ext,
char * r_path,
size_t r_size )

◆ seq_must_swap_input_in_blend_mode()

bool blender::seq::seq_must_swap_input_in_blend_mode ( Strip * strip)
static

◆ seq_mute_sound_strips_cb()

bool blender::seq::seq_mute_sound_strips_cb ( Strip * strip,
void * user_data )
static

Definition at line 977 of file sequencer.cc.

References BKE_sound_remove_scene_sound(), and Strip::scene_sound.

Referenced by seq_update_scene_strip_sound().

◆ seq_need_scale_to_render_size()

bool blender::seq::seq_need_scale_to_render_size ( const Strip * strip,
bool is_proxy_image )
static

Effect, mask and scene in strip input strips are rendered in preview resolution. They are already down-scaled. input_preprocess() does not expect this to happen. Other strip types are rendered with original media resolution, unless proxies are enabled for them. With proxies is_proxy_image will be set correctly to true.

Definition at line 432 of file render.cc.

References Strip::flag, SEQ_SCENE_STRIPS, STRIP_TYPE_EFFECT, STRIP_TYPE_MASK, STRIP_TYPE_META, STRIP_TYPE_SCENE, and Strip::type.

Referenced by sequencer_preprocess_transform_crop().

◆ seq_new_fix_links_recursive()

◆ seq_num_files()

int blender::seq::seq_num_files ( Scene * scene,
char views_format,
bool is_multiview )

The number of files will vary according to the stereo format.

Definition at line 29 of file multiview.cc.

References BKE_scene_multiview_num_views_get(), Scene::r, and R_IMF_VIEWS_STEREO_3D.

Referenced by add_movie_strip(), add_reload_new_file(), open_anim_file_multiview(), seq_render_image_strip(), and seq_render_movie_strip().

◆ seq_prefetch_anim_eval_context()

AnimationEvalContext blender::seq::seq_prefetch_anim_eval_context ( PrefetchJob * pfjob)
static

◆ seq_prefetch_cfra()

◆ seq_prefetch_do_suspend()

◆ seq_prefetch_frames()

◆ seq_prefetch_free()

◆ seq_prefetch_free_depsgraph()

void blender::seq::seq_prefetch_free_depsgraph ( PrefetchJob * pfjob)
static

◆ seq_prefetch_get_time_range()

void blender::seq::seq_prefetch_get_time_range ( Scene * scene,
int * r_start,
int * r_end )

◆ seq_prefetch_init_depsgraph()

◆ seq_prefetch_is_cache_full()

bool blender::seq::seq_prefetch_is_cache_full ( Scene * scene)
static

Definition at line 183 of file prefetch.cc.

References final_image_cache_evict(), and is_cache_full().

Referenced by seq_prefetch_need_suspend().

◆ seq_prefetch_job_get()

◆ seq_prefetch_job_is_running()

bool blender::seq::seq_prefetch_job_is_running ( Scene * scene)

◆ seq_prefetch_job_is_waiting()

bool blender::seq::seq_prefetch_job_is_waiting ( Scene * scene)
static

Definition at line 117 of file prefetch.cc.

References seq_prefetch_job_get(), and blender::seq::PrefetchJob::waiting.

Referenced by prefetch_need_redraw().

◆ seq_prefetch_job_scrubbing_set()

void blender::seq::seq_prefetch_job_scrubbing_set ( Scene * scene,
bool is_scrubbing )
static

Definition at line 106 of file prefetch.cc.

References blender::seq::PrefetchJob::is_scrubbing, and seq_prefetch_job_get().

Referenced by seq_prefetch_start().

◆ seq_prefetch_must_skip_frame()

bool blender::seq::seq_prefetch_must_skip_frame ( PrefetchJob * pfjob,
ListBase * channels,
ListBase * seqbase )
static

◆ seq_prefetch_need_suspend()

bool blender::seq::seq_prefetch_need_suspend ( PrefetchJob * pfjob)
static

◆ seq_prefetch_resume()

void blender::seq::seq_prefetch_resume ( Scene * scene)
static

◆ seq_prefetch_scene_strip_is_rendered()

bool blender::seq::seq_prefetch_scene_strip_is_rendered ( const Scene * scene,
ListBase * channels,
ListBase * seqbase,
blender::Span< Strip * > scene_strips,
int timeline_frame )
static

◆ seq_prefetch_start()

void blender::seq::seq_prefetch_start ( const RenderData * context,
float timeline_frame )

◆ seq_prefetch_start_ex()

◆ seq_prefetch_update_active_seqbase()

◆ seq_prefetch_update_area()

void blender::seq::seq_prefetch_update_area ( PrefetchJob * pfjob)
static

◆ seq_prefetch_update_context()

◆ seq_prefetch_update_depsgraph()

void blender::seq::seq_prefetch_update_depsgraph ( PrefetchJob * pfjob)
static

◆ seq_prefetch_update_scene()

void blender::seq::seq_prefetch_update_scene ( Scene * scene)
static

◆ seq_proxy_build_frame()

◆ seq_proxy_context_count()

int blender::seq::seq_proxy_context_count ( Strip * strip,
Scene * scene )
static

◆ seq_proxy_fetch()

◆ seq_proxy_get_custom_file_filepath()

bool blender::seq::seq_proxy_get_custom_file_filepath ( Strip * strip,
char * filepath,
const int view_id )

◆ seq_proxy_get_filepath()

◆ seq_proxy_index_dir_set()

void blender::seq::seq_proxy_index_dir_set ( MovieReader * anim,
const char * base_dir )

◆ seq_proxy_multiview_context_invalid()

bool blender::seq::seq_proxy_multiview_context_invalid ( Strip * strip,
Scene * scene,
const int view_id,
MultiViewPrefixVars * prefix_vars )
static

Returns whether the file this context would read from even exist, if not, don't create the context.

Parameters
prefix_varsStores prefix variables for reuse, these variables are for internal use, the caller must not depend on them.
Note
This function must first a view_id of zero, to initialize prefix_vars for use with other views.

Definition at line 341 of file proxy.cc.

References BKE_main_blendfile_path_from_global(), BKE_scene_multiview_view_prefix_get(), BLI_access(), BLI_path_abs(), BLI_path_join, Strip::data, StripData::dirpath, blender::seq::MultiViewPrefixVars::ext, FILE_MAX, StripElem::filename, blender::seq::MultiViewPrefixVars::prefix, Scene::r, R_IMF_VIEWS_INDIVIDUAL, R_MULTIVIEW, seq_multiview_name(), STRIP_TYPE_IMAGE, StripData::stripdata, Strip::type, and Strip::views_format.

Referenced by proxy_rebuild_context().

◆ seq_proxy_need_rebuild()

bool blender::seq::seq_proxy_need_rebuild ( Strip * strip,
MovieReader * anim )
static

◆ seq_render_effect_strip_impl()

◆ seq_render_give_ibuf_seqbase()

ImBuf * blender::seq::seq_render_give_ibuf_seqbase ( const RenderData * context,
float timeline_frame,
int chan_shown,
ListBase * channels,
ListBase * seqbasep )

Definition at line 2060 of file render.cc.

References seq_render_strip_stack(), and state.

Referenced by do_adjustment_impl(), and do_multicam().

◆ seq_render_image_strip()

◆ seq_render_image_strip_view()

ImBuf * blender::seq::seq_render_image_strip_view ( const RenderData * context,
Strip * strip,
char * filepath,
char * prefix,
const char * ext,
int view_id )
static

◆ seq_render_mask()

◆ seq_render_mask_strip()

ImBuf * blender::seq::seq_render_mask_strip ( const RenderData * context,
Strip * strip,
float frame_index )
static

Definition at line 1342 of file render.cc.

References Strip::flag, Strip::mask, SEQ_MAKE_FLOAT, and seq_render_mask().

Referenced by do_render_strip_uncached().

◆ seq_render_movie_strip()

◆ seq_render_movie_strip_custom_file_proxy()

◆ seq_render_movie_strip_timecode_get()

IMB_Timecode_Type blender::seq::seq_render_movie_strip_timecode_get ( Strip * strip)
static

◆ seq_render_movie_strip_view()

◆ seq_render_movieclip_strip()

◆ seq_render_preprocess_ibuf()

ImBuf * blender::seq::seq_render_preprocess_ibuf ( const RenderData * context,
Strip * strip,
ImBuf * ibuf,
float timeline_frame,
bool use_preprocess,
const bool is_proxy_image )
static

◆ seq_render_scene_strip()

ImBuf * blender::seq::seq_render_scene_strip ( const RenderData * context,
Strip * strip,
float frame_index,
float timeline_frame )
static

◆ seq_render_strip()

◆ seq_render_strip_stack()

◆ seq_render_strip_stack_apply_effect()

ImBuf * blender::seq::seq_render_strip_stack_apply_effect ( const RenderData * context,
Strip * strip,
float timeline_frame,
ImBuf * ibuf1,
ImBuf * ibuf2 )
static

◆ seq_set_strip_done_cb()

bool blender::seq::seq_set_strip_done_cb ( Strip * strip,
void *  )
static

Definition at line 729 of file sequencer.cc.

References Strip::data, and StripData::done.

Referenced by blend_write().

◆ seq_shown_strips_get()

◆ seq_split_set_left_hold_offset()

void blender::seq::seq_split_set_left_hold_offset ( Main * bmain,
Scene * scene,
Strip * strip,
int timeline_frame )
static

◆ seq_split_set_right_hold_offset()

void blender::seq::seq_split_set_right_hold_offset ( Main * bmain,
Scene * scene,
Strip * strip,
int timeline_frame )
static

◆ seq_strip_alloc()

StripData * blender::seq::seq_strip_alloc ( int type)
static

Definition at line 80 of file sequencer.cc.

References data, MEM_callocN(), SEQ_TRANSFORM_FILTER_AUTO, and STRIP_TYPE_SOUND_RAM.

Referenced by strip_alloc().

◆ seq_strip_free_ex()

◆ seq_strip_proxy_alloc()

StripProxy * blender::seq::seq_strip_proxy_alloc ( )

◆ seq_time_gap_info_get()

void blender::seq::seq_time_gap_info_get ( const Scene * scene,
ListBase * seqbase,
int initial_frame,
GapInfo * r_gap_info )

Find first gap between strips after initial_frame and describe it by filling data of r_gap_info

Parameters
sceneScene in which strips are located.
seqbaseListBase in which strips are located.
initial_frameframe on timeline from where gaps are searched for.
r_gap_infodata structure describing gap, that will be filled in by this function.

Definition at line 386 of file strip_time.cc.

References blender::seq::GapInfo::gap_exists, blender::seq::GapInfo::gap_length, blender::seq::GapInfo::gap_start_frame, query_all_strips(), strip_exists_at_frame(), timeline_boundbox(), rctf::xmax, and rctf::xmin.

Referenced by edit_remove_gaps().

◆ seq_update_scene_strip_sound()

◆ seq_update_sound_strips()

void blender::seq::seq_update_sound_strips ( Scene * scene,
Strip * strip )
static

◆ seqbase_dupli_recursive()

void blender::seq::seqbase_dupli_recursive ( const Scene * scene_src,
Scene * scene_dst,
ListBase * nseqbase,
const ListBase * seqbase,
int dupe_flag,
const int flag,
blender::Map< Strip *, Strip * > & strip_map )
static

◆ seqbase_duplicate_recursive()

void blender::seq::seqbase_duplicate_recursive ( const Scene * scene_src,
Scene * scene_dst,
ListBase * nseqbase,
const ListBase * seqbase,
int dupe_flag,
const int flag )

◆ seqbase_unique_name()

◆ seqbase_unique_name_recursive_fn()

bool blender::seq::seqbase_unique_name_recursive_fn ( Strip * strip,
void * arg_pt )
static

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

References ListBase::first, Strip::seqbase, and seqbase_unique_name().

Referenced by strip_unique_name_set().

◆ sequence_supports_modifiers()

int blender::seq::sequence_supports_modifiers ( Strip * strip)

◆ sequencer_all_free_anim_ibufs()

◆ sequencer_check_scene_recursion()

Strip * blender::seq::sequencer_check_scene_recursion ( Scene * scene,
ListBase * seqbase )
static

◆ sequencer_flag_users_for_removal()

void blender::seq::sequencer_flag_users_for_removal ( Scene * scene,
ListBase * seqbase,
Strip * strip )
static

◆ sequencer_image_crop_init()

void blender::seq::sequencer_image_crop_init ( const Strip * strip,
const ImBuf * in,
float crop_scale_factor,
rctf * r_crop )
static

◆ sequencer_image_crop_transform_matrix()

float3x3 blender::seq::sequencer_image_crop_transform_matrix ( const Strip * strip,
const ImBuf * in,
const ImBuf * out,
const float image_scale_factor,
const float preview_scale_factor )
static

◆ sequencer_preprocess_transform_crop()

◆ sequencer_strip_generates_image()

bool blender::seq::sequencer_strip_generates_image ( Strip * strip)

◆ sequencer_use_crop()

bool blender::seq::sequencer_use_crop ( const Strip * strip)
static

◆ sequencer_use_transform()

bool blender::seq::sequencer_use_transform ( const Strip * strip)
static

Definition at line 366 of file render.cc.

References Strip::data, StripData::transform, and transform().

Referenced by input_preprocess(), and seq_input_have_to_preprocess().

◆ set_scale_to_fit()

void blender::seq::set_scale_to_fit ( const Strip * strip,
const int image_width,
const int image_height,
const int preview_width,
const int preview_height,
const eSeqImageFitMethod fit_method )

◆ shuffle_strip_test_overlap()

bool blender::seq::shuffle_strip_test_overlap ( const Scene * scene,
const Strip * strip1,
const Strip * strip2,
const int offset )
static

◆ shuffle_strip_time_offset_get()

int blender::seq::shuffle_strip_time_offset_get ( const Scene * scene,
blender::Span< Strip * > strips_to_shuffle,
ListBase * seqbasep,
char dir )
static

◆ skip_modifier()

◆ solid_color_effect_get_handle()

◆ sound_blend_read_data()

void blender::seq::sound_blend_read_data ( BlendDataReader * reader,
ListBase * lb )

◆ sound_blend_write()

void blender::seq::sound_blend_write ( BlendWriter * writer,
ListBase * soundbase )

◆ sound_equalizer_add()

◆ sound_equalizermodifier_add_graph()

EQCurveMappingData * blender::seq::sound_equalizermodifier_add_graph ( SoundEqualizerModifierData * semd,
float min_freq,
float max_freq )

Definition at line 210 of file sequencer/intern/sound.cc.

References sound_equalizer_add().

◆ sound_equalizermodifier_copy_data()

◆ sound_equalizermodifier_free()

◆ sound_equalizermodifier_init_data()

void blender::seq::sound_equalizermodifier_init_data ( StripModifierData * smd)

◆ sound_equalizermodifier_recreator()

◆ sound_equalizermodifier_remove_graph()

void blender::seq::sound_equalizermodifier_remove_graph ( SoundEqualizerModifierData * semd,
EQCurveMappingData * eqcmd )

◆ sound_equalizermodifier_set_graphs()

◆ sound_modifier_recreator()

void * blender::seq::sound_modifier_recreator ( Strip * strip,
StripModifierData * smd,
void * sound )

◆ sound_modifier_worker_info_get()

const SoundModifierWorkerInfo * blender::seq::sound_modifier_worker_info_get ( int type)

Definition at line 329 of file sequencer/intern/sound.cc.

References i, and workersSoundModifiers.

Referenced by sound_modifier_recreator().

◆ sound_pitch_get()

float blender::seq::sound_pitch_get ( const Scene * scene,
const Strip * strip )

◆ sound_update()

void blender::seq::sound_update ( Scene * scene,
bSound * sound )

◆ sound_update_bounds()

◆ sound_update_bounds_all()

void blender::seq::sound_update_bounds_all ( Scene * scene)

◆ sound_update_length()

void blender::seq::sound_update_length ( Main * bmain,
Scene * scene )

Definition at line 80 of file sequencer/intern/sound.cc.

References Scene::ed, Editing::seqbase, and UNUSED_VARS.

◆ source_image_cache_calc_memory_size()

size_t blender::seq::source_image_cache_calc_memory_size ( const Scene * scene)

◆ source_image_cache_clear()

void blender::seq::source_image_cache_clear ( Scene * scene)

◆ source_image_cache_destroy()

void blender::seq::source_image_cache_destroy ( Scene * scene)

◆ source_image_cache_evict()

bool blender::seq::source_image_cache_evict ( Scene * scene)

◆ source_image_cache_get()

◆ source_image_cache_get_image_count()

size_t blender::seq::source_image_cache_get_image_count ( const Scene * scene)

◆ source_image_cache_invalidate_strip()

void blender::seq::source_image_cache_invalidate_strip ( Scene * scene,
const Strip * strip )

◆ source_image_cache_iterate()

void blender::seq::source_image_cache_iterate ( Scene * scene,
void * userdata,
void callback_itervoid *userdata, const Strip *strip, int timeline_frame )

◆ source_image_cache_put()

◆ speed_effect_get_handle()

◆ speed_effect_interpolation_ratio_get()

float blender::seq::speed_effect_interpolation_ratio_get ( Scene * scene,
Strip * strip_speed,
float timeline_frame )
static

Definition at line 177 of file vse_effect_speed.cc.

References floor, and strip_speed_effect_target_frame_get().

Referenced by do_speed_effect().

◆ store_opaque_black_pixel() [1/2]

void blender::seq::store_opaque_black_pixel ( float * dst)
inline

Definition at line 75 of file effects.hh.

◆ store_opaque_black_pixel() [2/2]

void blender::seq::store_opaque_black_pixel ( uchar * dst)
inline

Definition at line 67 of file effects.hh.

Referenced by do_wipe_effect().

◆ store_pixel_premul() [1/2]

void blender::seq::store_pixel_premul ( float4 pix,
float * ptr )
static

Definition at line 63 of file sequencer/intern/modifier.cc.

References ptr.

◆ store_pixel_premul() [2/2]

◆ store_pixel_raw() [1/2]

void blender::seq::store_pixel_raw ( float4 pix,
float * ptr )
static

Definition at line 85 of file sequencer/intern/modifier.cc.

References ptr.

◆ store_pixel_raw() [2/2]

void blender::seq::store_pixel_raw ( float4 pix,
uchar * ptr )
static

◆ store_premul_pixel() [1/2]

void blender::seq::store_premul_pixel ( const blender::float4 & pix,
float * dst )
inline

Definition at line 62 of file effects.hh.

◆ store_premul_pixel() [2/2]

◆ strip_add_generic_update()

◆ strip_add_set_name()

◆ strip_add_set_view_transform()

◆ strip_alloc()

◆ strip_animation_duplicate()

◆ strip_base_path_get()

const char * blender::seq::strip_base_path_get ( const Strip * strip)
static

◆ strip_by_scene_lookup_build()

void blender::seq::strip_by_scene_lookup_build ( Strip * strip,
StripLookup * lookup )
static

◆ strip_can_have_thumbnail()

◆ strip_channel_set()

◆ strip_connections_free()

void blender::seq::strip_connections_free ( Strip * strip)
static

Definition at line 17 of file strip_connect.cc.

References BLI_listbase_clear(), Strip::connections, and LISTBASE_FOREACH_MUTABLE.

Referenced by disconnect().

◆ strip_doversion_250_sound_proxy_update_cb()

bool blender::seq::strip_doversion_250_sound_proxy_update_cb ( Strip * strip,
void * user_data )
static

◆ strip_drivers_duplicate()

void blender::seq::strip_drivers_duplicate ( Strip * strip,
AnimData * dst,
AnimationBackup * src )
static

◆ strip_duplicate()

◆ strip_duplicate_recursive()

Strip * blender::seq::strip_duplicate_recursive ( const Scene * scene_src,
Scene * scene_dst,
ListBase * new_seq_list,
Strip * strip,
int dupe_flag )

◆ strip_duplicate_recursive_impl()

Strip * blender::seq::strip_duplicate_recursive_impl ( const Scene * scene_src,
Scene * scene_dst,
ListBase * new_seq_list,
Strip * strip,
const int dupe_flag,
blender::Map< Strip *, Strip * > & strip_map )
static

◆ strip_effect_get_sequence_blend()

◆ strip_effect_handle_get()

EffectHandle blender::seq::strip_effect_handle_get ( Strip * strip)

Get the effect handle for a given strip, and load the strip if it has not been loaded already. If strip is not an effect strip, returns empty EffectHandle.

Definition at line 249 of file effects.cc.

References effect_handle_get(), Strip::flag, blender::seq::EffectHandle::load, SEQ_EFFECT_NOT_LOADED, STRIP_TYPE_EFFECT, and Strip::type.

Referenced by add_effect_strip(), seq_render_effect_strip_impl(), seq_strip_free_ex(), blender::ed::vse::sequencer_change_effect_type_exec(), strip_duplicate(), strip_speed_effect_target_frame_get(), and strip_update_effectdata_cb().

◆ strip_effect_speed_frame_map_ensure()

void blender::seq::strip_effect_speed_frame_map_ensure ( Scene * scene,
Strip * strip )
static

◆ strip_effect_speed_rebuild_map()

void blender::seq::strip_effect_speed_rebuild_map ( Scene * scene,
Strip * strip )

◆ strip_effect_speed_speed_factor_curve_get()

FCurve * blender::seq::strip_effect_speed_speed_factor_curve_get ( Scene * scene,
Strip * strip )
static

◆ strip_exists_at_frame()

bool blender::seq::strip_exists_at_frame ( const Scene * scene,
blender::Span< Strip * > strips,
const int timeline_frame )
static

Definition at line 374 of file strip_time.cc.

References time_strip_intersects_frame().

Referenced by seq_time_gap_info_get().

◆ strip_for_each_recursive() [1/2]

bool blender::seq::strip_for_each_recursive ( ListBase * seqbase,
blender::FunctionRef< bool(Strip *)> callback )
static

Definition at line 42 of file iterator.cc.

References LISTBASE_FOREACH, strip_for_each_recursive(), and STRIP_TYPE_META.

◆ strip_for_each_recursive() [2/2]

bool blender::seq::strip_for_each_recursive ( ListBase * seqbase,
ForEachFunc callback,
void * user_data )
static

◆ strip_free()

void blender::seq::strip_free ( Scene * scene,
Strip * strip )

Definition at line 255 of file sequencer.cc.

References seq_strip_free_ex().

Referenced by edit_remove_flagged_strips().

◆ strip_from_strip_elem()

Strip * blender::seq::strip_from_strip_elem ( ListBase * seqbase,
StripElem * se )

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

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

References ARRAY_HAS_ITEM, Strip::data, ListBase::first, Strip::len, Strip::next, Strip::seqbase, strip_from_strip_elem(), and StripData::stripdata.

Referenced by strip_from_strip_elem().

◆ strip_get_early_out_for_blend_mode()

StripEarlyOut blender::seq::strip_get_early_out_for_blend_mode ( Strip * strip)
static

◆ strip_give_name()

◆ strip_has_valid_data()

bool blender::seq::strip_has_valid_data ( const Strip * strip)

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 437 of file sequencer/intern/utils.cc.

References Strip::clip, Strip::mask, Strip::scene, Strip::sound, STRIP_TYPE_MASK, STRIP_TYPE_MOVIECLIP, STRIP_TYPE_SCENE, STRIP_TYPE_SOUND_RAM, and Strip::type.

Referenced by skip_modifier().

◆ strip_image_transform_quad_get_ex()

◆ strip_load_font_file()

int blender::seq::strip_load_font_file ( const std::string & path)
static

Definition at line 86 of file vse_effect_text.cc.

References BLF_addref_id(), BLF_is_loaded_id(), BLF_load_unique(), g_font_map, and lock.

Referenced by effect_text_font_load().

◆ strip_load_font_mem()

int blender::seq::strip_load_font_mem ( const std::string & name,
const uchar * data,
int data_size )
static

◆ strip_lookup_append_effect()

void blender::seq::strip_lookup_append_effect ( const Strip * input,
Strip * effect,
StripLookup * lookup )
static

◆ strip_lookup_build()

void blender::seq::strip_lookup_build ( const Editing * ed,
StripLookup * lookup )
static

Definition at line 90 of file strip_lookup.cc.

References strip_lookup_build_from_seqbase().

Referenced by strip_lookup_rebuild().

◆ strip_lookup_build_effect()

void blender::seq::strip_lookup_build_effect ( Strip * strip,
StripLookup * lookup )
static

◆ strip_lookup_build_from_seqbase()

void blender::seq::strip_lookup_build_from_seqbase ( Strip * parent_meta,
const ListBase * seqbase,
StripLookup * lookup )
static

◆ strip_lookup_free() [1/2]

void blender::seq::strip_lookup_free ( Editing * ed)

Free lookup hash data.

Definition at line 127 of file strip_lookup.cc.

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

◆ strip_lookup_free() [2/2]

void blender::seq::strip_lookup_free ( StripLookup ** lookup)
static

Definition at line 102 of file strip_lookup.cc.

Referenced by editing_free(), strip_lookup_free(), and strip_lookup_rebuild().

◆ strip_lookup_invalidate()

void blender::seq::strip_lookup_invalidate ( const Editing * ed)

◆ strip_lookup_new()

StripLookup * blender::seq::strip_lookup_new ( )
static

Definition at line 96 of file strip_lookup.cc.

Referenced by strip_lookup_rebuild().

◆ strip_lookup_rebuild()

void blender::seq::strip_lookup_rebuild ( const Editing * ed,
StripLookup ** lookup )
static

◆ strip_lookup_update_if_needed()

void blender::seq::strip_lookup_update_if_needed ( const Editing * ed,
StripLookup ** lookup )
static

◆ strip_open_anim_file()

◆ strip_raw_image_size_get()

◆ strip_read_data_cb()

◆ strip_retiming_add_key()

◆ strip_retiming_clamp_create_offset()

float blender::seq::strip_retiming_clamp_create_offset ( const Scene * scene,
const Strip * strip,
SeqRetimingKey * key,
int offset )
static

◆ strip_retiming_clamp_timeline_frame()

int blender::seq::strip_retiming_clamp_timeline_frame ( const Scene * scene,
Strip * strip,
SeqRetimingKey * key,
const int timeline_frame )
static

◆ strip_retiming_clamp_transition_offset()

float blender::seq::strip_retiming_clamp_transition_offset ( const Scene * scene,
const Strip * strip,
SeqRetimingKey * start_key,
float offset )
static

◆ strip_retiming_cleanup_freeze_frame()

void blender::seq::strip_retiming_cleanup_freeze_frame ( SeqRetimingKey * key)
static

◆ strip_retiming_evaluate()

◆ strip_retiming_evaluate_arc_segment()

float blender::seq::strip_retiming_evaluate_arc_segment ( const SeqRetimingKey * key,
const float frame_index )
static

◆ strip_retiming_fix_transition()

◆ strip_retiming_fix_transitions()

void blender::seq::strip_retiming_fix_transitions ( const Scene * scene,
Strip * strip,
SeqRetimingKey * key )
static

◆ strip_retiming_key_offset()

void blender::seq::strip_retiming_key_offset ( const Scene * scene,
Strip * strip,
SeqRetimingKey * key,
const float offset )
static

◆ strip_retiming_line_segments_tangent_circle()

void blender::seq::strip_retiming_line_segments_tangent_circle ( const SeqRetimingKey * start_key,
double r_center[2],
double * radius )
static

◆ strip_retiming_range_data_get()

RetimingRangeData blender::seq::strip_retiming_range_data_get ( const Scene * scene,
const Strip * strip )
static

Definition at line 1034 of file strip_retiming.cc.

References Scene::ed, and lookup_meta_by_strip().

Referenced by retiming_sound_animation_data_set().

◆ strip_retiming_remove_key_ex()

◆ strip_retiming_remove_transition()

◆ strip_retiming_segment_as_line_segment()

void blender::seq::strip_retiming_segment_as_line_segment ( const SeqRetimingKey * start_key,
double r_v1[2],
double r_v2[2] )
static

◆ strip_retiming_segment_length_get()

double blender::seq::strip_retiming_segment_length_get ( const SeqRetimingKey * start_key)
static

Definition at line 184 of file strip_retiming.cc.

References SeqRetimingKey::strip_frame_index.

Referenced by strip_retiming_segment_step_get().

◆ strip_retiming_segment_step_get()

float blender::seq::strip_retiming_segment_step_get ( const SeqRetimingKey * start_key)
static

◆ strip_retiming_transition_is_linear()

bool blender::seq::strip_retiming_transition_is_linear ( const Strip * strip,
const SeqRetimingKey * key )
static

Definition at line 270 of file strip_retiming.cc.

References abs, and retiming_key_speed_get().

Referenced by strip_retiming_evaluate().

◆ strip_retiming_transition_offset()

◆ strip_sound_update_cb()

bool blender::seq::strip_sound_update_cb ( Strip * strip,
void * user_data )
static

◆ strip_speed_effect_target_frame_get()

◆ strip_time_effect_range_set()

◆ strip_time_media_playback_rate_factor_get()

float blender::seq::strip_time_media_playback_rate_factor_get ( const Scene * scene,
const Strip * strip )

◆ strip_time_slip_strip_ex()

◆ strip_time_translate_handles()

void blender::seq::strip_time_translate_handles ( const Scene * scene,
Strip * strip,
const int offset )

◆ strip_time_update_effects_strip_range() [1/2]

void blender::seq::strip_time_update_effects_strip_range ( const Scene * scene,
blender::Span< Strip * > effects )

Update strip startdisp and enddisp (n-input effects have no length to calculate these).

◆ strip_time_update_effects_strip_range() [2/2]

◆ strip_topmost_get()

◆ strip_transform_handle_expand_to_fit()

void blender::seq::strip_transform_handle_expand_to_fit ( Scene * scene,
ListBase * seqbasep,
blender::Span< Strip * > transformed_strips,
blender::Span< Strip * > time_dependent_strips,
bool use_sync_markers )
static

◆ strip_transform_handle_overlap_shuffle()

void blender::seq::strip_transform_handle_overlap_shuffle ( Scene * scene,
ListBase * seqbasep,
blender::Span< Strip * > transformed_strips,
blender::Span< Strip * > time_dependent_strips,
bool use_sync_markers )
static

◆ strip_transform_handle_overwrite()

◆ strip_transform_handle_overwrite_split()

void blender::seq::strip_transform_handle_overwrite_split ( Scene * scene,
ListBase * seqbasep,
const Strip * transformed,
Strip * target )
static

◆ strip_transform_handle_overwrite_trim()

◆ strip_unique_name_set()

◆ strip_unload_font()

void blender::seq::strip_unload_font ( int fontid)
static

Definition at line 140 of file vse_effect_text.cc.

References BLF_unload_id(), g_font_map, and lock.

Referenced by effect_text_font_unload().

◆ strip_update_mix_sounds()

void blender::seq::strip_update_mix_sounds ( Scene * scene,
Strip * strip )
static

◆ strip_update_muting_recursive()

void blender::seq::strip_update_muting_recursive ( ListBase * channels,
ListBase * seqbasep,
Strip * strip_meta,
const bool mute )
static

◆ strip_update_sound_bounds_recursive()

void blender::seq::strip_update_sound_bounds_recursive ( const Scene * scene,
Strip * strip_meta )

◆ strip_update_sound_bounds_recursive_impl()

void blender::seq::strip_update_sound_bounds_recursive_impl ( const Scene * scene,
Strip * strip_meta,
int start,
int end )
static

◆ strip_update_sound_modifiers()

void blender::seq::strip_update_sound_modifiers ( Strip * strip)
static

◆ strip_update_sound_properties()

◆ strip_update_sound_recursive()

void blender::seq::strip_update_sound_recursive ( Scene * scene,
ListBase * seqbasep,
bSound * sound )
static

◆ strip_write_data_cb()

◆ sub_effect_get_handle()

void blender::seq::sub_effect_get_handle ( EffectHandle & rval)

◆ text_box_width_get()

int blender::seq::text_box_width_get ( const Vector< LineInfo > & lines)
static

Definition at line 897 of file vse_effect_text.cc.

References text_box_width_get().

Referenced by apply_text_alignment(), calc_boundbox(), and text_box_width_get().

◆ text_draw()

◆ text_effect_font_init()

int blender::seq::text_effect_font_init ( const RenderData * context,
const Strip * strip,
int font_flags )
static

◆ text_effect_get_handle()

◆ text_effect_line_size_get()

int blender::seq::text_effect_line_size_get ( const RenderData * context,
const Strip * strip )
static

◆ text_gaussian_blur_x()

void blender::seq::text_gaussian_blur_x ( const Span< float > gaussian,
int half_size,
int start_line,
int width,
int height,
const uchar * rect,
uchar * dst,
const rcti & shadow_rect )
static

Definition at line 305 of file vse_effect_text.cc.

References blender::math::max(), blender::math::min(), x, rcti::xmax, rcti::xmin, and y.

Referenced by draw_text_shadow().

◆ text_gaussian_blur_y()

void blender::seq::text_gaussian_blur_y ( const Span< float > gaussian,
int half_size,
int start_line,
int width,
int height,
const uchar * rect,
uchar * dst,
const rcti & shadow_rect )
static

◆ thumbnail_cache_clear()

void blender::seq::thumbnail_cache_clear ( Scene * scene)

◆ thumbnail_cache_destroy()

void blender::seq::thumbnail_cache_destroy ( Scene * scene)

◆ thumbnail_cache_discard_requests_outside()

void blender::seq::thumbnail_cache_discard_requests_outside ( Scene * scene,
const rctf & rect )

Discard in-flight thumbnail loading requests that are outside of the given view (X coordinate: timeline frames, Y coordinate: channels).

Definition at line 600 of file thumbnail_cache.cc.

References lock, query_thumbnail_cache(), blender::seq::ThumbnailCache::requests_, thumb_cache_mutex, thumbnail_cache_discard_requests_outside(), rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by blender::ed::vse::draw_seq_strips(), and thumbnail_cache_discard_requests_outside().

◆ thumbnail_cache_get()

ImBuf * blender::seq::thumbnail_cache_get ( const bContext * C,
Scene * scene,
const Strip * strip,
float timeline_frame )

Get a thumbnail image for given strip at timeline_frame.

The function can return null if a strip type does not have a thumbnail, a source media file is not found, or the thumbnail has not been loaded yet.

A "closest" thumbnail if there is no exact match can also be returned, e.g. for a movie strip the closest frame that has a thumbnail already.

When there is no exact match, a request to load a thumbnail will be internally added and processed in the background.

Definition at line 497 of file thumbnail_cache.cc.

References Strip::anim_startofs, C, ensure_thumbnail_cache(), get_path_from_strip(), give_frame_index(), IMB_refImBuf(), lock, query_thumbnail(), blender::math::round(), strip_can_have_thumbnail(), STRIP_TYPE_MOVIE, thumb_cache_mutex, thumbnail_cache_get(), and Strip::type.

Referenced by blender::ed::vse::get_seq_strip_thumbnails(), and thumbnail_cache_get().

◆ thumbnail_cache_invalidate_strip()

◆ thumbnail_cache_maintain_capacity()

void blender::seq::thumbnail_cache_maintain_capacity ( Scene * scene)

◆ time_content_end_frame_get()

◆ time_find_next_prev_edit()

int blender::seq::time_find_next_prev_edit ( Scene * scene,
int timeline_frame,
short side,
bool do_skip_mute,
bool do_center,
bool do_unselected )

Find start or end position of next or previous strip.

Parameters
sceneVideo editing scene
timeline_framereference frame for searching
sidedirection of searching, SIDE_LEFT, SIDE_RIGHT or SIDE_BOTH.
do_centerfind closest strip center if true, otherwise finds closest handle position.
do_unselectedonly find closest position of unselected strip.

Definition at line 241 of file strip_time.cc.

References abs, channels_displayed_get(), editing_get(), i, LISTBASE_FOREACH, MAXFRAME, render_is_muted(), SELECT, SIDE_BOTH, SIDE_LEFT, SIDE_RIGHT, time_left_handle_frame_get(), and time_right_handle_frame_get().

Referenced by blender::ed::vse::strip_jump_internal().

◆ time_get_rounded_sound_offset()

int blender::seq::time_get_rounded_sound_offset ( const Strip * strip,
float frames_per_second )

Get the sound offset (if any) and round it to the nearest integer. This is mostly used in places where subframe data is not allowed (like re-timing key positions). Returns zero if strip is not a sound strip or if there is no offset.

Definition at line 626 of file strip_time.cc.

References bSound::offset_time, round_fl_to_int(), Strip::sound, Strip::sound_offset, STRIP_TYPE_SOUND_RAM, and Strip::type.

Referenced by content_frame_index_get(), blender::ed::vse::fake_retiming_key_init(), blender::ed::vse::left_fake_key_frame_get(), retiming_key_timeline_frame_get(), retiming_sound_animation_data_set(), blender::ed::vse::right_fake_key_frame_get(), and time_strip_length_get().

◆ time_has_left_still_frames()

bool blender::seq::time_has_left_still_frames ( const Scene * scene,
const Strip * strip )

Returns true if at beginning of strip there is no content to be rendered.

Definition at line 437 of file strip_time.cc.

References time_left_handle_frame_get(), and time_start_frame_get().

Referenced by time_has_still_frames().

◆ time_has_right_still_frames()

bool blender::seq::time_has_right_still_frames ( const Scene * scene,
const Strip * strip )

Returns true if at end of strip there is no content to be rendered.

Definition at line 442 of file strip_time.cc.

References time_content_end_frame_get(), and time_right_handle_frame_get().

Referenced by time_has_still_frames().

◆ time_has_still_frames()

bool blender::seq::time_has_still_frames ( const Scene * scene,
const Strip * strip )

Returns true if strip has frames without content to render.

Definition at line 447 of file strip_time.cc.

References time_has_left_still_frames(), and time_has_right_still_frames().

◆ time_left_handle_frame_get()

int blender::seq::time_left_handle_frame_get ( const Scene * scene,
const Strip * strip )

Get timeline frame where strip boundary starts.

Definition at line 484 of file strip_time.cc.

References Strip::input1, Strip::input2, Strip::start, Strip::startdisp, and Strip::startofs.

Referenced by add_reload_new_file(), append_sequencer_strip_snap_target(), blender::ed::vse::can_select_handle(), do_adjustment_impl(), blender::ed::vse::draw_cache_stripe(), blender::ed::vse::drawmeta_contents(), edit_strip_split(), blender::ed::transform::effect_input_get(), blender::ed::vse::find_neighboring_strip(), blender::ed::vse::find_next_prev_strip(), blender::ed::transform::flushTransSeq(), get_default_fac_fade(), blender::ed::vse::inner_clickable_handle_size_get(), invalidate_final_cache_strip_range(), blender::ed::vse::left_fake_key_frame_get(), blender::ed::vse::mouse_over_key_get_from_strip(), overlap_description_get(), blender::ed::vse::padded_strips_under_mouse_get(), blender::ed::transform::points_build_sources_timeline_strips(), blender::ed::transform::points_build_targets_timeline(), proxy_rebuild(), blender::ed::vse::query_lower_channel_strips(), query_right_side_strips(), blender::ed::vse::realize_fake_keys(), blender::ed::vse::realize_fake_keys_in_rect(), relations_check_scene_recursion(), retiming_key_timeline_frame_set(), blender::ed::vse::select_active_side(), blender::ed::vse::select_active_side_range(), blender::ed::vse::select_grouped_time_overlap(), blender::ed::vse::select_linked_time_strip(), seq_edit_split_intersect_check(), seq_meta_stack_alloc(), seq_update_meta_disp_range(), blender::ed::vse::seq_view_collection_rect_timeline(), blender::ed::transform::SeqToTransData(), blender::ed::transform::SeqTransInfo(), blender::ed::vse::sequencer_add_movie_multiple_strips(), blender::ed::vse::sequencer_add_movie_sync_sound_strip(), blender::ed::vse::sequencer_add_sound_multiple_strips(), sequencer_all_free_anim_ibufs(), blender::ed::vse::sequencer_box_select_exec(), blender::ed::vse::sequencer_clipboard_paste_exec(), blender::ed::vse::sequencer_draw_get_transform_preview_frame(), blender::ed::vse::sequencer_export_subtitles_exec(), blender::ed::vse::sequencer_main_cursor(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_reassign_inputs_exec(), blender::ed::vse::sequencer_retiming_box_select_exec(), blender::ed::vse::sequencer_scene_frame_range_update_exec(), blender::ed::vse::sequencer_select_linked_handle(), blender::ed::vse::sequencer_select_side_exec(), blender::ed::vse::sequencer_select_side_of_frame(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_separate_images_exec(), blender::ed::vse::sequencer_set_range_to_strips_exec(), blender::ed::vse::sequencer_snap_exec(), blender::ed::vse::sequencer_split_exec(), blender::ed::vse::sequencer_split_invoke(), blender::ed::vse::sequencer_visible_strips_get(), shuffle_strip_test_overlap(), shuffle_strip_time_offset_get(), blender::ed::vse::slip_apply_clamp(), blender::ed::vse::slip_data_init(), sound_update_bounds(), blender::ed::vse::strip_cmp_time_startdisp_channel(), blender::ed::vse::strip_draw_context_get(), strip_effect_speed_rebuild_map(), blender::ed::vse::strip_handle_draw_size_get(), blender::ed::vse::strip_rectf(), strip_speed_effect_target_frame_get(), blender::ed::vse::strip_start_screenspace_get(), strip_time_effect_range_set(), strip_time_slip_strip_ex(), strip_transform_handle_overwrite_split(), strip_transform_handle_overwrite_trim(), blender::ed::vse::strips_are_adjacent(), blender::ed::vse::swap_strips(), time_find_next_prev_edit(), time_has_left_still_frames(), time_right_handle_frame_set(), time_strip_intersects_frame(), time_update_meta_strip_range(), timeline_expand_boundbox(), transform_offset_after_frame(), blender::ed::transform::transform_seq_slide_cursor_get(), transform_seqbase_shuffle_ex(), transform_test_overlap(), transform_translate_strip(), and versioning_convert_strip_speed_factor().

◆ time_left_handle_frame_set()

◆ time_media_playback_rate_factor_get()

◆ time_right_handle_frame_get()

int blender::seq::time_right_handle_frame_get ( const Scene * scene,
const Strip * strip )

Get timeline frame where strip boundary ends.

Definition at line 493 of file strip_time.cc.

References Strip::enddisp, Strip::endofs, Strip::input1, Strip::input2, and time_content_end_frame_get().

Referenced by add_reload_new_file(), append_sequencer_strip_snap_target(), blender::ed::vse::can_select_handle(), do_adjustment_impl(), do_versions_sequencer_speed_effect_recursive(), blender::ed::vse::draw_cache_stripe(), blender::ed::vse::drawmeta_contents(), edit_strip_split(), blender::ed::vse::find_neighboring_strip(), blender::ed::vse::find_next_prev_strip(), blender::ed::transform::flushTransSeq(), give_frame_index(), blender::ed::vse::inner_clickable_handle_size_get(), invalidate_final_cache_strip_range(), blender::ed::vse::mouse_over_key_get_from_strip(), overlap_description_get(), blender::ed::vse::padded_strips_under_mouse_get(), blender::ed::transform::points_build_sources_timeline_strips(), blender::ed::transform::points_build_targets_timeline(), proxy_rebuild(), blender::ed::vse::query_lower_channel_strips(), blender::ed::vse::realize_fake_keys(), blender::ed::vse::realize_fake_keys_in_rect(), blender::ed::vse::retiming_fake_key_frame_clicked(), retiming_key_timeline_frame_set(), blender::ed::vse::right_fake_key_frame_get(), blender::ed::vse::select_grouped_time_overlap(), blender::ed::vse::select_linked_time_strip(), seq_edit_split_intersect_check(), seq_meta_stack_alloc(), seq_update_meta_disp_range(), blender::ed::vse::seq_view_collection_rect_timeline(), blender::ed::transform::SeqToTransData(), blender::ed::transform::SeqTransInfo(), blender::ed::vse::sequencer_add_movie_multiple_strips(), blender::ed::vse::sequencer_add_movie_sync_sound_strip(), blender::ed::vse::sequencer_add_sound_multiple_strips(), sequencer_all_free_anim_ibufs(), blender::ed::vse::sequencer_box_select_exec(), blender::ed::vse::sequencer_draw_get_transform_preview_frame(), blender::ed::vse::sequencer_export_subtitles_exec(), blender::ed::vse::sequencer_generic_invoke_xy_guess_channel(), blender::ed::vse::sequencer_main_cursor(), blender::ed::vse::sequencer_meta_make_exec(), blender::ed::vse::sequencer_retiming_box_select_exec(), blender::ed::vse::sequencer_scene_frame_range_update_exec(), blender::ed::vse::sequencer_select_side_of_frame(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_separate_images_exec(), blender::ed::vse::sequencer_set_range_to_strips_exec(), blender::ed::vse::sequencer_split_exec(), blender::ed::vse::sequencer_split_invoke(), blender::ed::vse::sequencer_visible_strips_get(), shuffle_strip_test_overlap(), shuffle_strip_time_offset_get(), blender::ed::vse::slip_apply_clamp(), blender::ed::vse::slip_data_init(), sound_update_bounds(), blender::ed::vse::strip_draw_context_get(), strip_effect_speed_rebuild_map(), blender::ed::vse::strip_end_screenspace_get(), blender::ed::vse::strip_get_text_strip_cb(), blender::ed::vse::strip_handle_draw_size_get(), blender::ed::vse::strip_rectf(), strip_speed_effect_target_frame_get(), strip_time_effect_range_set(), strip_time_slip_strip_ex(), strip_transform_handle_overwrite_split(), strip_transform_handle_overwrite_trim(), blender::ed::vse::strips_are_adjacent(), blender::ed::vse::swap_strips(), time_find_next_prev_edit(), time_has_right_still_frames(), time_left_handle_frame_set(), time_strip_intersects_frame(), time_update_meta_strip_range(), timeline_expand_boundbox(), blender::ed::transform::transform_seq_slide_cursor_get(), transform_seqbase_shuffle_ex(), transform_test_overlap(), and transform_translate_strip().

◆ time_right_handle_frame_set()

◆ time_slip_strip()

void blender::seq::time_slip_strip ( const Scene * scene,
Strip * strip,
int frame_delta,
float subframe_delta,
bool slip_keyframes )

Move contents of a strip without moving the strip handles.

Definition at line 620 of file strip_time.cc.

References strip_time_slip_strip_ex().

Referenced by blender::ed::vse::slip_strips_delta().

◆ time_start_frame_get()

◆ time_start_frame_set()

void blender::seq::time_start_frame_set ( const Scene * scene,
Strip * strip,
int timeline_frame )

Set frame where strip content starts. This function will also move strip handles.

Definition at line 471 of file strip_time.cc.

References Scene::ed, lookup_meta_by_strip(), SEQ_lookup_effects_by_strip(), Strip::start, strip_time_update_effects_strip_range(), and time_update_meta_strip_range().

Referenced by time_left_handle_frame_set().

◆ time_strip_fps_get()

float blender::seq::time_strip_fps_get ( Scene * scene,
Strip * strip )

Get FPS rate of source media. Movie, scene and movie-clip strips are supported. Returns 0 for unsupported strip or if media can't be loaded.

Definition at line 318 of file strip_time.cc.

References StripAnim::anim, Strip::anims, BKE_movieclip_get_fps(), BLI_listbase_is_empty(), Strip::clip, ListBase::first, MOV_get_fps(), Scene::r, Strip::scene, strip_open_anim_file(), STRIP_TYPE_MOVIE, STRIP_TYPE_MOVIECLIP, STRIP_TYPE_SCENE, and Strip::type.

◆ time_strip_intersects_frame()

bool blender::seq::time_strip_intersects_frame ( const Scene * scene,
const Strip * strip,
int timeline_frame )

Test if strip intersects with timeline frame.

Note
This checks if strip would be rendered at this frame. For rendering it is assumed, that timeline frame has width of 1 frame and therefore ends at timeline_frame + 1
Parameters
stripStrip to be checked
timeline_frameabsolute frame position
Returns
true if strip intersects with timeline frame.

Definition at line 431 of file strip_time.cc.

References time_left_handle_frame_get(), and time_right_handle_frame_get().

Referenced by blender::ed::vse::have_free_channels(), query_strips_at_frame(), relations_free_imbuf(), blender::ed::vse::sequencer_add_duplicate_exec(), sequencer_all_free_anim_ibufs(), blender::ed::vse::sequencer_select_side_of_frame_exec(), blender::ed::vse::sequencer_text_editing_active_poll(), blender::ed::vse::sequencer_unmute_exec(), skip_modifier(), strip_exists_at_frame(), strip_topmost_get(), and blender::ed::transform::visible_retiming_keys_get().

◆ time_strip_length_get()

int blender::seq::time_strip_length_get ( const Scene * scene,
const Strip * strip )

◆ time_update_meta_strip_range()

◆ timeline_boundbox()

void blender::seq::timeline_boundbox ( const Scene * scene,
const ListBase * seqbase,
rctf * r_rect )

Define boundary rectangle of sequencer timeline and fill in rect data

Parameters
sceneScene in which strips are located
seqbaseListBase in which strips are located
rectdata structure describing rectangle, that will be filled in by this function

Definition at line 368 of file strip_time.cc.

References timeline_expand_boundbox(), and timeline_init_boundbox().

Referenced by blender::ed::vse::draw_timeline_seq_display(), seq_time_gap_info_get(), and blender::ed::vse::seq_view_collection_rect_timeline().

◆ timeline_expand_boundbox()

void blender::seq::timeline_expand_boundbox ( const Scene * scene,
const ListBase * seqbase,
rctf * rect )

Stretch the given rectangle to include the given strips boundaries

Parameters
seqbaseListBase in which strips are located
rectoutput parameter to be filled with strips' boundaries

Definition at line 354 of file strip_time.cc.

References LISTBASE_FOREACH, time_left_handle_frame_get(), time_right_handle_frame_get(), rctf::xmax, rctf::xmin, and rctf::ymax.

Referenced by blender::ed::vse::displayed_channel_range_get(), blender::ed::vse::sequencer_main_clamp_view(), blender::ed::vse::sequencer_view_all_exec(), and timeline_boundbox().

◆ timeline_init_boundbox()

void blender::seq::timeline_init_boundbox ( const Scene * scene,
rctf * r_rect )

Initialize given rectangle with the Scene's timeline boundaries.

Parameters
scenethe Scene instance whose timeline boundaries are extracted from
rectoutput parameter to be filled with timeline boundaries

Definition at line 346 of file strip_time.cc.

References Scene::r, rctf::xmax, rctf::xmin, rctf::ymax, and rctf::ymin.

Referenced by blender::ed::vse::sequencer_main_clamp_view(), blender::ed::vse::sequencer_view_all_exec(), and timeline_boundbox().

◆ tonemap_calc_chunk_luminance()

◆ tonemap_calc_input_luminance()

AreaLuminance blender::seq::tonemap_calc_input_luminance ( const StripScreenQuad & quad,
const ImBuf * ibuf )
static

◆ tonemap_rd_photoreceptor()

◆ tonemap_simple()

◆ tonemapmodifier_apply()

◆ tonemapmodifier_init_data()

◆ tool_settings_copy()

SequencerToolSettings * blender::seq::tool_settings_copy ( SequencerToolSettings * tool_settings)

Definition at line 720 of file sequencer.cc.

References MEM_dupallocN(), and tool_settings_copy().

Referenced by BKE_toolsettings_copy(), and tool_settings_copy().

◆ tool_settings_ensure()

◆ tool_settings_fit_method_get()

◆ tool_settings_fit_method_set()

void blender::seq::tool_settings_fit_method_set ( Scene * scene,
eSeqImageFitMethod fit_method )

◆ tool_settings_free()

void blender::seq::tool_settings_free ( SequencerToolSettings * tool_settings)

Definition at line 373 of file sequencer.cc.

References MEM_freeN().

Referenced by BKE_toolsettings_free().

◆ tool_settings_init()

◆ tool_settings_overlap_mode_get()

eSeqOverlapMode blender::seq::tool_settings_overlap_mode_get ( Scene * scene)

◆ tool_settings_pivot_point_get()

int blender::seq::tool_settings_pivot_point_get ( Scene * scene)

◆ tool_settings_snap_distance_get()

int blender::seq::tool_settings_snap_distance_get ( Scene * scene)

◆ tool_settings_snap_flag_get()

short blender::seq::tool_settings_snap_flag_get ( Scene * scene)

◆ tool_settings_snap_mode_get()

short blender::seq::tool_settings_snap_mode_get ( Scene * scene)

◆ transform_effect_get_handle()

◆ transform_handle_overlap() [1/2]

◆ transform_handle_overlap() [2/2]

◆ transform_image()

void blender::seq::transform_image ( int x,
int y,
int start_line,
int total_lines,
const ImBuf * ibuf,
ImBuf * out,
float scale_x,
float scale_y,
float translate_x,
float translate_y,
float rotate,
int interpolation )
static

◆ transform_is_locked()

◆ transform_offset_after_frame()

void blender::seq::transform_offset_after_frame ( Scene * scene,
ListBase * seqbase,
int delta,
int timeline_frame )

Move strips and markers (if not locked) that start after timeline_frame by delta frames

Parameters
sceneScene in which strips are located
seqbaseListBase in which strips are located
deltaoffset in frames to be applied
timeline_frameframe on timeline from where strips are moved

Definition at line 546 of file strip_transform.cc.

References LISTBASE_FOREACH, ToolSettings::lock_markers, Scene::markers, relations_invalidate_cache(), time_left_handle_frame_get(), Scene::toolsettings, and transform_translate_strip().

Referenced by edit_remove_gaps(), and blender::ed::vse::sequencer_gap_insert_exec().

◆ transform_seqbase_shuffle()

◆ transform_seqbase_shuffle_ex()

◆ transform_seqbase_shuffle_time() [1/2]

bool blender::seq::transform_seqbase_shuffle_time ( blender::Span< Strip * > strips_to_shuffle,
blender::Span< Strip * > time_dependent_strips,
ListBase * seqbasep,
Scene * evil_scene,
ListBase * markers,
const bool use_sync_markers )

◆ transform_seqbase_shuffle_time() [2/2]

bool blender::seq::transform_seqbase_shuffle_time ( blender::Span< Strip * > strips_to_shuffle,
ListBase * seqbasep,
Scene * evil_scene,
ListBase * markers,
const bool use_sync_markers )

◆ transform_single_image_check()

bool blender::seq::transform_single_image_check ( const Strip * strip)

Used so we can do a quick check for single image strip since they work a bit differently to normal image strips (during transform).

Definition at line 36 of file strip_transform.cc.

References Strip::flag, and SEQ_SINGLE_FRAME_CONTENT.

Referenced by give_frame_index(), blender::ed::vse::slip_data_init(), blender::ed::vse::strip_draw_context_get(), and time_left_handle_frame_set().

◆ transform_strip_can_be_translated()

◆ transform_test_overlap() [1/2]

bool blender::seq::transform_test_overlap ( const Scene * scene,
ListBase * seqbasep,
Strip * test )

Definition at line 55 of file strip_transform.cc.

References ListBase::first, Strip::next, and transform_test_overlap().

◆ transform_test_overlap() [2/2]

◆ transform_translate_strip()

◆ use_proxy()

bool blender::seq::use_proxy ( Editing * ed,
Strip * strip )
static

◆ whiteBalance_apply()

void blender::seq::whiteBalance_apply ( const StripScreenQuad & ,
StripModifierData * smd,
ImBuf * ibuf,
ImBuf * mask )
static

◆ whiteBalance_init_data()

void blender::seq::whiteBalance_init_data ( StripModifierData * smd)
static

◆ wipe_effect_get_handle()

◆ wrap_width_get()

int blender::seq::wrap_width_get ( const TextVars * data,
const int2int2 image_size )
static

Definition at line 843 of file vse_effect_text.cc.

References data, and wrap_width_get().

Referenced by apply_word_wrapping(), and wrap_width_get().

Variable Documentation

◆ CB_TABLE_SIZE

int blender::seq::CB_TABLE_SIZE = 1024
staticconstexpr

Use a larger lookup table than 256 possible byte values: due to alpha pre-multiplication, dark values with low alphas might need more precision.

Definition at line 246 of file sequencer/intern/modifier.cc.

Referenced by blender::seq::ColorBalanceApplyOp::apply(), make_cb_table_lgg(), and make_cb_table_sop().

◆ final_image_cache_mutex

◆ g_font_map

SeqFontMap blender::seq::g_font_map
static

◆ JFA_INVALID

uint16_t blender::seq::JFA_INVALID = 0xFFFF
constexpr

Definition at line 499 of file vse_effect_text.cc.

Referenced by jump_flooding_pass().

◆ lookup_lock

◆ MAX_CHANNELS

◆ MAX_THUMBNAILS

int blender::seq::MAX_THUMBNAILS = 5000
staticconstexpr

Definition at line 38 of file thumbnail_cache.cc.

Referenced by thumbnail_cache_maintain_capacity().

◆ modifiersTypes

StripModifierTypeInfo blender::seq::modifiersTypes[NUM_SEQUENCE_MODIFIER_TYPES]
static

Definition at line 1116 of file sequencer/intern/modifier.cc.

Referenced by modifier_type_info_get().

◆ presence_lock

◆ seq_render_mutex

blender::Mutex blender::seq::seq_render_mutex
static

Definition at line 91 of file render.cc.

Referenced by render_give_ibuf().

◆ source_image_cache_mutex

◆ thumb_cache_mutex

◆ THUMB_SIZE

int blender::seq::THUMB_SIZE = 256
staticconstexpr

◆ view3d_fn

DrawViewFn blender::seq::view3d_fn = nullptr

Definition at line 92 of file render.cc.

Referenced by blender::ed::vse::ED_spacetype_sequencer(), and seq_render_scene_strip().

◆ workersSoundModifiers

const SoundModifierWorkerInfo blender::seq::workersSoundModifiers[]
Initial value:
= {
@ seqModifierType_SoundEqualizer
void * sound_equalizermodifier_recreator(Strip *strip, StripModifierData *smd, void *sound)

Definition at line 42 of file sequencer/intern/sound.cc.

Referenced by sound_modifier_worker_info_get().