GStreamer multimedia framework
Find a file
Henry Wilkes 39097f5574 timeline-tree: simplify and fix editing
Editing has been simplified by breaking down each edit into a
combination of three basic single-element edits: MOVE, TRIM_START, and
TRIM_END.

Each edit follows these steps:
+ Determine which elements are to be edited and under which basic mode
+ Determine which track elements will move as a result
+ Snap the edit position to one of the edges of the main edited element,
  (or the edge of one of its descendants, in the case of MOVE), avoiding
  moving elements.
  NOTE: in particular, we can *not* snap to the edge of a neighbouring
  element in a roll edit. This was previously possible, even though the
  neighbour was moving!
+ Determine the edit positions for clips (or track elements with no
  parent) using the snapped value. In addition, we replace any edits of
  a group with an edit of its descendant clips. If any value would be
  out of bounds (e.g. negative start) we do not edit.
  NOTE: this is now done *after* checking the snapping. This allows the
  edit to succeed if snapping would cause it to go from being invalid to
  valid!
+ Determine whether the collection of edits would result in a valid
  timeline-configuration which does not break the rules for sources
  overlapping.
+ If all this succeeds, we emit snapping-started on the timeline.
+ We then perform all the edits. At this point they should all succeed.

The simplification/unification should make it easier to make other
changes.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/97
Fixes https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/issues/98

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/169>
2020-05-07 09:37:15 +01:00
bindings/python ges: Rework the way we ensure core elements are not wrongly moved between clips 2020-04-08 14:35:28 +01:00
data/completions completion: Fix previous commit 2017-04-04 16:27:33 -04:00
docs ges: Update documentation 2020-04-09 10:10:09 -04:00
examples add assets to layer and adjust position and duration (closes #45) 2020-03-03 12:27:33 +00:00
ges timeline-tree: simplify and fix editing 2020-05-07 09:37:15 +01:00
hooks meson: Setup pre commit hook and fix getpluginsdir for standalone case 2016-09-30 13:35:01 -03:00
pkgconfig Remove autotools build system 2019-10-13 13:54:19 +01:00
plugins plugin: Fix a race removing tracks from timeline from the wrong thread 2020-04-30 13:38:34 -04:00
tests timeline-tree: simplify and fix editing 2020-05-07 09:37:15 +01:00
tools nlecomposition: Fix seeking with stop 2020-04-28 19:14:26 -04:00
.arcconfig ges: Set restriction caps in the audio source caps filter 2015-11-05 23:49:05 +01:00
.gitignore Remove autotools build system 2019-10-13 13:54:19 +01:00
.gitlab-ci.yml Add Gitlab CI configuration 2018-11-12 12:57:17 +02:00
AUTHORS AUTHORS/README: cleanup 2010-11-11 17:45:20 +01:00
ChangeLog Release 1.16.0 2019-04-19 00:35:58 +01:00
COPYING Fix FSF address 2012-11-04 00:25:20 +00:00
COPYING.LIB Fix FSF address 2012-11-04 00:25:20 +00:00
gst-editing-services.doap Release 1.16.0 2019-04-19 00:35:58 +01:00
meson.build macos: fix python's configure checks 2020-04-18 16:27:18 +02:00
meson_options.txt meson: Add an option to enable/disable validate integration 2020-02-26 13:39:29 -03:00
NEWS Release 1.16.0 2019-04-19 00:35:58 +01:00
README Remove obsolete dependency 2016-09-13 16:45:25 -03:00
RELEASE Back to development 2019-04-19 11:00:07 +01:00

GStreamer Editing Services
--------------------------

 This is a high-level library for facilitating the creation of audio/video
non-linear editors.

License:
--------

  This package and its contents are licensend under the GNU Lesser General
Public License (LGPL).

Dependencies:
-------------

 * GStreamer core
 * gst-plugins-base