Commit graph

1073 commits

Author SHA1 Message Date
Mathieu Duponchelle
e655a75605 [Keyframes] Adds API to set a control binding on a track element, and the serialization code. 2013-03-31 16:31:26 +02:00
Thibault Saunier
811e68811c Changing remaining clip::track-element-added to container::child-added 2013-03-30 15:40:38 +01:00
Thibault Saunier
d3595d4706 pipeline: Implement the video overlay interface 2013-03-30 14:35:45 +01:00
Thibault Saunier
8b1039a87a timeline-pipeline: Enhance API guards 2013-03-30 13:34:56 +01:00
Thibault Saunier
40376f9219 timeline: Do no unref the timeline before returning it 2013-03-30 13:34:36 +01:00
Thibault Saunier
8d4ce97fc3 container: s/get_priorty_range/get_priority_range/ 2013-03-30 12:31:50 +01:00
Thibault Saunier
f114b6eb3b timeline: Comment some variables goals 2013-03-29 15:50:12 +01:00
Thibault Saunier
cd188c851d container: Let subclasses handle the height
+ Fix tests (starting using GESTestClip instead of GESCustomClip)

Now the height is not only growing, but can also go down, as the value
is just simply computed

API:
	GESContainer::compute_height virtual method
2013-03-28 11:16:41 +01:00
Thibault Saunier
b5f2c819fc container: Properly implement ges_container_group 2013-03-28 11:16:41 +01:00
Thibault Saunier
134ce9a8d8 clip: Emit notify signal when setting Clip.layer 2013-03-28 11:16:41 +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
0df2d4f945 container: Make sure that the child exists when emiting the "child-removed" signal
+ Add a test
2013-03-28 11:16:41 +01:00
Thibault Saunier
229ec5f435 container: Replace ignore_notify by a GESChildrenControlMode flag 2013-03-23 03:26:33 -03:00
Thibault Saunier
c6078abc97 container: Stop ignoring notifies if ->add_child fails 2013-03-23 01:35:02 -03:00
Thibault Saunier
7f1fbd2300 internal: Add a element_end_compare 2013-03-23 01:34:50 -03:00
Thibault Saunier
e72f5a6012 timeline-element: Add a macro to get element 'end' 2013-03-23 01:31:23 -03:00
Thibault Saunier
c84f4ec9fb ges: Keep ges-gerror categories simple. 2013-03-22 17:39:04 -03:00
Thibault Saunier
fa5ed5111d Misc cleaning 2013-03-21 22:17:10 -03:00
Thibault Saunier
48b5903ef8 track-element: Make ges_track_element_set_track internal
Removed API:
  + ges_track_element_set_track
2013-03-21 22:12:47 -03:00
Thibault Saunier
cae3aabbca ges: Make ges_clip_create_track_element(s) internal methods
+ Fix tests (we still need a round of modernisation, making use of
      assets where it makes sense)

There is no reason to use those method outside of GES, so remove them,
cleaning the API and making it easier for users.

Removed APIs:
-----------
    * ges_clip_create_track_element
    * ges_clip_create_track_elements
2013-03-21 22:05:45 -03:00
Thibault Saunier
9a751269bb uri-asset: Properly handle images and do not duplicate the TrackType 2013-03-19 21:07:58 -03:00
Thibault Saunier
855270566c uri-asset: Implement a ges_uri_clip_asset_request_sync method
This way we let the possibility to the user to actually do it, but we avoid him to do it
without knowing it is absolutely not recommanded to.

API:
	+ ges_uri_clip_asset_request_sync
2013-03-19 20:06:30 -03:00
Thibault Saunier
6a3331cc67 Start categorizing GError types in GES 2013-03-19 20:06:30 -03:00
Thibault Saunier
5b2183076a timeline-element: Do not give a reference to the calles of g_object_get_property
... for both the "parent" and the "timeline" properties

Making things simpler to handle for the copy method.
2013-03-19 20:06:30 -03:00
Thibault Saunier
f8334dba24 clip: Make it mandatory that a clip is in a layer to be splittable
Otherwize we will not be able to describe if the returned object has a floating reference or not, and this would screw the introspection.
2013-03-19 20:06:30 -03: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
dd50427714 clip: Make set/is_moving_from_layer internal 2013-03-15 12:01:58 -03:00
Thibault Saunier
058f0d0099 clip: Reindent header and make ges_clip_set_layer internal 2013-03-15 11:58:59 -03:00
Thibault Saunier
2fede3adeb track: Cleanup header and add a FIXME 2013-03-15 11:38:03 -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
b397a41f2f Add a GESEffectAsset class, and make sure to set the GESTrackType asap on effects
+ Make use of the asset in ges_effect_new
2013-03-15 00:13:09 -03:00
Thibault Saunier
eaf30dd4c5 ges: Use GESAsset in clip contructors when possible 2013-03-15 00:13:09 -03:00
Thibault Saunier
fceb80dda3 timeline-element: Set asset from the copied element to the new copy 2013-03-15 00:13:09 -03:00
Thibault Saunier
f579a6a95c container: Add a ges_container_group method
+ Add some basic unit tests

