2020-03-17 21:13:51 +00:00
|
|
|
#pragma once
|
2019-03-01 22:32:19 +00:00
|
|
|
|
|
|
|
#include <ges/ges.h>
|
|
|
|
#include "ges-auto-transition.h"
|
|
|
|
|
|
|
|
void timeline_tree_track_element (GNode *root,
|
|
|
|
GESTimelineElement *element);
|
|
|
|
|
|
|
|
void timeline_tree_stop_tracking_element (GNode *root,
|
|
|
|
GESTimelineElement *element);
|
|
|
|
|
|
|
|
gboolean timeline_tree_can_move_element (GNode *root,
|
|
|
|
GESTimelineElement *element,
|
|
|
|
guint32 priority,
|
|
|
|
GstClockTime start,
|
2020-05-15 13:25:01 +00:00
|
|
|
GstClockTime duration,
|
|
|
|
GError ** error);
|
2019-03-01 22:32:19 +00:00
|
|
|
|
|
|
|
gboolean timeline_tree_ripple (GNode *root,
|
2020-04-27 12:58:38 +00:00
|
|
|
GESTimelineElement *element,
|
2019-03-01 22:32:19 +00:00
|
|
|
gint64 layer_priority_offset,
|
|
|
|
GstClockTimeDiff offset,
|
2020-04-27 12:58:38 +00:00
|
|
|
GESEdge edge,
|
2020-05-15 13:25:01 +00:00
|
|
|
GstClockTime snapping_distance,
|
|
|
|
GError ** error);
|
2019-03-01 22:32:19 +00:00
|
|
|
|
|
|
|
void ges_timeline_emit_snapping (GESTimeline * timeline,
|
2020-04-27 12:58:38 +00:00
|
|
|
GESTrackElement * elem1,
|
|
|
|
GESTrackElement * elem2,
|
2019-03-01 22:32:19 +00:00
|
|
|
GstClockTime snap_time);
|
|
|
|
|
|
|
|
gboolean timeline_tree_trim (GNode *root,
|
|
|
|
GESTimelineElement *element,
|
|
|
|
gint64 layer_priority_offset,
|
|
|
|
GstClockTimeDiff offset,
|
|
|
|
GESEdge edge,
|
2020-05-15 13:25:01 +00:00
|
|
|
GstClockTime snapping_distance,
|
|
|
|
GError ** error);
|
2019-03-01 22:32:19 +00:00
|
|
|
|
|
|
|
|
|
|
|
gboolean timeline_tree_move (GNode *root,
|
|
|
|
GESTimelineElement *element,
|
|
|
|
gint64 layer_priority_offset,
|
|
|
|
GstClockTimeDiff offset,
|
|
|
|
GESEdge edge,
|
2020-05-15 13:25:01 +00:00
|
|
|
GstClockTime snapping_distance,
|
|
|
|
GError ** error);
|
2019-03-01 22:32:19 +00:00
|
|
|
|
|
|
|
gboolean timeline_tree_roll (GNode * root,
|
|
|
|
GESTimelineElement * element,
|
|
|
|
GstClockTimeDiff offset,
|
|
|
|
GESEdge edge,
|
2020-05-15 13:25:01 +00:00
|
|
|
GstClockTime snapping_distance,
|
|
|
|
GError ** error);
|
2019-03-01 22:32:19 +00:00
|
|
|
|
|
|
|
typedef GESAutoTransition *
|
|
|
|
(*GESTreeGetAutoTransitionFunc) (GESTimeline * timeline,
|
|
|
|
GESTrackElement * previous,
|
|
|
|
GESTrackElement * next,
|
|
|
|
GstClockTime transition_duration);
|
|
|
|
|
2020-04-21 14:06:03 +00:00
|
|
|
void
|
|
|
|
timeline_tree_create_transitions_for_track_element (GNode * root,
|
|
|
|
GESTrackElement * element,
|
|
|
|
GESTreeGetAutoTransitionFunc get_auto_transition);
|
2019-03-01 22:32:19 +00:00
|
|
|
void timeline_tree_create_transitions (GNode *root,
|
|
|
|
GESTreeGetAutoTransitionFunc get_auto_transition);
|
|
|
|
|
|
|
|
GstClockTime timeline_tree_get_duration (GNode *root);
|
|
|
|
|
|
|
|
void timeline_tree_debug (GNode * root);
|
|
|
|
|
|
|
|
GESAutoTransition *
|
|
|
|
ges_timeline_create_transition (GESTimeline * timeline, GESTrackElement * previous,
|
|
|
|
GESTrackElement * next, GESClip * transition,
|
|
|
|
GESLayer * layer, guint64 start, guint64 duration);
|
|
|
|
GESAutoTransition *
|
|
|
|
ges_timeline_find_auto_transition (GESTimeline * timeline, GESTrackElement * prev,
|
|
|
|
GESTrackElement * next, GstClockTime transition_duration);
|
|
|
|
|
|
|
|
void
|
|
|
|
timeline_update_duration (GESTimeline * timeline);
|
|
|
|
|
2020-03-06 21:56:52 +00:00
|
|
|
void timeline_tree_reset_layer_active (GNode *root, GESLayer *layer);
|
|
|
|
|
2019-03-01 22:32:19 +00:00
|
|
|
void timeline_tree_init_debug (void);
|