LiVES 3.2.0
events.h
Go to the documentation of this file.
1// events.h
2// LiVES
3// (c) G. Finch 2005 - 2016 <salsaman@gmail.com>
4// released under the GNU GPL 3 or later
5// see file ../COPYING or www.gnu.org for licensing details
6
7// functions/structs for event_lists and events
8
9#ifndef HAS_LIVES_EVENTS_H
10#define HAS_LIVES_EVENTS_H
11
13#define WEED_LEAF_HINT "hint"
14
16
17// event_list
18#define WEED_LEAF_WEED_EVENT_API_VERSION "weed_event_api_version"
19#define WEED_LEAF_AUDIO_SIGNED "audio_signed"
20#define WEED_LEAF_AUDIO_ENDIAN "audio_endian"
21#define WEED_LEAF_AUDIO_SAMPLE_SIZE "audio_sample_size"
22#define WEED_LEAF_AUDIO_VOLUME_TRACKS "audio_volume_tracks"
23#define WEED_LEAF_AUDIO_VOLUME_VALUES "audio_volume_values"
24#define WEED_LEAF_TRACK_LABEL_TRACKS "track_label_tracks"
25#define WEED_LEAF_TRACK_LABEL_VALUES "track_label_values"
26
27#define WEED_LEAF_AUTHOR "author"
28#define WEED_LEAF_TITLE "title"
29#define WEED_LEAF_COMMENTS "comments"
30
31#define WEED_LEAF_LIVES_CREATED_VERSION "created_version"
32#define WEED_LEAF_LIVES_EDITED_VERSION "edited_version"
33
34#define WEED_LEAF_CREATED_DATE "host_created_date"
35#define WEED_LEAF_EDITED_DATE "host_edited_date"
36
37// frame event
38#define WEED_LEAF_FRAMES "frames"
39#define WEED_LEAF_CLIPS "clips"
40#define WEED_LEAF_AUDIO_CLIPS "audio_clips"
41#define WEED_LEAF_AUDIO_SEEKS "audio_seeks"
42
43// init_event
44#define WEED_LEAF_FILTER "filter"
45#define WEED_LEAF_IN_COUNT "in_count"
46#define WEED_LEAF_OUT_COUNT "out_count"
47#define WEED_LEAF_IN_TRACKS "in_tracks"
48#define WEED_LEAF_OUT_TRACKS "out_tracks"
49#define WEED_LEAF_EVENT_ID "event_id"
50
51// deinit
52#define WEED_LEAF_INIT_EVENT "init_event"
53
54// filter map
55#define WEED_LEAF_INIT_EVENTS "init_events"
56
57// param change
58#define WEED_LEAF_INDEX "index"
59
60// internal
61// event_list
62#define WEED_LEAF_NEXT "next"
63#define WEED_LEAF_PREVIOUS "previous"
64#define WEED_LEAF_FIRST "first"
65#define WEED_LEAF_LAST "last"
66#define WEED_LEAF_NEEDS_SET "needs_set" // oops, should have been host_needs_set
67#define WEED_LEAF_GAMMA_ENABLED "host_gamma_enabled"
68#define WEED_LEAF_TC_ADJUSTMENT "tc_adj_val"
69
70// param change
71#define WEED_LEAF_NEXT_CHANGE "next_change"
72#define WEED_LEAF_PREV_CHANGE "prev_change"
73#define WEED_LEAF_IS_DEF_VALUE "host_is_def_value"
74
75// init_event
76#define WEED_LEAF_DEINIT_EVENT "deinit_event"
77
78// marker
79#define WEED_LEAF_LIVES_TYPE "lives_type"
80#define WEED_LEAF_TRACKS "tracks"
81#define WEED_LEAF_TCDELTA "tc_delta"
82
83// misc
84#define WEED_LEAF_PTRSIZE "ptrsize"
85
86#define WEED_LEAF_HOST_AUDIO_TRANSITION "host_audio_transition"
87
88#define WEED_LEAF_HOST_TAG_COPY "host_tag_copy"
89
90#define WEED_LEAF_OVERLAY_TEXT "overlay_text"
91
92#define LIVES_TRACK_ANY -1000000
93
94#define AUD_DIFF_MIN 0.05
95#define AUD_DIFF_REVADJ 8.
96
97typedef weed_plant_t weed_event_t;
98
100typedef enum {
113
114weed_event_t *append_frame_event(weed_event_t *event_list, ticks_t tc, int numframes,
115 int *clips, int64_t *frames) WARN_UNUSED;
117 int filter_idx, int num_in_tracks, int key, weed_plant_t *inst) WARN_UNUSED;
119 void *init_event, void **pchain) WARN_UNUSED;
122 weed_plant_t *param, void *init_event, void **pchain) WARN_UNUSED;
124
127 int *clips, int64_t *frames, weed_event_t **shortcut) WARN_UNUSED;
128void insert_audio_event_at(weed_event_t *event, int track, int clipnum, double time, double vel);
129void remove_audio_for_track(weed_event_t *event, int track);
131 weed_event_t **shortcut) WARN_UNUSED;
132
133void remove_frame_from_event(weed_event_t *event_list, weed_event_t *event, int track);
134void remove_end_blank_frames(weed_event_t *event_list, boolean remove_filter_inits);
135void remove_filter_from_event_list(weed_event_t *event_list, weed_event_t *init_event);
136
137weed_event_t *process_events(weed_event_t *next_event, boolean process_audio, ticks_t curr_tc);
139void event_list_add_track(weed_event_t *event_list, int layer);
140void add_track_to_avol_init(weed_plant_t *filter, weed_event_t *event, int nbtracks, boolean behind);
141void event_list_free(weed_event_t *event_list);
142
143void event_list_add_end_events(weed_event_t *event_list, boolean is_final);
144
145
147weed_event_t *lives_event_list_new(weed_event_t *elist, const char *cdate);
149weed_timecode_t weed_event_set_timecode(weed_event_t *, weed_timecode_t tc);
150weed_timecode_t weed_event_get_timecode(weed_event_t *);
151
152int weed_frame_event_get_tracks(weed_event_t *event, int **clips, int64_t **frames); // returns ntracks
153int weed_frame_event_get_audio_tracks(weed_event_t *event, int **aclips, double **aseeks); // returns natracks
154
156void event_list_replace_events(weed_event_t *event_list, weed_event_t *new_event_list);
157
159weed_event_t *event_copy_and_insert(weed_event_t *in_event, weed_timecode_t tc, weed_event_t *event_list,
160 weed_event_t **ret_event);
161void reset_ttable(void);
162
164int count_events(weed_event_t *event_list, boolean all_events, ticks_t start_tc, ticks_t end_tc);
165
166frames_t count_resampled_events(weed_event_t *event_list, double fps);
167
168boolean backup_recording(char **esave_file, char **asave_file);
169
170boolean event_list_to_block(weed_event_t *event_list, int num_events);
171double event_list_get_end_secs(weed_event_t *event_list);
172double event_list_get_start_secs(weed_event_t *event_list);
175
178
181
184
185weed_event_t *get_frame_event_at(weed_event_t *event_list, ticks_t tc, weed_event_t *shortcut, boolean exact);
187
188weed_event_t *get_audio_block_start(weed_event_t *event_list, int track, ticks_t tc, boolean seek_back);
189
191boolean init_event_is_relevant(weed_event_t *init_event, int ctrack);
192
193// definitions in events.c
198
200
203boolean is_blank_frame(weed_event_t *, boolean count_audio);
204boolean has_audio_frame(weed_event_t *event_list);
205int get_frame_event_clip(weed_event_t *, int layer);
207boolean frame_event_has_frame_for_track(weed_event_t *event, int track);
208double *get_track_visibility_at_tc(weed_event_t *event_list, int ntracks, int n_back_tracks,
209 ticks_t tc, weed_event_t **shortcut, boolean bleedthru);
210void get_active_track_list(int *clip_index, int num_tracks, weed_plant_t *filter_map);
211
214
215typedef struct {
216 int width;
218 double fps;
219 boolean ratio_fps;
220 LiVESWidget *dialog;
221 LiVESWidget *okbutton;
222 LiVESWidget *usecur_button;
223 LiVESWidget *clipname_entry;
224 LiVESWidget *encoder_combo;
225 LiVESWidget *ofmt_combo;
226 LiVESWidget *acodec_combo;
227 LiVESWidget *acodec_entry;
228 LiVESWidget *spinbutton_width;
229 LiVESWidget *spinbutton_height;
230 LiVESWidget *spinbutton_fps;
233 LiVESWidget *always_checkbutton;
234 LiVESWidget *always_hbox;
235 LiVESWidget *debug;
236 LiVESWidget *norm_after;
237 LiVESWidget *afade_in;
238 LiVESWidget *afade_out;
239 LiVESWidget *vfade_in;
240 LiVESWidget *vfade_out;
241 LiVESWidget *vfade_col;
244 boolean enc_changed;
247
248 boolean is_encoding;
249
250 int arate;
255
257
260
261LiVESWidget *events_rec_dialog(void);
262boolean deal_with_render_choice(boolean add_deinit);
263
264#define RENDER_CHOICE_NONE 0
265#define RENDER_CHOICE_DISCARD 1
266#define RENDER_CHOICE_PREVIEW 2
267#define RENDER_CHOICE_SAME_CLIP 3
268#define RENDER_CHOICE_NEW_CLIP 4
269#define RENDER_CHOICE_MULTITRACK 5
270#define RENDER_CHOICE_EVENT_LIST 6
271#define RENDER_CHOICE_TRANSCODE 7
272
273LiVESWidget *create_event_list_dialog(weed_plant_t *event_list, ticks_t start_tc, ticks_t end_tc);
275
276LiVESWidget *add_video_options(LiVESWidget **spwidth, int defwidth, LiVESWidget **spheight, int defheight,
277 LiVESWidget **spfps, double deffps, LiVESWidget **spframes, int defframes,
278 boolean add_aspect, LiVESWidget *extra);
279
280LiVESWidget *add_audio_options(LiVESWidget **cbbackaudio, LiVESWidget **cbpertrack);
281
284
285boolean render_to_clip(boolean new_clip, boolean transcode);
286boolean start_render_effect_events(weed_plant_t *event_list, boolean render_vid, boolean render_aud);
287
288lives_render_error_t render_events(boolean reset, boolean rend_video, boolean rend_audio);
290
291// effect insertion/updating
292void insert_filter_init_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event);
293void **filter_init_add_pchanges(weed_plant_t *event_list, weed_plant_t *filter, weed_plant_t *init_event, int ntracks,
294 int leave);
295void insert_filter_deinit_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event);
296boolean insert_filter_map_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event,
297 boolean before_frames);
298weed_plant_t *get_filter_map_before(weed_plant_t *event, int ctrack, weed_plant_t *stop_event);
299weed_plant_t *get_filter_map_after(weed_plant_t *event, int ctrack);
300void **get_init_events_before(weed_plant_t *event, weed_plant_t *init_event, boolean add);
301void update_filter_maps(weed_plant_t *event, weed_plant_t *end_event, weed_plant_t *init_event);
302void insert_param_change_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event);
303weed_plant_t *insert_marker_event_at(weed_plant_t *event_list, weed_plant_t *at_event, int marker_type, livespointer data);
304
305void add_init_event_to_filter_map(weed_plant_t *fmap, weed_plant_t *event, void **hints);
306boolean init_event_in_list(void **init_events, int num_inits, weed_plant_t *event);
307boolean filter_init_has_owner(weed_plant_t *init_event, int track);
308boolean init_event_is_process_last(weed_plant_t *event);
309
310// effect deletion/moving
311boolean move_event_right(weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps);
312boolean move_event_left(weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps);
313
314void move_filter_init_event(weed_plant_t *event_list, ticks_t new_tc, weed_plant_t *init_event, double fps);
315void move_filter_deinit_event(weed_plant_t *event_list, ticks_t new_tc, weed_plant_t *deinit_event,
316 double fps, boolean rescale_pchanges);
317
318// event deletion
319void unlink_event(weed_plant_t *event_list, weed_plant_t *event);
320void delete_event(weed_plant_t *event_list, weed_plant_t *event);
321
322// event replacement
323void replace_event(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event);
324
325// event insertion
326boolean insert_event_before(weed_plant_t *at_event, weed_plant_t *event);
327boolean insert_event_after(weed_plant_t *at_event, weed_plant_t *event);
328
329// param changes
330void ** *get_event_pchains(void);
331ticks_t get_next_paramchange(void **pchange_next, ticks_t end_tc);
332ticks_t get_prev_paramchange(void **pchange_next, ticks_t start_tc);
333boolean is_init_pchange(weed_plant_t *init_event, weed_plant_t *pchange_event);
334void free_pchains(int key);
335
336// audio
338int get_audio_frame_clip(weed_plant_t *event, int track);
339
341double get_audio_frame_vel(weed_plant_t *event, int track);
342
344double get_audio_frame_seek(weed_plant_t *event, int track);
345
346// playback
347
348void backup_host_tags(weed_plant_t *event_list, ticks_t curr_tc);
349void restore_host_tags(weed_plant_t *event_list, ticks_t curr_tc);
350
351boolean has_frame_event_at(weed_plant_t *event_list, ticks_t tc, weed_plant_t **shortcut);
352
353#define EVENT_MARKER_BLOCK_START 1
354#define EVENT_MARKER_BLOCK_UNORDERED 512
355#define EVENT_MARKER_RECORD_START 1024
356#define EVENT_MARKER_RECORD_END 1025
357
358#define WEED_PLANT_IS_EVENT(plant) ((plant != NULL && weed_get_plant_type(plant) == WEED_PLANT_EVENT) ? 1 : 0)
359#define WEED_PLANT_IS_EVENT_LIST(plant) ((plant != NULL && weed_get_plant_type(plant) == WEED_PLANT_EVENT_LIST) ? 1 : 0)
360
361#define WEED_EVENT_IS_FRAME(event) (get_event_type(event) == WEED_EVENT_TYPE_FRAME ? 1 : 0)
362#define WEED_EVENT_IS_AUDIO_FRAME(event) ((get_event_type(event) == WEED_EVENT_TYPE_FRAME \
363 && weed_plant_has_leaf(event, WEED_LEAF_AUDIO_CLIPS)) ? 1 : 0)
364#define WEED_EVENT_IS_FILTER_INIT(event) (get_event_type(event) == WEED_EVENT_TYPE_FILTER_INIT ? 1 : 0)
365#define WEED_EVENT_IS_FILTER_DEINIT(event) (get_event_type(event) == WEED_EVENT_TYPE_FILTER_DEINIT ? 1 : 0)
366#define WEED_EVENT_IS_FILTER_MAP(event) (get_event_type(event) == WEED_EVENT_TYPE_FILTER_MAP ? 1 : 0)
367#define WEED_EVENT_IS_PARAM_CHANGE(event) (get_event_type(event) == WEED_EVENT_TYPE_PARAM_CHANGE ? 1 : 0)
368#define WEED_EVENT_IS_MARKER(event) (get_event_type(event) == WEED_EVENT_TYPE_MARKER ? 1 : 0)
369
370#endif // HAS_LIVES_EVENTS_H
LiVESWidget * add_audio_options(LiVESWidget **cbbackaudio, LiVESWidget **cbpertrack)
Definition: events.c:6184
weed_event_t * get_prev_audio_frame_event(weed_event_t *event)
Definition: events.c:392
boolean init_event_in_list(void **init_events, int num_inits, weed_plant_t *event)
Definition: events.c:1550
void move_filter_deinit_event(weed_plant_t *event_list, ticks_t new_tc, weed_plant_t *deinit_event, double fps, boolean rescale_pchanges)
weed_event_t * append_filter_map_event(weed_event_t *event_list, ticks_t tc, void **init_events) WARN_UNUSED
int get_audio_frame_clip(weed_plant_t *event, int track)
returns clip number for track (track==-1 is backing audio)
Definition: events.c:147
double get_audio_frame_seek(weed_plant_t *event, int track)
returns velocity for track (track==-1 is backing audio)
Definition: events.c:187
weed_event_t * get_frame_event_at(weed_event_t *event_list, ticks_t tc, weed_event_t *shortcut, boolean exact)
boolean has_frame_event_at(weed_plant_t *event_list, ticks_t tc, weed_plant_t **shortcut)
lives_render_error_t render_events(boolean reset, boolean rend_video, boolean rend_audio)
render mainw->event_list to a clip
Definition: events.c:3609
int weed_event_get_type(weed_event_t *event)
Definition: events.c:31
void insert_filter_init_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:1021
weed_event_t * append_frame_event(weed_event_t *event_list, ticks_t tc, int numframes, int *clips, int64_t *frames) WARN_UNUSED
void event_list_add_end_events(weed_event_t *event_list, boolean is_final)
Definition: events.c:5102
void add_init_event_to_filter_map(weed_plant_t *fmap, weed_plant_t *event, void **hints)
Definition: events.c:1731
weed_event_t * insert_blank_frame_event_at(weed_event_t *event_list, ticks_t tc, weed_event_t **shortcut) WARN_UNUSED
weed_timecode_t weed_event_get_timecode(weed_event_t *)
Definition: events.c:89
void add_track_to_avol_init(weed_plant_t *filter, weed_event_t *event, int nbtracks, boolean behind)
Definition: events.c:2435
void get_active_track_list(int *clip_index, int num_tracks, weed_plant_t *filter_map)
Definition: events.c:3008
boolean filter_map_after_frame(weed_event_t *fmap)
Definition: events.c:803
weed_event_t * get_frame_event_at_or_before(weed_event_t *event_list, ticks_t tc, weed_event_t *shortcut)
boolean init_event_is_process_last(weed_plant_t *event)
Definition: events.c:1718
weed_event_t * get_prev_event(weed_event_t *event)
Definition: events.c:109
void event_list_free(weed_event_t *event_list)
Definition: events.c:2313
weed_event_t * get_first_event(weed_event_t *event_list)
Definition: events.c:119
void move_filter_init_event(weed_plant_t *event_list, ticks_t new_tc, weed_plant_t *init_event, double fps)
weed_event_t * append_filter_deinit_event(weed_event_t *event_list, ticks_t tc, void *init_event, void **pchain) WARN_UNUSED
boolean event_list_to_block(weed_event_t *event_list, int num_events)
Definition: events.c:2329
void ** filter_init_add_pchanges(weed_plant_t *event_list, weed_plant_t *filter, weed_plant_t *init_event, int ntracks, int leave)
Definition: events.c:2648
int weed_frame_event_get_audio_tracks(weed_event_t *event, int **aclips, double **aseeks)
Definition: events.c:59
void insert_filter_deinit_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:1043
boolean init_event_is_relevant(weed_event_t *init_event, int ctrack)
Definition: events.c:859
int get_event_type(weed_event_t *)
Definition: events.c:103
weed_event_t * get_next_audio_frame_event(weed_event_t *event)
Definition: events.c:380
void delete_event(weed_plant_t *event_list, weed_plant_t *event)
Definition: events.c:311
ticks_t event_list_get_start_tc(weed_event_t *event_list)
Definition: events.c:4612
int get_frame_event_clip(weed_event_t *, int layer)
Definition: events.c:209
void unlink_event(weed_plant_t *event_list, weed_plant_t *event)
Definition: events.c:297
void ** get_init_events_before(weed_plant_t *event, weed_plant_t *init_event, boolean add)
Definition: events.c:936
weed_event_t * insert_frame_event_at(weed_event_t *event_list, ticks_t tc, int numframes, int *clips, int64_t *frames, weed_event_t **shortcut) WARN_UNUSED
will either insert or replace
void insert_param_change_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:1116
boolean move_event_right(weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps)
Definition: events.c:2030
boolean render_to_clip(boolean new_clip, boolean transcode)
rendering
Definition: events.c:4635
weed_event_t * get_prev_frame_event(weed_event_t *event)
Definition: events.c:368
void event_list_replace_events(weed_event_t *event_list, weed_event_t *new_event_list)
replace events in event_list with events in new_event_list
Definition: events.c:2320
boolean frame_event_has_frame_for_track(weed_event_t *event, int track)
Definition: events.c:761
void remove_end_blank_frames(weed_event_t *event_list, boolean remove_filter_inits)
Definition: events.c:546
boolean filter_init_has_owner(weed_plant_t *init_event, int track)
Definition: events.c:1570
weed_event_t * process_events(weed_event_t *next_event, boolean process_audio, ticks_t curr_tc)
RT playback.
void restore_host_tags(weed_plant_t *event_list, ticks_t curr_tc)
render_details * create_render_details(int type)
Definition: events.c:6252
boolean has_audio_frame(weed_event_t *event_list)
Definition: events.c:4623
weed_event_t * get_first_frame_event(weed_event_t *event_list)
Definition: events.c:404
void *** get_event_pchains(void)
Definition: events.c:94
weed_event_t * append_filter_init_event(weed_event_t *event_list, ticks_t tc, int filter_idx, int num_in_tracks, int key, weed_plant_t *inst) WARN_UNUSED
LiVESWidget * events_rec_dialog(void)
Definition: events.c:2186
weed_event_t * append_param_change_event(weed_event_t *event_list, ticks_t tc, int pnum, weed_plant_t *param, void *init_event, void **pchain) WARN_UNUSED
weed_event_t * get_next_frame_event(weed_event_t *event)
Definition: events.c:356
boolean deal_with_render_choice(boolean add_deinit)
Definition: events.c:5159
void backup_host_tags(weed_plant_t *event_list, ticks_t curr_tc)
ticks_t get_prev_paramchange(void **pchange_next, ticks_t start_tc)
void remove_audio_for_track(weed_event_t *event, int track)
Definition: events.c:1349
lives_render_error_t render_events_cb(boolean dummy)
Definition: events.c:4447
boolean start_render_effect_events(weed_plant_t *event_list, boolean render_vid, boolean render_aud)
Definition: events.c:4453
weed_event_t * get_next_event(weed_event_t *event)
Definition: events.c:114
weed_event_t * get_last_frame_event(weed_event_t *event_list)
Definition: events.c:419
int count_events(weed_event_t *event_list, boolean all_events, ticks_t start_tc, ticks_t end_tc)
if all_events is FALSE we only count FRAME events
void remove_filter_from_event_list(weed_event_t *event_list, weed_event_t *init_event)
Definition: events.c:1480
void reset_ttable(void)
Definition: events.c:486
boolean is_init_pchange(weed_plant_t *init_event, weed_plant_t *pchange_event)
Definition: events.c:585
void remove_frame_from_event(weed_event_t *event_list, weed_event_t *event, int track)
Definition: events.c:489
boolean backup_recording(char **esave_file, char **asave_file)
Definition: events.c:5028
void event_list_close_start_gap(weed_event_t *event_list)
LiVESWidget * add_video_options(LiVESWidget **spwidth, int defwidth, LiVESWidget **spheight, int defheight, LiVESWidget **spfps, double deffps, LiVESWidget **spframes, int defframes, boolean add_aspect, LiVESWidget *extra)
Definition: events.c:6072
boolean insert_filter_map_event_at(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event, boolean before_frames)
Definition: events.c:1066
double get_audio_frame_vel(weed_plant_t *event, int track)
returns velocity for track (track==-1 is backing audio)
Definition: events.c:165
boolean is_blank_frame(weed_event_t *, boolean count_audio)
Definition: events.c:523
weed_plant_t * insert_marker_event_at(weed_plant_t *event_list, weed_plant_t *at_event, int marker_type, livespointer data)
Definition: events.c:1418
frames_t count_resampled_events(weed_event_t *event_list, double fps)
Definition: events.c:4560
weed_plant_t * get_filter_map_before(weed_plant_t *event, int ctrack, weed_plant_t *stop_event)
Definition: events.c:895
render_details * rdet
Definition: events.h:256
weed_plant_t * get_filter_map_after(weed_plant_t *event, int ctrack)
Definition: events.c:821
double event_list_get_end_secs(weed_event_t *event_list)
Definition: events.c:4607
ticks_t get_event_timecode(weed_event_t *)
Definition: events.c:98
int weed_frame_event_get_tracks(weed_event_t *event, int **clips, int64_t **frames)
Definition: events.c:36
void insert_audio_event_at(weed_event_t *event, int track, int clipnum, double time, double vel)
Definition: events.c:1243
weed_event_t * append_marker_event(weed_event_t *event_list, ticks_t tc, int marker_type) WARN_UNUSED
LiVESWidget * create_event_list_dialog(weed_plant_t *event_list, ticks_t start_tc, ticks_t end_tc)
double * get_track_visibility_at_tc(weed_event_t *event_list, int ntracks, int n_back_tracks, ticks_t tc, weed_event_t **shortcut, boolean bleedthru)
void free_pchains(int key)
weed_plant_t weed_event_t
Definition: events.h:97
ticks_t get_next_paramchange(void **pchange_next, ticks_t end_tc)
double event_list_get_start_secs(weed_event_t *event_list)
Definition: events.c:4618
boolean insert_event_before(weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:321
weed_event_t * get_audio_block_start(weed_event_t *event_list, int track, ticks_t tc, boolean seek_back)
void update_filter_maps(weed_plant_t *event, weed_plant_t *end_event, weed_plant_t *init_event)
Definition: events.c:1009
void replace_event(weed_plant_t *event_list, weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:347
weed_timecode_t weed_event_set_timecode(weed_event_t *, weed_timecode_t tc)
Definition: events.c:83
boolean insert_event_after(weed_plant_t *at_event, weed_plant_t *event)
Definition: events.c:334
ticks_t event_list_get_end_tc(weed_event_t *event_list)
Definition: events.c:4601
weed_event_t * lives_event_list_new(weed_event_t *elist, const char *cdate)
lib-ish stuff
Definition: events.c:240
void event_list_add_track(weed_event_t *event_list, int layer)
Definition: events.c:2497
frames_t get_frame_event_frame(weed_event_t *, int layer)
Definition: events.c:224
lives_render_error_t
various return conditions from rendering (multitrack or after recording)
Definition: events.h:100
@ LIVES_RENDER_EFFECTS_PAUSED
Definition: events.h:104
@ LIVES_RENDER_PROCESSING
Definition: events.h:103
@ LIVES_RENDER_ERROR_WRITE_FRAME
Definition: events.h:111
@ LIVES_RENDER_ERROR_NONE
Definition: events.h:101
@ LIVES_RENDER_COMPLETE
Definition: events.h:105
@ LIVES_RENDER_WARNING_READ_FRAME
Definition: events.h:107
@ LIVES_RENDER_ERROR
Definition: events.h:108
@ LIVES_RENDER_ERROR_READ_AUDIO
Definition: events.h:109
@ LIVES_RENDER_WARNING
Definition: events.h:106
@ LIVES_RENDER_READY
Definition: events.h:102
@ LIVES_RENDER_ERROR_WRITE_AUDIO
Definition: events.h:110
weed_event_t * get_last_event(weed_event_t *event_list)
Definition: events.c:124
boolean move_event_left(weed_plant_t *event_list, weed_plant_t *event, boolean can_stay, double fps)
Definition: events.c:2103
weed_event_t * event_copy_and_insert(weed_event_t *in_event, weed_timecode_t tc, weed_event_t *event_list, weed_event_t **ret_event)
called during quantisation
Definition: events.c:622
int frames_t
Definition: main.h:99
#define WARN_UNUSED
Definition: main.h:77
#define ulong
Definition: main.h:178
int64_t ticks_t
Definition: main.h:97
LiVESWidget * spinbutton_height
Definition: events.h:229
LiVESWidget * acodec_combo
Definition: events.h:226
LiVESWidget * afade_out
Definition: events.h:238
LiVESWidget * vfade_out
Definition: events.h:240
double fps
Definition: events.h:218
LiVESWidget * afade_in
Definition: events.h:237
boolean enc_changed
Definition: events.h:244
boolean is_encoding
Definition: events.h:248
ulong encoder_ofmt_fn
Definition: events.h:243
LiVESWidget * okbutton
Definition: events.h:221
LiVESWidget * debug
Definition: events.h:235
LiVESWidget * ofmt_combo
Definition: events.h:225
LiVESWidget * vfade_in
Definition: events.h:239
LiVESWidget * acodec_entry
Definition: events.h:227
LiVESWidget * vfade_col
Definition: events.h:241
LiVESWidget * usecur_button
Definition: events.h:222
LiVESWidget * pertrack_checkbutton
Definition: events.h:231
LiVESWidget * norm_after
Definition: events.h:236
boolean ratio_fps
Definition: events.h:219
LiVESWidget * spinbutton_fps
Definition: events.h:230
LiVESWidget * encoder_combo
Definition: events.h:224
LiVESWidget * dialog
Definition: events.h:220
ulong encoder_name_fn
Definition: events.h:242
LiVESWidget * backaudio_checkbutton
Definition: events.h:232
LiVESWidget * always_checkbutton
Definition: events.h:233
LiVESWidget * clipname_entry
Definition: events.h:223
char * encoder_name
Definition: events.h:245
LiVESWidget * spinbutton_width
Definition: events.h:228
LiVESWidget * always_hbox
Definition: events.h:234
boolean suggestion_followed
Definition: events.h:246