API:
  GESContainer:group vmethod
  ges_container_group
2013-03-15 00:13:09 -03:00
Thibault Saunier
ae80f08869 track: Do not remove a TrackElement from a NULL clip 2013-03-15 00:13:09 -03:00
Thibault Saunier
c73ced52f8 container: Add a way to ungroup a GESContainer into several GESContainers
+ Add simple unit test

API:
  GESContainerClass::ungroup vmethod
  ges_container_ungroup
2013-03-15 00:13:09 -03:00
Thibault Saunier
c72c14b398 timeline-element: Make it possible to reset parent to NULL 2013-03-15 00:13:08 -03:00
Thibault Saunier
3136ccf84c Fix some documentations 2013-03-15 00:13:08 -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
25bcb023ca timeline-element: Enhance debug statement and documentation
+ Accept NULL as a parent
2013-03-14 18:11:56 -03:00
Thibault Saunier
0cb8c671ea timeline-element: Add a "timeline" property 2013-03-14 18:10:34 -03:00
Руслан Ижбулатов
7a81dd8669 ges-timeline-element: Fix GST_DEBUG_OBJECT invocations
Fixes #695267
2013-03-06 08:33:21 +01: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
cb11f0d7c4 Add GESTimelineElement.{start, inpoint, duration, maxduration, priority} getters 2013-02-15 15:23:15 -03:00
Thibault Saunier
6689db6098 uriclip: Fix wrong acces to object instead of its duration field 2013-02-15 15:23:10 -03:00
Thibault Saunier
c21524a985 Reword ges_title_clip_set_color to ges_title_clip_set_text_color 2013-02-15 14:42:07 -03:00
Thibault Saunier
f63c78b056 Rename ges_title_.*_set_background to set_background_color 2013-02-15 14:42:07 -03:00
Thibault Saunier
552f008e9d titleclip: Remove useless mute property 2013-02-15 14:42:07 -03:00
Thibault Saunier
28e86cbc6c pitiviformatter: Fix renaming issues 2013-02-15 14:42:07 -03:00
Thibault Saunier
a20f6cf5f3 Rename overlay_text to text_overlay 2013-02-15 14:42:07 -03:00
Thibault Saunier
fb7baa1cd3 Rename GESAssetClip to GESClipAsset 2013-02-15 14:42:07 -03:00
Thibault Saunier
997df180ea Rename GESTrackAudioTransition to GESAudioTransition 2013-02-15 14:42:07 -03:00
Thibault Saunier
ecc9eb3020 Rename GESTrackVideoTransition to GESVideoTransition 2013-02-15 14:42:07 -03:00
Thibault Saunier
3f97a05c11 Rename GESTrackTransition to GESTransition 2013-02-15 14:42:06 -03:00
Thibault Saunier
f7170a6a83 Rename GESTrackOperation to GESOperation 2013-02-15 14:42:06 -03:00
Thibault Saunier
ac456f74d7 Rename GESTrackTextOverlay to GESTextOverlay 2013-02-15 14:42:06 -03:00
Thibault Saunier
8245a6e624 Rename GESTrackTitleSource to GESTitleSource 2013-02-15 14:42:06 -03:00
Thibault Saunier
6aa01b594a Rename GESTrackImageSource to GESImageSource 2013-02-15 14:42:06 -03:00
Thibault Saunier
037b71bc16 Rename GESAssetTrackElement to GESTrackElementAsset 2013-02-15 14:42:06 -03:00
Thibault Saunier
bfef8d77ba Rename TrackFileSource to UriSource 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
273f27a269 Rename GESTrackVideoTestSource to GESVideoTestSource 2013-02-15 14:42:05 -03:00
Thibault Saunier
5a5aae6e63 Rename GESTrackAudioTestSource to GESAudioTestSource 2013-02-15 14:42:05 -03:00
Thibault Saunier
e24cccabfd Rename GESTrackParseLaunchEffect to GESEffect 2013-02-15 14:42:05 -03:00
Thibault Saunier
5da8fa89e2 Rename TrackEffect to BaseEffect 2013-02-15 14:42:05 -03:00
Thibault Saunier
d69964fd2a Rename GESTrackObject to GESTrackElement 2013-02-15 14:42:05 -03:00
Thibault Saunier
dc04fd005c Rename GESStandardEffectClip to GESEffectClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
4346775d6e Rename GESEffectClip to GESBaseEffectClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
6f4315b75d Rename GESStandardTransitionClip to GESTransitionClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
4300876b0d Rename GESTransitionClip to GESBaseTransitionClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
e48b959dde timelineelement: Implement the notion of parenting 2013-02-15 14:42:04 -03:00
Thibault Saunier
e3dc877c4b Rename GESTimelineTestSource to GESTestSourceClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
5da46b7658 Rename GESTimelineTileSource to GESTitleClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
a2f670448e Rename GESTimelineTextOverlay to GESTextOverlayClip 2013-02-15 14:42:04 -03:00
Thibault Saunier
fd5c3e512a Rename GESTimelineOverlay to GESOverlayClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
878f015179 Rename GESTimelineSource to GESSourceClip
And GESCustomTimelineSource to GESCustomSourceClip
2013-02-15 14:42:03 -03:00
Thibault Saunier
d151f62aa9 Rename GESTimelineOperation to GESOperationClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
dbc83d5d86 Rename GESTimelineParseLaunchEffect to GESStandardEffectClip 2013-02-15 14:42:03 -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
192d8a6f4d Rename GESTimelineEffect to GESEffectClip 2013-02-15 14:42:03 -03:00
Thibault Saunier
695c381bb1 Rename GESTimelineFileSource to GESUriClip
Conflicts:
	ges/ges-pitivi-formatter.c
	ges/ges-uri-clip.c
	tests/check/ges/project.c
	tests/check/ges/uriclip.c
