Commit graph

150 commits

Author SHA1 Message Date
Anton Belka 7d999c5ab8 timeline: add auto-transition
API:
 ges_timeline_get_auto_transition
 ges_timeline_set_auto_transition
 GESTimeline::auto-transition
2013-05-09 18:54:56 -04:00
Thibault Saunier b2b96c743d Rename GESTimelineLayer to GESLayer 2013-04-23 20:22:31 -03:00
Thibault Saunier b5c52a17ec layer: Remove the "rate" property of ges_timeline_layer_add_asset
API:
 - ges_timeline_layer_add_asset (layer, asset,  start,  inpoint, duration, rate, track_types);
 + ges_timeline_layer_add_asset (layer, asset,  start,  inpoint, duration, track_types);
2013-04-23 20:22:27 -03:00
Thibault Saunier 5ab40ce5cb ges: Fix compilation with clang 2013-04-21 21:11:52 -03:00
Thibault Saunier cdd00ed207 ges-clip: Remove the unlocked TrackElement APIs
Remove APIs:
  ges_track_element_set_locked
  ges_track_element_is_locked

Those APIs where really not nice to use and were causing more issues
than solving them. If 2 time related properties of TimelineElement must
be different, then those element can *not* have the same parent.

Plus, with the new ges_container_group () API, we will recreate 1
GESClip containing the proper GESTimelineElements if it is the thing
to do.
2013-04-15 00:18:05 -03:00
Thibault Saunier 4039468b57 timeline: call sync_state_with_parent when adding a child 2013-04-09 00:11:18 -03:00
Thibault Saunier 40376f9219 timeline: Do no unref the timeline before returning it 2013-03-30 13:34:36 +01:00
Thibault Saunier f114b6eb3b timeline: Comment some variables goals 2013-03-29 15:50:12 +01:00
Thibault Saunier 7313916ae8 timeline: Remove TrackElement from its container on GESTimelineLayer::"clip-removed"
.... when the Track is NULL
2013-03-28 11:16:41 +01:00
Thibault Saunier 5a5b07297c Use gst_object_ref_sink instead of g_object_ref_sink when appropriate
Making refcount issue debugging simpler
2013-03-18 12:48:42 -03:00
Thibault Saunier 0767f08c7a Always prefer gst_object_(un)ref over g_object_(un)ref
Making the refcount issue debugging easier
2013-03-18 12:48:41 -03:00
Thibault Saunier aa740d86bd Remove GESTrackElements from GESTracks when removing from a GESClip
... Not the other way round.

  + Add and enhance debugging info on the way

The user should not be responsible for removing the GESTrackElements from
GESTracks, instead, removing it from a GESClip should imply removing
it from any GESTrack it is in.

This patch changes sensibly the behaviour when we remove a
GESTrackElement from a GESTrack, not remoing it from the GESClip it is
in. *But*, users should never remove a GESTrackElement from a GESTrack
anyway. The testsuite has been updated to that new behaviour.
2013-03-15 11:17:06 -03:00
Thibault Saunier 7943bb510a ges: Make GESTimeline responsible for adding GESTrackElement to GESTrack
+ Fix tests as necessary (Do not use agingtv as it can be "applied" on any TrackType
    	   and is not representative of what happens IRL)

We already had the infrastructure so the user can have the control over where to add
the elements (through the "select-track-for-object" signal). We now make use of that
signal everytime a GESClip is added to a GESTimelineLayer. This make user's life easier,
and object responsability clearer.
2013-03-15 00:13:09 -03:00
Thibault Saunier 795b8df1b6 Implement GESContainer
+ Fix unit tests
  + Minor enhancement in unit tests

API changes:
-----------
  * ges_track_element_get_clip     -> ges_timeline_element_get_parent
  * ges_clip_add_track_element     -> ges_container_add
  * ges_clip_release_track_element -> ges_container_remove
  * ges_clip_get_track_elements    -> ges_container_get_children
                                      (or GES_CONTAINER_CHILDREN)
