gstreamer/ges/ges-timeline-tree.h
Thibault Saunier f9f30c4ced ges: Add a way to set layer activeness by track
a.k.a muting layers.

Adding unit tests and making sure serialization works properly
2020-03-25 15:40:25 -03:00

79 lines
3.8 KiB
C

#pragma once
#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,
GstClockTime duration,
GList *moving_track_elements);
gboolean timeline_tree_ripple (GNode *root,
gint64 layer_priority_offset,
GstClockTimeDiff offset,
GESTimelineElement *rippled_element,
GESEdge moving_edge,
GstClockTime snapping_distance);
void ges_timeline_emit_snapping (GESTimeline * timeline,
GESTimelineElement * elem1,
GESTimelineElement * elem2,
GstClockTime snap_time);
gboolean timeline_tree_trim (GNode *root,
GESTimelineElement *element,
gint64 layer_priority_offset,
GstClockTimeDiff offset,
GESEdge edge,
GstClockTime snapping_distance);
gboolean timeline_tree_move (GNode *root,
GESTimelineElement *element,
gint64 layer_priority_offset,
GstClockTimeDiff offset,
GESEdge edge,
GstClockTime snapping_distance);
gboolean timeline_tree_roll (GNode * root,
GESTimelineElement * element,
GstClockTimeDiff offset,
GESEdge edge,
GstClockTime snapping_distance);
typedef GESAutoTransition *
(*GESTreeGetAutoTransitionFunc) (GESTimeline * timeline,
GESTrackElement * previous,
GESTrackElement * next,
GstClockTime transition_duration);
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);
void timeline_tree_reset_layer_active (GNode *root, GESLayer *layer);
void timeline_tree_init_debug (void);