2013-02-15 14:42:02 -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
04b1ef6eb7 project: Update loading asset when a URI is missing 2013-01-30 20:14:59 -03:00
Tim-Philipp Müller
85663a840e Fix various printf format issues in debug messages 2013-01-22 19:51:57 +00:00
Thibault Saunier
7f81f16674 pitiviformatter: Handle project metadatas 2013-01-14 09:02:26 -03:00
Thibault Saunier
17b765bfb5 xmlformatter: Do no allow saving CONSTRUCTONLY properties 2013-01-14 09:02:26 -03:00
Thibault Saunier
350c5a07bf layer: State assets we create async as loading to the project 2013-01-14 09:02:26 -03:00
Thibault Saunier
e071e3ed37 project: Track Asset that were loaded with error 2013-01-14 09:02:26 -03:00
Thibault Saunier
1d397591af project: Handle assets that are being loaded
API:
    ges_project_get_loading_assets
2013-01-14 09:02:26 -03:00
Thibault Saunier
ae9b006d05 ges: Documentations fixes 2013-01-12 10:53:44 -03:00
Thibault Saunier
02652902f5 Reimplement the auto-transition feature
+ Actually implement unit tests
2013-01-10 18:53:15 -03:00
Thibault Saunier
5f69200a3a trackobject: Make the GESTrack (parent track) a GObject property 2013-01-10 18:09:23 -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
2c37986493 layer: Properly emit the notify signal when auto_transition changes 2013-01-10 12:25:53 -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
feb85a1456 Move LAYER_HEIGHT definition from -timeline-layer.c c to -internal.h 2013-01-10 11:11:31 -03:00
Thibault Saunier
6e33af939c asset-track-object: Minor doc fixing 2013-01-10 11:11:31 -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
e54f1292b6 track: Keep in cache the GSequenceIter so we get a faster acces to them 2013-01-03 12:23:02 -03:00
Thibault Saunier
c9e970eb36 formatter: Plug some leaks 2013-01-03 09:44:35 -03:00
Thibault Saunier
0ec78ea70b xmlformatter: Plug various leaks 2013-01-03 09:44:35 -03:00
Thibault Saunier
cf93469fa5 Misc nitpick fixing 2012-12-30 23:12:28 -03:00
Thibault Saunier
854228c4ea project: Plug various leaks. 2012-12-30 23:12:28 -03:00
Thibault Saunier
ac7dd69a71 meta-container: Plug various leaks 2012-12-30 23:12:28 -03:00
Thibault Saunier
bf1e966d25 asset: Do not allow proxying over the same currently proxied asset 2012-12-30 23:12:27 -03:00
Thibault Saunier
38bc983502 asset: Fix some leaks 2012-12-30 23:12:27 -03:00
Thibault Saunier
96d3afce6e asset: Avoid leaking the GParameter array and content 2012-12-29 19:38:50 -03:00
Thibault Saunier
f722938ebf assetfilesource: Fix some leaks 2012-12-29 19:38:31 -03:00
Thibault Saunier
a962f07087 Refrase formatters descriptions 2012-12-29 19:38:13 -03:00
Thibault Saunier
b6b6063be3 formatter: First check the extension when checking if can load URI 2012-12-29 19:38:13 -03:00
Thibault Saunier
7fa9eee785 project: Run the vmethod in first stage for the "loaded" signal
This is most probably what sublcasses will need
2012-12-29 19:38:13 -03:00
Thibault Saunier
e796a2aab2 tests: Fix misc issues
Now GST_CAPS_ANY is a singleton, it is not returning a newly created caps
anymore
2012-12-29 19:38:12 -03:00
Thibault Saunier
9f63e6514a Allow checking code coverage 2012-12-29 19:38:12 -03:00
Thibault Saunier
67da662276 Misc documentation fixes
Using "#" a in short_description screws the display
2012-12-29 19:38:12 -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
Thibault Saunier
27c36046fa Implement a GESAssetTimelineObject class
+ Make GESAssetFileSource a subclass of it
 + Remove ges_asset_filesource_get_supported_type as it is now in GESAssetTimelineObject
 + Remove the GES_META_TIMELINE_OBJECT_SUPPORTED_FORMATS as it is useless now
