mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-30 05:31:15 +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