Skip to content

clip: re-handle children

Henry Wilkes requested to merge hwilkes/gst-editing-services:time_effects into master

This introduces some changes centred around the handling of GESClip children.

In particular, we:

  • Introduce the concept of core children, which are those returned by ges_clip_create_track_elements (or internally copied from one of these). A clip can only have core children by default. GESSourceClass and GESBaseEffectClass also allow the clip to have effects added to it.
  • Tidied handling of children priorities: there were some bugs in the previous code.
  • Keep a clip's child priorities in sync with its children.
  • Make sure control bindings are copied and pasted.
  • Introduce the has-internal-source property for GESTrackElements. This can be used by GESClip to know which of its core children it should be effected by its in-point and max-duration.
  • Allow non-core children to have their own in-point, distinct from the clip's.
  • Define the max-duration of a clip to be the minimum max-duration of its core children. This technically allows the core children to have different max-durations (but they will share the same in-point).
  • Only allow children to be added that share the same timeline (or do not have one set yet).

These changes tidy things up in general, but they also prepare clips for time effects. In particular, a time effect can not have a non-zero in-point set. The previous behaviour would not have allowed this.

Edited by Henry Wilkes

Merge request reports