2012-12-29 19:36:53 -03:00
Thibault Saunier
6dfae640a2 Add a GESAssetTrackFileSource class and make use of it all around 2012-12-29 19:36:53 -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
313036aa15 Add a utility method to get the name of a GESTrackType
API:
    ges_track_type_name
2012-12-29 19:36:52 -03:00
Thibault Saunier
0f98adece8 timelinepipeline: Properly reset #GESTrack caps when switching back to playback 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
228c2fd569 Revert "Revert "ges: timeline-pipeline: Remove playsink send_event hack""
This reverts commit 094669391d.

Conflicts:
	ges/ges-timeline-pipeline.c
2012-12-29 19:36:52 -03:00
Thibault Saunier
5a56aef7c0 Misc documentation fixing 2012-12-29 19:36:52 -03:00
Thibault Saunier
4ab430877f formatter: Rework the _save_to_uri method to give more debug information 2012-12-29 19:36:51 -03:00
Thibault Saunier
f30e33d489 timeline-layer: Handle project when adding a GESTimelineObject directly 2012-12-29 19:36:51 -03:00
Thibault Saunier
063bc37a35 timeline-layer: Implement the Extractable type
We can imagine user implemts more Layer type, it could be usefull for formatters
to instanciate through a GESMaterial
2012-12-29 19:36:51 -03:00
Thibault Saunier
ad00c228c4 timeline-object: Reindent header file 2012-12-29 19:36:51 -03:00
Thibault Saunier
d32dc3fb20 docs: Minor documentation fixes 2012-12-29 19:36:51 -03:00
Thibault Saunier
1a06a2e63e internale: Add the G_GNUC_INTERNAL attribute to all internal methods 2012-12-29 19:36:51 -03:00
Thibault Saunier
07ceb2ca40 ges: Create assets for all GESTimelineStandardTransition on ges_init()
+ Add some testsuite
2012-12-29 19:36:50 -03:00
Thibault Saunier
38bcd59bfa ges: Make sure not to initialize twice 2012-12-29 19:36:50 -03:00
Thibault Saunier
7ecf33130a timelineobject: Add a method to add a GESAsset
+ Avoid to assume function arguments are correct before actually testing
      them in ges_timeline_object_add_track_object

API: ges_timeline_object_add_asset
2012-12-29 19:36:50 -03:00
Thibault Saunier
e47701b226 timeline-standard-transition: Override the GESExtractable implementation
Standard transition material have the vtype property as ID, it has the particularity
that the ID can be changed at runtime

	+ Implement tests to make sure it behaves properly
2012-12-29 19:36:50 -03:00
Thibault Saunier
c1110f2c85 timelinefilesource: Remove deprectated methods
Removed API:
	ges_timeline_filesource_get_supported_formats
2012-12-29 19:36:50 -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