2013-03-15 00:13:08 -03:00
Thibault Saunier 0888e5e25b Rename object/tobj/trobj to clip or track_element as necessary
Not really complete but it is a good start!
2013-02-15 16:26:30 -03:00
Thibault Saunier 7f3c952737 Finish renaming tck_obj and derivate to track_element 2013-02-15 15:23:16 -03:00
Thibault Saunier d21791a8d0 Rename GESTimelineLayer.xxx_object to GESTimelineLayer.xxx_clip 2013-02-15 15:23:15 -03:00
Thibault Saunier ec1db99266 track: Rename all GESTrack.xxx_object to GESTrack.xxx_element 2013-02-15 15:23:15 -03:00
Thibault Saunier fc8f06eedb Properly rename object-added to clip-added 2013-02-15 15:23:15 -03:00
Thibault Saunier 4ddcfb642d Finish renaming timeline object to clip 2013-02-15 15:23:15 -03:00
Thibault Saunier b4e1131b70 Finish renaming track object to track element 2013-02-15 15:23:15 -03:00
Thibault Saunier 3f97a05c11 Rename GESTrackTransition to GESTransition 2013-02-15 14:42:06 -03:00
Thibault Saunier 6363d0fdad Rename GESTrackSource to GESSource 2013-02-15 14:42:06 -03:00
Thibault Saunier d69964fd2a Rename GESTrackObject to GESTrackElement 2013-02-15 14:42:05 -03:00
Thibault Saunier 6f4315b75d Rename GESStandardTransitionClip to GESTransitionClip 2013-02-15 14:42:04 -03:00
Thibault Saunier d7693b4014 Rename GESTimelineStandardTransition to GESStandardTransitionClip 2013-02-15 14:42:03 -03:00
Thibault Saunier b73cf7c3d7 Rename GESTimelineTransition to GESTransitionClip 2013-02-15 14:42:03 -03:00
Thibault Saunier 04a3c49ebd Rename GESTimelineObject to GESClip 2013-02-15 14:42:02 -03:00
Thibault Saunier f0359481c0 Add a GESTimelineElement base class
+ Port GESTrackObject and GESTimelineObject to the new baseclass
2013-02-15 14:42:02 -03:00
Thibault Saunier 02652902f5 Reimplement the auto-transition feature
+ Actually implement unit tests
2013-01-10 18:53:15 -03:00
Thibault Saunier 9791fc541b timeline: Minor refactoring 2013-01-10 18:01:33 -03:00
Thibault Saunier eeef1548b3 timeline: Avoid recreating the moving_tlobjs when unecessary 2013-01-10 13:32:15 -03:00
Thibault Saunier 8888a3a698 Misc debug message enhancements 2013-01-10 12:46:33 -03:00
Thibault Saunier 92a67092d5 timeline: Keep track of whether updates are enabled or not
Check if we want to track Track-s enable status and update our status according
to that
2013-01-10 12:46:33 -03:00
Thibault Saunier 7f10881dd2 timeline: Track TrackObject-s by layer 2013-01-10 11:50:02 -03:00
Thibault Saunier af326df8bd utilities: Make internal utilities instead of copy/pasting functions 2013-01-10 11:15:32 -03:00
Thibault Saunier 1b8126d349 timeline: Remove dead macros 2013-01-10 11:11:30 -03:00
Thibault Saunier 31e1ea3840 timeline: Use g_sequence_sort_changed when appropriate 2013-01-10 11:11:28 -03:00
Thibault Saunier cf93469fa5 Misc nitpick fixing 2012-12-30 23:12:28 -03:00
Thibault Saunier c5ad871d1c Implement a GESAssetTrackObject class
+ Addapt the rest of the code to make use of it
2012-12-29 19:38:12 -03:00
Sebastian Dröge bc0f335734 Allow applications to select to which track a track object should be added
Modifies some  API:
    ges_timeline_object_create_track_objects now take a GESTrackType instead of a
        GESTrack as second argument, and return a GList instead of a boolean
    ges_timeline_object_create_track_object now take a GESTrackType instead of a
        GESTrack as second argument
2012-12-29 19:36:52 -03:00
Thibault Saunier 2b4c4cfc0c timeline: Properly popullate the tracks field with GESTrack-s
+ add priv_tracks private field that contained TrackPrivate structures

We now have 2 list containing our tracks, one with TrackPrivate structures, and one the
GESTrack-s themselves.
2012-12-29 19:36:52 -03:00
Thibault Saunier 5a56aef7c0 Misc documentation fixing 2012-12-29 19:36:52 -03:00
Thibault Saunier 45c7f609da timeline: Make use of the Project API for timeline saving
API:
    *  Add a formatter_type paramatter to ges_timeline_save_to_uri
2012-12-29 19:36:50 -03:00
Thibault Saunier 8ff97af65d timeline: Implement the GESMetaContainerInterface 2012-12-19 18:59:51 -03:00
Thibault Saunier dbab748bfc timeline: Implement the GESExtractable interface 2012-12-19 18:59:50 -03:00
Thibault Saunier 543ab28228 timeline: Make timeline->track and timeline->layers public fields 2012-12-19 18:59:50 -03:00
Thibault Saunier a7280fb59d ges: Implement the ges_timeline_layer_add_asset method
+ Remove GstDiscoverer related code in GESTimeline as we do not need it anymore
  + Refactor the ges_timeline_layer_add_object method to make sure it is still working as intended

API:
  ges_timeline_layer_add_asset
2012-12-19 18:59:48 -03:00
Thibault Saunier 97973f1eba Remove the GESKeyFileFormatter
It was using deprecated URI, and can not be used in real life anymore.

Also remove the ges_formatter_default_new method ges_formatter_new_for_uri
that are useless now
2012-12-19 11:45:37 -03:00
Thibault Saunier 346b04ecb4 timeline: Keep track of GSequenceIter for each GESTrackObject
This way we do not have to look for them in the sequence itself, and
make things simpler
2012-12-19 11:45:37 -03:00