Skip to content

Re-handle track selection for clips

Henry Wilkes requested to merge hwilkes/gst-editing-services:time_effects into master

The way a clip's track elements are added to tracks was re-handled. This doesn't affect the normal usage of a simple audio-video timeline, where the tracks are added before any clips, but usage for multi-track timelines has improved. The main changes are:

  • We can now handle a track being selected for more than one track, including a full copy of their children properties and bindings. (Previously broken.)
  • When a clip is split, we copy the new elements directly into the same track, avoiding select-tracks-for-object.
  • When a clip is grouped or ungrouped, we avoid moving the elements to or from tracks.
  • Re-grouping of clips has been simplified by checking that the clips share the same asset.
  • Added API to allow users to copy the core elements of a clip directly into a track, complementing select-tracks-for-object.
  • Enforced the rule that a clip can only contain one core child in a track, and all the non-core children must be added to tracks that already contains a core child. This extends the previous condition that two sources from the same clip should not be added to the same track.
  • Made ges_track_add_element check that the newly added track element does not break the configuration rules of the timeline.
  • Added more timeline checks for adding clips to layers.
  • When adding a track to a timeline, we only use select-tracks-for-object to check whether track elements should be added to the new track, not existing ones.
  • When removing a track from a timeline, we empty it of all the track elements that are controlled by a clip. Thus, we ensure that a clip only contains elements that are in the tracks of the same timeline, or no track. Similarly, when removing a clip from a timeline.
  • We can now avoid unsupported timeline configurations when a layer is added to a timeline, and already contains clips.
  • We can now avoid unsupported timeline configurations when a track is added to a timeline, and the timeline already contains clips.
  • Try and be a bit smarter with copying properties when setting a new asset/uri for a GESUriClip.
  • Auto-transitions avoid track selection

Also of note:

  • Fixed detection of triple overlap of clips
Edited by Henry Wilkes

Merge request reports