clip: re-handle child in-point and max-duration
authorHenry Wilkes <hwilkes@igalia.com>
Tue, 10 Mar 2020 11:38:58 +0000 (11:38 +0000)
committerHenry Wilkes <hwilkes@igalia.com>
Mon, 16 Mar 2020 14:19:52 +0000 (14:19 +0000)
commitcd9cba55c00e368c25569fede866dc6aca4cf0f9
tree60beb199bdc2e9001b9e2b021259b85265f378ca
parent7725e48a803e159b7b0b05d875eb9f512e21c3c8
clip: re-handle child in-point and max-duration

The in-point of a clip is kept in sync with its core children, unless they
have no has-internal-source.

The max-duration is defined as the minimum max-duration amongst the
clip's core children. If it is set to a new value, this sets the
max-duration of its core children to the same value if they have
has-internal-source set as TRUE.

Non-core children (such as effects on a source clip) do not influence
these values.

As part of this, we no longer track in-point in GESContainer. Unlike start
and duration, the in-point of a timeline element does not refer to its
extent in the timeline. As such, it has little meaning for most
collections of timeline-elements, in particular GESGroups. As such, there
is no generic way to relate the in-point of a container to its children.
ges/ges-clip.c
ges/ges-container.c
ges/ges-transition-clip.c
ges/ges-uri-clip.c
tests/check/ges/clip.c
tests/check/ges/overlays.c
tests/check/ges/test-utils.h
tests/check/ges/titles.c
tests/check/ges/transition.c