1. 09 Jun, 2020 2 commits
  2. 08 Jun, 2020 1 commit
  3. 04 Jun, 2020 3 commits
  4. 03 Jun, 2020 1 commit
  5. 27 May, 2020 2 commits
  6. 26 May, 2020 2 commits
  7. 25 May, 2020 12 commits
    • Thibault Saunier's avatar
      formatter: Fix saving/loading project with clip speed rate control · db5c62ad
      Thibault Saunier authored
      We need to ensure that clips duration is set after time effects are
      added and we now need to serialize effects inpoints and max duration.
      
      Part-of: <!177>
      db5c62ad
    • Henry Wilkes's avatar
      docs: add some notes on Time in GES · e142f491
      Henry Wilkes authored
      These notes cover time coordinates in GES, time effects, time
      translations.
      
      It also goes into why keyframes will not work with non-linear time
      effects.
      
      Part-of: <!177>
      e142f491
    • Henry Wilkes's avatar
      uri-clip: don't assume duration needs to stay the same · a6d0418f
      Henry Wilkes authored
      ges_uri_clip_asset_get_duration does not tell us what the duration in
      the timeline needs to be. Especially when we have time effects, or
      effects with finite max-durations. So we should no longer expect the
      duration to stay the same when replacing assets. Instead, we just check
      that the new max-duration would be compatible with the current in-point
      (which was not checked before), and the clip would not be totally
      overlapped if its duration-limit changes.
      
      This is based on the assumption that each source is replaced one-to-one
      in its track. If a source is replaced with nothing in the same track,
      this check may be a little too strong (but still mostly weaker than
      before). However, problems could occur if track selection does
      something unexpected, such as placing the new source in a track not
      previously occupied.
      
      Part-of: <!177>
      a6d0418f
    • Henry Wilkes's avatar
      clip: provide an example of using time effects · f269a7f2
      Henry Wilkes authored
      Part-of: <!177>
      f269a7f2
    • Henry Wilkes's avatar
      track-element: use out-point for updating control bindings · 9e18e039
      Henry Wilkes authored
      The out-point, which is an internal time, is used instead of the
      duration for determining the control binding value at the end of the
      element.
      
      Also, allow the user to switch off the auto-clamping of control sources
      if they are not desired. And allow them to clamp specific control sources
      individually.
      
      Also, fix a lot of memory leaks related to control sources. In
      particular, releasing the extra ref gained by source in
      g_object_get (binding, "control-source", &source, NULL);
      
      Part-of: <!177>
      9e18e039
    • Henry Wilkes's avatar
      clip: test for layer in group · 73852466
      Henry Wilkes authored
      Make sure the layer exists before we try to remove the grouped clips
      from it.
      
      Part-of: <!177>
      73852466
    • Henry Wilkes's avatar
      timeline-tree: make sure the layer priority refers to an existing layer · 34719efa
      Henry Wilkes authored
      If a layer priority sits between the priorities of two layers in the
      timeline, i.e. it references a gap in the timeline's layers, then
      ges_timeline_append_layer will never fill this gap and create the
      desired layer, so the edit in timeline-tree would loop forever. So a
      check was added to avoid this.
      
      This would be a usage error, but a user can reasonably end up with a gap
      in their layers if they remove a layer from the timeline.
      
      Part-of: <!177>
      34719efa
    • Henry Wilkes's avatar
      clip: add method for adding top effects · 53d335b4
      Henry Wilkes authored
      Unlike ges_container_add, this lets you set the index and will check
      that track selection did not fail. This is useful for time effects whose
      addition would create an unsupported timeline configuration.
      
      Also can use the clip add error in ges_timeline_add_clip to let the user
      know when adding a clip to a layer that its in-point is set larger than
      the max-duration of its core children.
      
      Part-of: <!177>
      53d335b4
    • Henry Wilkes's avatar
      timeline-tree: take time effects into account when trimming · 478db52d
      Henry Wilkes authored
      When trimming the start of a clip, we want to set the in-point of its
      children such that whatever data was at the timeline time T still
      remains at the timeline time T after the trim, where
        T = MAX (prev_start, new_start)
      
      Part-of: <!177>
      478db52d
    • Henry Wilkes's avatar
      clip: use time translation for split · 364c112d
      Henry Wilkes authored
      The new in-point should be the media position corresponding to the media
      position. media_duration_factor is no longer needed.
      
      Part-of: <!177>
      364c112d
    • Henry Wilkes's avatar
      clip: fix warning when getting duration-limit · e36e99e1
      Henry Wilkes authored
      The duration-limit case was missing a 'break;' statement.
      
      Part-of: <!177>
      e36e99e1
    • Henry Wilkes's avatar
      clip: add methods to convert between time coordinates · 449bc935
      Henry Wilkes authored
      Add methods to convert between the timeline time coordinates and the
      internal time coordinates of a track element in a clip, taking time
      effects into account.
      
      Part-of: <!177>
      449bc935
  8. 22 May, 2020 2 commits
    • Henry Wilkes's avatar
      effect: Add support for time effects · 571120dc
      Henry Wilkes authored
      Allow the user to register a child property of a base effect as a time
      property. This can be used by GES to correctly calculate the
      duration-limit of a clip when it has time effects on it. The existing
      ges_effect_class_register_rate_property is now used to automatically
      register such time effects for rate effects.
      
      Part-of: <!177>
      571120dc
    • Henry Wilkes's avatar
      errors: added edit errors · 142456d8
      Henry Wilkes authored
      Added more errors to GES_ERROR for when edits fail (other than
      programming or usage errors). Also promoted some GST messages if they
      related to a usage error.
      
      Also added explanation of timeline overlap rules in user docs.
      
      Part-of: <!177>
      142456d8
  9. 19 May, 2020 7 commits
  10. 18 May, 2020 1 commit
  11. 13 May, 2020 1 commit
    • Henry Wilkes's avatar
      track-element: Add is_core method to API · e8941152
      Henry Wilkes authored
      Open up the method to the user, since they may need the information.
      Also added more documentation on what a core track element is to a clip
      and how they are treated.
      
      Part-of: <!169>
      e8941152
  12. 07 May, 2020 6 commits
    • Henry Wilkes's avatar
      asset: unref requested assets · 9161c2ef
      Henry Wilkes authored
      Prevent a few memory leaks in the tests.
      
      Also mark ges_project_save as transfer full for the formatter asset.
      
      Also make sure that ges_project_request_sync is transfer full on the
      returned asset.
      
      Fixes #104
      
      Part-of: <!169>
      9161c2ef
    • Henry Wilkes's avatar
      clip: enforce duration-limit · 0fab5f45
      Henry Wilkes authored
      Prevent setting of properties or that of children, if the clip would not
      be able to set the corresponding duration if the duration-limit would
      drop below the currently set duration.
      
      Part-of: <!169>
      0fab5f45
    • Henry Wilkes's avatar
      clip: make sure core child is active for non-core in same track · fd353705
      Henry Wilkes authored
      Each active non-core child must have a corresponding active core child
      in the same track. Therefore, if we de-activate a core child, we also
      need to de-activate all the non-core children in the same track.
      Similarly, if we activate a non-core child, we need to activate the
      corresponding core child as well.
      
      Part-of: <!169>
      fd353705
    • Henry Wilkes's avatar
      clip: be more robust in handling priority · 5159d367
      Henry Wilkes authored
      Make less assumptions about the priority of effects and core elements so
      that the code would still work if the priority of an element was set
      directly. In particular, the index of a top effect will always be its
      position in the effect ordering.
      
      Part-of: <!169>
      5159d367
    • Henry Wilkes's avatar
      container: stop storing priority offset in child mapping · 52c22efe
      Henry Wilkes authored
      GESGroup no longer uses this, and GESClip can be made simpler without
      it.
      
      Part-of: <!169>
      52c22efe
    • Henry Wilkes's avatar
      clip: preserve auto-transition in split · 0a3da79e
      Henry Wilkes authored
      When splitting a clip, keep the auto-transition at the end of the clip
      alive and move its source to that of the corresponding split track
      element.
      
      Part-of: <!169>
      0a3da79e