Blender V2.61 - r43446
Classes | Defines | Typedefs | Functions | Variables

sequencer.c File Reference

#include <stddef.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "MEM_guardedalloc.h"
#include "MEM_CacheLimiterC-Api.h"
#include "DNA_sequence_types.h"
#include "DNA_scene_types.h"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
#include "DNA_sound_types.h"
#include "BLI_math.h"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_path_util.h"
#include "BLI_string.h"
#include "BLI_threads.h"
#include "BLI_utildefines.h"
#include "BKE_animsys.h"
#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_main.h"
#include "BKE_sequencer.h"
#include "BKE_fcurve.h"
#include "BKE_scene.h"
#include "BKE_utildefines.h"
#include "RNA_access.h"
#include "RE_pipeline.h"
#include <pthread.h>
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
#include "BKE_context.h"
#include "BKE_sound.h"

Go to the source code of this file.

Classes

struct  SeqUniqueInfo
struct  PrefetchThread
struct  PrefetchQueueElem

Defines

#define SELECT   1
#define PROXY_MAXFILE   (2*FILE_MAXDIR+FILE_MAXFILE)

Typedefs

typedef struct SeqUniqueInfo SeqUniqueInfo
typedef struct PrefetchThread PrefetchThread
typedef struct PrefetchQueueElem PrefetchQueueElem

Functions

