mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-02 14:36:41 +00:00
random: Add brainstorming about Timeline<=>Track object mapping
This commit is contained in:
parent
3912245f87
commit
bfaa119ef7
1 changed files with 50 additions and 0 deletions
50
docs/random/mapping.txt
Normal file
50
docs/random/mapping.txt
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
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
|
||||||
|
|
Loading…
Reference in a new issue