clip: re-handle children
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
andGESBaseEffectClass
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 forGESTrackElement
s. This can be used byGESClip
to know which of its core children it should be effected by itsin-point
andmax-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 minimummax-duration
of its core children. This technically allows the core children to have differentmax-duration
s (but they will share the samein-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