static ImBufseq_render_strip_stack (SeqRenderData context, ListBase *seqbasep, float cfra, int chanshown)
static ImBufseq_render_strip (SeqRenderData context, Sequence *seq, float cfra)
static void seq_free_animdata (Scene *scene, Sequence *seq)
void printf_strip (Sequence *seq)
int seqbase_recursive_apply (ListBase *seqbase, int(*apply_func)(Sequence *seq, void *), void *arg)
int seq_recursive_apply (Sequence *seq, int(*apply_func)(Sequence *, void *), void *arg)
void new_tstripdata (Sequence *seq)
static void free_proxy_seq (Sequence *seq)
void seq_free_strip (Strip *strip)
void seq_free_sequence (Scene *scene, Sequence *seq)
void seq_free_sequence_recurse (Scene *scene, Sequence *seq)
Editingseq_give_editing (Scene *scene, int alloc)
static void seq_free_clipboard_recursive (Sequence *seq_parent)
void seq_free_clipboard (void)
void seq_free_editing (Scene *scene)
SeqRenderData seq_new_render_data (struct Main *bmain, struct Scene *scene, int rectx, int recty, int preview_render_size)
int seq_cmp_render_data (const SeqRenderData *a, const SeqRenderData *b)
unsigned int seq_hash_render_data (const SeqRenderData *a)
static void seq_count (ListBase *seqbase, int *tot)
static void seq_build_array (ListBase *seqbase, Sequence ***array, int depth)
void seq_array (Editing *ed, Sequence ***seqarray, int *tot, int use_pointer)
void seq_begin (Editing *ed, SeqIterator *iter, int use_pointer)
void seq_next (SeqIterator *iter)
void seq_end (SeqIterator *iter)
static void do_seq_count_cb (ListBase *seqbase, int *totseq, int(*test_func)(Sequence *seq))
static void do_build_seqar_cb (ListBase *seqbase, Sequence ***seqar, int depth, int(*test_func)(Sequence *seq))
void build_seqar_cb (ListBase *seqbase, Sequence ***seqar, int *totseq, int(*test_func)(Sequence *seq))
void calc_sequence_disp (Scene *scene, Sequence *seq)
static void seq_update_sound_bounds_recursive (Scene *scene, Sequence *metaseq)
void calc_sequence (Scene *scene, Sequence *seq)
void reload_sequence_new_file (Scene *scene, Sequence *seq, int lock_range)
void sort_seq (Scene *scene)
static int clear_scene_in_allseqs_cb (Sequence *seq, void *arg_pt)
void clear_scene_in_allseqs (Main *bmain, Scene *scene)
static void seqbase_unique_name (ListBase *seqbasep, SeqUniqueInfo *sui)
static int seqbase_unique_name_recursive_cb (Sequence *seq, void *arg_pt)
void seqbase_unique_name_recursive (ListBase *seqbasep, struct Sequence *seq)
static const char * give_seqname_by_type (int type)
const char * give_seqname (Sequence *seq)
static void make_black_ibuf (ImBuf *ibuf)
static void multibuf (ImBuf *ibuf, float fmul)
static float give_stripelem_index (Sequence *seq, float cfra)
StripElemgive_stripelem (Sequence *seq, int cfra)
static int evaluate_seq_frame_gen (Sequence **seq_arr, ListBase *seqbase, int cfra)
int evaluate_seq_frame (Scene *scene, int cfra)
static int video_seq_is_rendered (Sequence *seq)
static int get_shown_sequences (ListBase *seqbasep, int cfra, int chanshown, Sequence **seq_arr_out)
static IMB_Proxy_Size seq_rendersize_to_proxysize (int size)
static void seq_open_anim_file (Sequence *seq)
static int seq_proxy_get_fname (SeqRenderData context, Sequence *seq, int cfra, char *name)
static struct ImBufseq_proxy_fetch (SeqRenderData context, Sequence *seq, int cfra)
static void seq_proxy_build_frame (SeqRenderData context, Sequence *seq, int cfra, int proxy_render_size)
void seq_proxy_rebuild (struct Main *bmain, Scene *scene, Sequence *seq, short *stop, short *do_update, float *progress)
static StripColorBalance calc_cb (StripColorBalance *cb_)
MINLINE float color_balance_fl (float in, const float lift, const float gain, const float gamma, const float mul)
static void make_cb_table_byte (float lift, float gain, float gamma, unsigned char *table, float mul)
static void make_cb_table_float (float lift, float gain, float gamma, float *table, float mul)
static void color_balance_byte_byte (Sequence *seq, ImBuf *ibuf, float mul)
static void color_balance_byte_float (Sequence *seq, ImBuf *ibuf, float mul)
static void color_balance_float_float (Sequence *seq, ImBuf *ibuf, float mul)
static void color_balance (Sequence *seq, ImBuf *ibuf, float mul)
int input_have_to_preprocess (SeqRenderData UNUSED(context), Sequence *seq, float UNUSED(cfra))
static ImBufinput_preprocess (SeqRenderData context, Sequence *seq, float UNUSED(cfra), ImBuf *ibuf)
static ImBufcopy_from_ibuf_still (SeqRenderData context, Sequence *seq, float nr)
static void copy_to_ibuf_still (SeqRenderData context, Sequence *seq, float nr, ImBuf *ibuf)
static ImBufseq_render_effect_strip_impl (SeqRenderData context, Sequence *seq, float cfra)
static ImBufseq_render_scene_strip_impl (SeqRenderData context, Sequence *seq, float nr)
static int seq_must_swap_input_in_blend_mode (Sequence *seq)
static int seq_get_early_out_for_blend_mode (Sequence *seq)
ImBufgive_ibuf_seq (SeqRenderData context, float cfra, int chanshown)
ImBufgive_ibuf_seqbase (SeqRenderData context, float cfra, int chanshown, ListBase *seqbasep)
ImBufgive_ibuf_seq_direct (SeqRenderData context, float cfra, Sequence *seq)
void give_ibuf_prefetch_request (SeqRenderData context, float cfra, int chanshown)
ImBufgive_ibuf_seq_threaded (SeqRenderData context, float cfra, int chanshown)
static void free_anim_seq (Sequence *seq)
void free_imbuf_seq (Scene *scene, ListBase *seqbase, int check_mem_usage, int keep_file_handles)
static int update_changed_seq_recurs (Scene *scene, Sequence *seq, Sequence *changed_seq, int len_change, int ibuf_change)
void update_changed_seq_and_deps (Scene *scene, Sequence *changed_seq, int len_change, int ibuf_change)
int seq_tx_get_start (Sequence *seq)
int seq_tx_get_end (Sequence *seq)
int seq_tx_get_final_left (Sequence *seq, int metaclip)
int seq_tx_get_final_right (Sequence *seq, int metaclip)
void seq_tx_set_final_left (Sequence *seq, int val)
void seq_tx_set_final_right (Sequence *seq, int val)
int seq_single_check (Sequence *seq)
int seqbase_isolated_sel_check (ListBase *seqbase)
void seq_tx_handle_xlimits (Sequence *seq, int leftflag, int rightflag)
void seq_single_fix (Sequence *seq)
int seq_tx_test (Sequence *seq)
static int seq_overlap (Sequence *seq1, Sequence *seq2)
int seq_test_overlap (ListBase *seqbasep, Sequence *test)
void seq_translate (Scene *evil_scene, Sequence *seq, int delta)
void seq_sound_init (Scene *scene, Sequence *seq)
Sequenceseq_foreground_frame_get (Scene *scene, int frame)
int shuffle_seq (ListBase *seqbasep, Sequence *test, Scene *evil_scene)
static int shuffle_seq_time_offset_test (ListBase *seqbasep, char dir)
static int shuffle_seq_time_offset (Scene *scene, ListBase *seqbasep, char dir)
int shuffle_seq_time (ListBase *seqbasep, Scene *evil_scene)
void seq_update_sound_bounds_all (Scene *scene)
void seq_update_sound_bounds (Scene *scene, Sequence *seq)
static void seq_update_muting_recursive (ListBase *seqbasep, Sequence *metaseq, int mute)
void seq_update_muting (Editing *ed)
static void seq_update_sound_recursive (Scene *scene, ListBase *seqbasep, bSound *sound)
void seq_update_sound (struct Scene *scene, struct bSound *sound)
ListBaseseq_seqbase (ListBase *seqbase, Sequence *seq)
Sequenceseq_metastrip (ListBase *seqbase, Sequence *meta, Sequence *seq)
int seq_swap (Sequence *seq_a, Sequence *seq_b, const char **error_str)
void seq_offset_animdata (Scene *scene, Sequence *seq, int ofs)
void seq_dupe_animdata (Scene *scene, const char *name_src, const char *name_dst)
Sequenceget_seq_by_name (ListBase *seqbase, const char *name, int recursive)
Sequenceseq_active_get (Scene *scene)
void seq_active_set (Scene *scene, Sequence *seq)
int seq_active_pair_get (Scene *scene, Sequence **seq_act, Sequence **seq_other)
void seq_load_apply (Scene *scene, Sequence *seq, SeqLoadInfo *seq_load)
Sequencealloc_sequence (ListBase *lb, int cfra, int machine)
Sequencesequencer_add_image_strip (bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
Sequencesequencer_add_sound_strip (bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
Sequencesequencer_add_movie_strip (bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load)
static Sequenceseq_dupli (struct Scene *scene, struct Scene *scene_to, Sequence *seq, int dupe_flag)
Sequenceseq_dupli_recursive (struct Scene *scene, struct Scene *scene_to, Sequence *seq, int dupe_flag)
void seqbase_dupli_recursive (Scene *scene, Scene *scene_to, ListBase *nseqbase, ListBase *seqbase, int dupe_flag)

Variables

ListBase seqbase_clipboard
int seqbase_clipboard_frame
SequencerDrawView sequencer_view3d_cb = NULL
static ListBase running_threads
static ListBase prefetch_wait
static ListBase prefetch_done
static pthread_mutex_t queue_lock = PTHREAD_MUTEX_INITIALIZER
static pthread_mutex_t wakeup_lock = PTHREAD_MUTEX_INITIALIZER
static pthread_cond_t wakeup_cond = PTHREAD_COND_INITIALIZER
static pthread_mutex_t frame_done_lock = PTHREAD_MUTEX_INITIALIZER
static pthread_cond_t frame_done_cond = PTHREAD_COND_INITIALIZER
static volatile int seq_thread_shutdown = TRUE
static volatile int seq_last_given_monoton_cfra = 0
static int monoton_cfra = 0

Detailed Description

Definition in file sequencer.c.


Define Documentation

#define PROXY_MAXFILE   (2*FILE_MAXDIR+FILE_MAXFILE)

Definition at line 1139 of file sequencer.c.

Referenced by seq_proxy_build_frame(), seq_proxy_fetch(), and seq_proxy_get_fname().

#define SELECT   1

Typedef Documentation

typedef struct SeqUniqueInfo SeqUniqueInfo

Function Documentation

Sequence* alloc_sequence ( ListBase lb,
int  cfra,
int  machine 
) [read]
void build_seqar_cb ( ListBase seqbase,
Sequence ***  seqar,
int *  totseq,
int(*)(Sequence *seq)  test_func 
)

Definition at line 506 of file sequencer.c.

References do_build_seqar_cb(), do_seq_count_cb(), MEM_mallocN(), and NULL.

static StripColorBalance calc_cb ( StripColorBalance cb_) [static]
void calc_sequence ( Scene scene,
Sequence seq 
)
void calc_sequence_disp ( Scene scene,
Sequence seq 
)
void clear_scene_in_allseqs ( Main bmain,
Scene scene 
)
static int clear_scene_in_allseqs_cb ( Sequence seq,
void *  arg_pt 
) [static]

Definition at line 815 of file sequencer.c.

References NULL, and Sequence::scene.

Referenced by clear_scene_in_allseqs().

static void color_balance ( Sequence seq,
ImBuf ibuf,
float  mul 
) [static]
static void color_balance_byte_byte ( Sequence seq,
ImBuf ibuf,
float  mul 
) [static]
static void color_balance_byte_float ( Sequence seq,
ImBuf ibuf,
float  mul 
) [static]
MINLINE float color_balance_fl ( float  in,
const float  lift,
const float  gain,
const float  gamma,
const float  mul 
)

Definition at line 1466 of file sequencer.c.

References mul(), powf, and ImBuf::x.

Referenced by color_balance_float_float(), make_cb_table_byte(), and make_cb_table_float().

static void color_balance_float_float ( Sequence seq,
ImBuf ibuf,
float  mul 
) [static]
static ImBuf* copy_from_ibuf_still ( SeqRenderData  context,
Sequence seq,
float  nr 
) [static]
static void copy_to_ibuf_still ( SeqRenderData  context,
Sequence seq,
float  nr,
ImBuf ibuf 
) [static]
static void do_build_seqar_cb ( ListBase seqbase,
Sequence ***  seqar,
int  depth,
int(*)(Sequence *seq)  test_func 
) [static]
static void do_seq_count_cb ( ListBase seqbase,
int *  totseq,
int(*)(Sequence *seq)  test_func 
) [static]
int evaluate_seq_frame ( Scene scene,
int  cfra 
)

Definition at line 1080 of file sequencer.c.

References evaluate_seq_frame_gen(), FALSE, MAXSEQ, NULL, seq_give_editing(), and Editing::seqbasep.

Referenced by no_gaps().

static int evaluate_seq_frame_gen ( Sequence **  seq_arr,
ListBase seqbase,
int  cfra 
) [static]
static void free_anim_seq ( Sequence seq) [static]

Definition at line 2742 of file sequencer.c.

References Sequence::anim, IMB_free_anim(), and NULL.

Referenced by free_imbuf_seq(), and update_changed_seq_recurs().

void free_imbuf_seq ( Scene scene,
ListBase seqbase,
int  check_mem_usage,
int  keep_file_handles 
)
static void free_proxy_seq ( Sequence seq) [static]

Definition at line 142 of file sequencer.c.

References StripProxy::anim, IMB_free_anim(), NULL, Strip::proxy, and Sequence::strip.

Referenced by reload_sequence_new_file().

Sequence* get_seq_by_name ( ListBase seqbase,
const char *  name,
int  recursive 
) [read]
static int get_shown_sequences ( ListBase seqbasep,
int  cfra,
int  chanshown,
Sequence **  seq_arr_out 
) [static]
void give_ibuf_prefetch_request ( SeqRenderData  context,
float  cfra,
int  chanshown 
)
ImBuf* give_ibuf_seq ( SeqRenderData  context,
float  cfra,
int  chanshown 
) [read]
ImBuf* give_ibuf_seq_direct ( SeqRenderData  context,
float  cfra,
Sequence seq 
) [read]

Definition at line 2398 of file sequencer.c.

References seq_render_strip().

Referenced by draw_image_seq().

ImBuf* give_ibuf_seq_threaded ( SeqRenderData  context,
float  cfra,
int  chanshown 
) [read]
ImBuf* give_ibuf_seqbase ( SeqRenderData  context,
float  cfra,
int  chanshown,
ListBase seqbasep 
) [read]

Definition at line 2392 of file sequencer.c.

References seq_render_strip_stack().

Referenced by do_adjustment_impl(), and do_multicam().

const char* give_seqname ( Sequence seq)
static const char* give_seqname_by_type ( int  type) [static]
StripElem* give_stripelem ( Sequence seq,
int  cfra 
) [read]
static float give_stripelem_index ( Sequence seq,
float  cfra 
) [static]
int input_have_to_preprocess ( SeqRenderData   UNUSEDcontext,
Sequence seq,
float   UNUSEDcfra 
)
static ImBuf* input_preprocess ( SeqRenderData  context,
Sequence seq,
float   UNUSEDcfra,
ImBuf ibuf 
) [static]
static void make_black_ibuf ( ImBuf ibuf) [static]

Definition at line 947 of file sequencer.c.

References NULL, ImBuf::rect, ImBuf::rect_float, ImBuf::x, and ImBuf::y.

Referenced by input_preprocess().

static void make_cb_table_byte ( float  lift,
float  gain,
float  gamma,
unsigned char *  table,
float  mul 
) [static]

Definition at line 1476 of file sequencer.c.

References CLAMP(), color_balance_fl(), and ImBuf::y.

Referenced by color_balance_byte_byte().

static void make_cb_table_float ( float  lift,
float  gain,
float  gamma,
float *  table,
float  mul 
) [static]

Definition at line 1488 of file sequencer.c.

References color_balance_fl(), and ImBuf::y.

Referenced by color_balance_byte_float().

static void multibuf ( ImBuf ibuf,
float  fmul 
) [static]

Definition at line 969 of file sequencer.c.

References if(), mul(), ImBuf::rect, ImBuf::rect_float, ImBuf::x, and ImBuf::y.

Referenced by input_preprocess().

void new_tstripdata ( Sequence seq)
void printf_strip ( Sequence seq)
void reload_sequence_new_file ( Scene scene,
Sequence seq,
int  lock_range 
)
Sequence* seq_active_get ( Scene scene) [read]
int seq_active_pair_get ( Scene scene,
Sequence **  seq_act,
Sequence **  seq_other 
)
void seq_active_set ( Scene scene,
Sequence seq 
)
void seq_array ( Editing ed,
Sequence ***  seqarray,
int *  tot,
int  use_pointer 
)

Definition at line 405 of file sequencer.c.

References MEM_mallocN(), NULL, seq_build_array(), seq_count(), Editing::seqbase, and Editing::seqbasep.

Referenced by seq_begin().

void seq_begin ( Editing ed,
SeqIterator iter,
int  use_pointer 
)
static void seq_build_array ( ListBase seqbase,
Sequence ***  array,
int  depth 
) [static]

Definition at line 390 of file sequencer.c.

References Sequence::depth, ListBase::first, Sequence::next, and Sequence::seqbase.

Referenced by seq_array().

int seq_cmp_render_data ( const SeqRenderData a,
const SeqRenderData b 
)
static void seq_count ( ListBase seqbase,
int *  tot 
) [static]

Definition at line 378 of file sequencer.c.

References ListBase::first, Sequence::next, and Sequence::seqbase.

Referenced by seq_array().

void seq_dupe_animdata ( Scene scene,
const char *  name_src,
const char *  name_dst 
)
static Sequence* seq_dupli ( struct Scene scene,
struct Scene scene_to,
Sequence seq,
int  dupe_flag 
) [static]
Sequence* seq_dupli_recursive ( struct Scene scene,
struct Scene scene_to,
Sequence seq,
int  dupe_flag 
) [read]
void seq_end ( SeqIterator iter)

Definition at line 450 of file sequencer.c.

References SeqIterator::array, MEM_freeN(), and SeqIterator::valid.

Referenced by select_grouped_effect_link().

Sequence* seq_foreground_frame_get ( Scene scene,
int  frame 
) [read]
static void seq_free_animdata ( Scene scene,
Sequence seq 
) [static]
void seq_free_clipboard ( void  )
static void seq_free_clipboard_recursive ( Sequence seq_parent) [static]

Definition at line 238 of file sequencer.c.

References ListBase::first, Sequence::next, NULL, seq_free_sequence(), and Sequence::seqbase.

Referenced by seq_free_clipboard().

void seq_free_editing ( Scene scene)
void seq_free_sequence ( Scene scene,
Sequence seq 
)
void seq_free_sequence_recurse ( Scene scene,
Sequence seq 
)
void seq_free_strip ( Strip strip)
static int seq_get_early_out_for_blend_mode ( Sequence seq) [static]
Editing* seq_give_editing ( Scene scene,
int  alloc 
) [read]

Definition at line 227 of file sequencer.c.

References Scene::ed, MEM_callocN(), NULL, Editing::seqbase, and Editing::seqbasep.

Referenced by animchan_sync_fcurve(), boundbox_seq(), change_plugin_seq(), createTransSeqData(), deselect_all_seq(), draw_timeline_seq(), ed_screen_context(), evaluate_seq_frame(), find_nearest_seq(), find_neighboring_sequence(), find_next_prev_edit(), find_next_prev_sequence(), flushTransSeq(), freeSeqData(), give_ibuf_seq(), insert_gap(), no_gaps(), outliner_build_tree(), select_more_less_seq__internal(), select_single_seq(), seq_active_get(), seq_active_pair_get(), seq_active_set(), seq_effect_find_selected(), seq_foreground_frame_get(), seq_remap_paths(), sequencer_add_duplicate_exec(), sequencer_add_effect_strip_exec(), sequencer_add_generic_strip_exec(), sequencer_add_image_strip_exec(), sequencer_add_scene_strip_exec(), sequencer_borderselect_exec(), sequencer_change_effect_input_exec(), sequencer_change_effect_type_exec(), sequencer_change_path_exec(), sequencer_copy_exec(), sequencer_cut_exec(), sequencer_de_select_all_exec(), sequencer_delete_exec(), sequencer_edit_poll(), sequencer_effect_poll(), sequencer_lock_exec(), sequencer_meta_make_exec(), sequencer_meta_separate_exec(), sequencer_meta_toggle_exec(), sequencer_mute_exec(), sequencer_offset_clear_exec(), sequencer_paste_exec(), sequencer_rebuild_proxy_exec(), sequencer_refresh_all_exec(), sequencer_reload_exec(), sequencer_select_active_side_exec(), sequencer_select_grouped_exec(), sequencer_select_handles_exec(), sequencer_select_inverse_exec(), sequencer_select_invoke(), sequencer_separate_images_exec(), sequencer_snap_exec(), sequencer_strip_has_path_poll(), sequencer_strip_poll(), sequencer_swap_exec(), sequencer_unlock_exec(), sequencer_unmute_exec(), sequencer_view_poll(), sequencer_view_selected_exec(), skip_fcurve_selected_data(), sort_seq(), touch_seq_files(), tree_element_active_sequence_dup(), update_changed_seq_and_deps(), and view_ghost_border_exec().

unsigned int seq_hash_render_data ( const SeqRenderData a)
void seq_load_apply ( Scene scene,
Sequence seq,
SeqLoadInfo seq_load 
)
Sequence* seq_metastrip ( ListBase seqbase,
Sequence meta,
Sequence seq 
) [read]

Definition at line 3315 of file sequencer.c.

References ListBase::first, Sequence::next, NULL, seq_metastrip(), and Sequence::seqbase.

Referenced by do_adjustment_impl(), and seq_metastrip().

static int seq_must_swap_input_in_blend_mode ( Sequence seq) [static]
SeqRenderData seq_new_render_data ( struct Main bmain,
struct Scene scene,
int  rectx,
int  recty,
int  preview_render_size 
)
void seq_next ( SeqIterator iter)
void seq_offset_animdata ( Scene scene,
Sequence seq,
int  ofs 
)
static void seq_open_anim_file ( Sequence seq) [static]
static int seq_overlap ( Sequence seq1,
Sequence seq2 
) [static]
static void seq_proxy_build_frame ( SeqRenderData  context,
Sequence seq,
int  cfra,
int  proxy_render_size 
) [static]
static struct ImBuf* seq_proxy_fetch ( SeqRenderData  context,
Sequence seq,
int  cfra 
) [static, read]
static int seq_proxy_get_fname ( SeqRenderData  context,
Sequence seq,
int  cfra,
char *  name 
) [static]
void seq_proxy_rebuild ( struct Main bmain,
Scene scene,
Sequence seq,
short *  stop,
short *  do_update,
float *  progress 
)
int seq_recursive_apply ( Sequence seq,
int(*)(Sequence *, void *)  apply_func,
void *  arg 
)

Definition at line 113 of file sequencer.c.

References ListBase::first, Sequence::seqbase, and seqbase_recursive_apply().

static ImBuf* seq_render_effect_strip_impl ( SeqRenderData  context,
Sequence seq,
float  cfra 
) [static]
static ImBuf* seq_render_scene_strip_impl ( SeqRenderData  context,
Sequence seq,
float  nr 
) [static]
static ImBuf * seq_render_strip ( SeqRenderData  context,
Sequence seq,
float  cfra 
) [static]

Definition at line 2061 of file sequencer.c.

References Sequence::anim, Sequence::anim_preseek, Sequence::anim_startofs, BKE_animsys_evaluate_all_animation(), BLI_join_dirfile(), BLI_path_abs(), SeqRenderData::bmain, copy_from_ibuf_still(), copy_to_ibuf_still(), Strip::dir, Sequence::effectdata, FALSE, FILE_MAX, ListBase::first, SpeedControlVars::frameMap, G, give_stripelem(), give_stripelem_index(), i, IB_PROFILE_LINEAR_RGB, IB_PROFILE_NONE, IB_rect, IMB_allocImBuf(), IMB_anim_absolute(), IMB_anim_set_preseek(), IMB_convert_profile(), IMB_dupImBuf(), IMB_freeImBuf(), imb_freerectImBuf(), IMB_loadiffname(), IMB_TC_RECORD_RUN, input_have_to_preprocess(), input_preprocess(), StripElem::name, NULL, StripElem::orig_height, StripElem::orig_width, SeqRenderData::preview_render_size, ImBuf::profile, Strip::proxy, ImBuf::rect, ImBuf::rect_float, SeqRenderData::rectx, SeqRenderData::recty, SeqRenderData::scene, Sequence::seq1, SEQ_EFFECT, SEQ_IMAGE, SEQ_META, SEQ_MOVIE, seq_open_anim_file(), seq_proxy_fetch(), seq_render_effect_strip_impl(), seq_render_scene_strip_impl(), seq_render_strip_stack(), seq_rendersize_to_proxysize(), SEQ_SCENE, SEQ_SPEED, seq_stripelem_cache_get(), seq_stripelem_cache_put(), SEQ_STRIPELEM_IBUF, Sequence::seqbase, sequence_effect_speed_rebuild_map(), Sequence::start, Sequence::strip, Strip::stripdata, StripProxy::tc, TRUE, Sequence::type, ImBuf::x, and ImBuf::y.

Referenced by give_ibuf_seq_direct(), seq_proxy_build_frame(), seq_render_effect_strip_impl(), and seq_render_strip_stack().

static ImBuf * seq_render_strip_stack ( SeqRenderData  context,
ListBase seqbasep,
float  cfra,
int  chanshown 
) [static]
static IMB_Proxy_Size seq_rendersize_to_proxysize ( int  size) [static]

Definition at line 1141 of file sequencer.c.

References IMB_PROXY_100, IMB_PROXY_25, IMB_PROXY_50, IMB_PROXY_75, and IMB_PROXY_NONE.

Referenced by seq_proxy_fetch(), and seq_render_strip().

ListBase* seq_seqbase ( ListBase seqbase,
Sequence seq 
) [read]
int seq_single_check ( Sequence seq)
void seq_single_fix ( Sequence seq)
void seq_sound_init ( Scene scene,
Sequence seq 
)
int seq_swap ( Sequence seq_a,
Sequence seq_b,
const char **  error_str 
)
int seq_test_overlap ( ListBase seqbasep,
Sequence test 
)
void seq_translate ( Scene evil_scene,
Sequence seq,
int  delta 
)
int seq_tx_get_end ( Sequence seq)

Definition at line 2864 of file sequencer.c.

References Sequence::len, and Sequence::start.

Referenced by seq_tx_handle_xlimits().

int seq_tx_get_final_left ( Sequence seq,
int  metaclip 
)
int seq_tx_get_final_right ( Sequence seq,
int  metaclip 
)
int seq_tx_get_start ( Sequence seq)

Definition at line 2860 of file sequencer.c.

References Sequence::start.

Referenced by seq_tx_handle_xlimits().

void seq_tx_handle_xlimits ( Sequence seq,
int  leftflag,
int  rightflag 
)
void seq_tx_set_final_left ( Sequence seq,
int  val 
)
void seq_tx_set_final_right ( Sequence seq,
int  val 
)
int seq_tx_test ( Sequence seq)
void seq_update_muting ( Editing ed)
static void seq_update_muting_recursive ( ListBase seqbasep,
Sequence metaseq,
int  mute 
) [static]
void seq_update_sound ( struct Scene scene,
struct bSound sound 
)

Definition at line 3290 of file sequencer.c.

References Scene::ed, seq_update_sound_recursive(), and Editing::seqbase.

void seq_update_sound_bounds ( Scene scene,
Sequence seq 
)

Definition at line 3229 of file sequencer.c.

References sound_move_scene_sound_defaults().

Referenced by calc_sequence_disp(), and seq_update_sound_bounds_all().

void seq_update_sound_bounds_all ( Scene scene)
static void seq_update_sound_bounds_recursive ( Scene scene,
Sequence metaseq 
) [static]
static void seq_update_sound_recursive ( Scene scene,
ListBase seqbasep,
bSound sound 
) [static]
void seqbase_dupli_recursive ( Scene scene,
Scene scene_to,
ListBase nseqbase,
ListBase seqbase,
int  dupe_flag 
)
int seqbase_isolated_sel_check ( ListBase seqbase)
int seqbase_recursive_apply ( ListBase seqbase,
int(*)(Sequence *seq, void *)  apply_func,
void *  arg 
)

Definition at line 103 of file sequencer.c.

References ListBase::first, Sequence::next, and seq_recursive_apply().

static void seqbase_unique_name ( ListBase seqbasep,
SeqUniqueInfo sui 
) [static]
void seqbase_unique_name_recursive ( ListBase seqbasep,
struct Sequence seq 
)
static int seqbase_unique_name_recursive_cb ( Sequence seq,
void *  arg_pt 
) [static]

Definition at line 860 of file sequencer.c.

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

Referenced by seqbase_unique_name_recursive().

Sequence* sequencer_add_image_strip ( bContext C,
ListBase seqbasep,
SeqLoadInfo seq_load 
) [read]
Sequence* sequencer_add_movie_strip ( bContext C,
ListBase seqbasep,
SeqLoadInfo seq_load 
) [read]
Sequence* sequencer_add_sound_strip ( bContext C,
ListBase seqbasep,
SeqLoadInfo seq_load 
) [read]

Definition at line 3667 of file sequencer.c.

References NULL.

Referenced by sequencer_add_movie_strip(), and sequencer_add_sound_strip_exec().

int shuffle_seq ( ListBase seqbasep,
Sequence test,
Scene evil_scene 
)
int shuffle_seq_time ( ListBase seqbasep,
Scene evil_scene 
)
static int shuffle_seq_time_offset ( Scene scene,
ListBase seqbasep,
char  dir 
) [static]
static int shuffle_seq_time_offset_test ( ListBase seqbasep,
char  dir 
) [static]
void sort_seq ( Scene scene)
void update_changed_seq_and_deps ( Scene scene,
Sequence changed_seq,
int  len_change,
int  ibuf_change 
)
static int update_changed_seq_recurs ( Scene scene,
Sequence seq,
Sequence changed_seq,
int  len_change,
int  ibuf_change 
) [static]
static int video_seq_is_rendered ( Sequence seq) [static]

Definition at line 1089 of file sequencer.c.

References Sequence::flag, SEQ_MUTE, SEQ_SOUND, and Sequence::type.

Referenced by get_shown_sequences().


Variable Documentation

pthread_cond_t frame_done_cond = PTHREAD_COND_INITIALIZER [static]

Definition at line 2429 of file sequencer.c.

pthread_mutex_t frame_done_lock = PTHREAD_MUTEX_INITIALIZER [static]

Definition at line 2428 of file sequencer.c.

int monoton_cfra = 0 [static]

Definition at line 2433 of file sequencer.c.

Definition at line 2419 of file sequencer.c.

Definition at line 2418 of file sequencer.c.

pthread_mutex_t queue_lock = PTHREAD_MUTEX_INITIALIZER [static]

Definition at line 2421 of file sequencer.c.

Definition at line 2417 of file sequencer.c.

volatile int seq_last_given_monoton_cfra = 0 [static]

Definition at line 2432 of file sequencer.c.

volatile int seq_thread_shutdown = TRUE [static]

Definition at line 2431 of file sequencer.c.

Definition at line 91 of file sequencer.c.

Referenced by sequencer_copy_exec(), and sequencer_paste_exec().

Definition at line 92 of file sequencer.c.

Referenced by sequencer_copy_exec(), and sequencer_paste_exec().

Definition at line 93 of file sequencer.c.

Referenced by ED_spacetype_sequencer(), and seq_render_scene_strip_impl().

pthread_cond_t wakeup_cond = PTHREAD_COND_INITIALIZER [static]

Definition at line 2423 of file sequencer.c.

pthread_mutex_t wakeup_lock = PTHREAD_MUTEX_INITIALIZER [static]

Definition at line 2422 of file sequencer.c.