mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-09-22 20:10:13 +00:00
51 lines
1.7 KiB
Text
51 lines
1.7 KiB
Text
|
Mapping Timeline position to Track position
|
||
|
-------------------------------------------
|
||
|
|
||
|
TrackObject/TimelineObject basic properties (hereafter position):
|
||
|
start
|
||
|
duration
|
||
|
in-point
|
||
|
priority
|
||
|
|
||
|
|
||
|
Use Cases:
|
||
|
|
||
|
A TimelineObject can be tracking one or many TrackObject(s).
|
||
|
|
||
|
When the TimelineObject position is modified we might need
|
||
|
to cascade those changes to the controlled TrackObject(s) if those
|
||
|
TrackObject(s) are 'locked' to the TimelineObject.
|
||
|
|
||
|
If we modify the positions of a TrackObject that TrackObject is
|
||
|
'locked' to the TimelineObject, we need to ensure all the other
|
||
|
co-related TrackObject belong to the same TimelineObject are moved in
|
||
|
the same way.
|
||
|
|
||
|
A TrackObject can be temporarily 'unlocked' from its TimelineObject,
|
||
|
so as to move it independently, and then 'locked' back to it. This
|
||
|
can allow moves, like shifting audio trackobject in relation to the
|
||
|
video trackobject (to fix sync issues) and then 'lock' them back so
|
||
|
as to be able to move them as one entity thereafter.
|
||
|
|
||
|
When adding TimelineOverlay(s) or TimelineEffect(s) on a
|
||
|
TimelineObject, we need to ensure the TrackObject(s) that those extra
|
||
|
effects will create can be added with specific priority offsets, in
|
||
|
such a way that they always end up "on top" of the TimelineObject's
|
||
|
existing tracked TrackObject(s).
|
||
|
|
||
|
When a controlled TrackObject is being moved when 'unlocked', we need
|
||
|
to make sure the duration/height of the TimelineObject is updated
|
||
|
accordingly. Ex : moving a TrackObject down by one priority should
|
||
|
increase the TimelineObject "heigh" property by 1.
|
||
|
|
||
|
|
||
|
Main Problem:
|
||
|
|
||
|
There needs to be a mapping between the TimelineObject basic
|
||
|
properties and its controlled TrackObject(s) position.
|
||
|
|
||
|
Design:
|
||
|
|
||
|
TBD
|
||
|
|