Commit graph

78 commits

Author SHA1 Message Date
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
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
ae80f08869 track: Do not remove a TrackElement from a NULL clip 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
0cb8c671ea timeline-element: Add a "timeline" property 2013-03-14 18:10:34 -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
b4e1131b70 Finish renaming track object to track element 2013-02-15 15:23:15 -03:00
Thibault Saunier
d69964fd2a Rename GESTrackObject to GESTrackElement 2013-02-15 14:42:05 -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
af326df8bd utilities: Make internal utilities instead of copy/pasting functions 2013-01-10 11:15:32 -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
cf93469fa5 Misc nitpick fixing 2012-12-30 23:12:28 -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
7c00521b4e track: Set the gap element creator function when tracks are using raw audio/video 2012-12-19 18:59:51 -03:00
Thibault Saunier
571e9c63d8 track: Implement the GESMetaContainer interface 2012-12-19 18:59:49 -03:00
Thibault Saunier
b0cc5c6b87 track: Force video/x-raw in raw gaps 2012-12-19 11:45:37 -03:00
Tim-Philipp Müller
426fffb6c3 Fix FSF address 2012-11-04 00:25:20 +00:00
Thibault Saunier
37e6cb43cf Misc documentation fixing 2012-08-18 15:32:54 -04:00
Thibault Saunier
70b343e121 track: Make sure to remove the proper TrackObject from the GSequence 2012-05-27 23:13:09 -04:00
Thibault Saunier
f32fdf13b7 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges.defs
	ges/ges-screenshot.c
	ges/ges-track-video-transition.c
2012-05-26 17:00:50 -04:00
Thibault Saunier
f84c183f63 track: Properly fill gaps
API: GESCreateElementForGapFunc Virtual method type
API: ges_track_set_create_element_for_gap_func
2012-05-19 13:57:35 -04:00
Thibault Saunier
b0e1b20cc3 track: Restructurate file so we have private method and API properly separeted 2012-05-19 13:40:00 -04:00
Thibault Saunier
c2bedb182e track: Use a GSequence to keep the sorted list of TrackObject-s
Use a GSequence instead of a GList to optimise the process.

Conflicts:

	ges/ges-track.c
2012-05-19 13:40:00 -04:00
Thibault Saunier
406bc5fe28 Merge remote-tracking branch 'origin/0.10' 2012-05-10 14:56:34 -04:00
Thibault Saunier
9ee94b3d40 track-object: Keep a reference to our gnlobject
Avoid refering to an object that doesn't exists and segfault in some cases.

We do not need to increase the reference to the gnlobj when the trackobject
is removed from a track because the TrackObject as its own reference and will
handle the disposal gracefully.

Add some guard around related APIs
2012-05-10 14:49:59 -04:00
Thibault Saunier
2e52fe15f0 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges.defs
	ges/ges-track-video-transition.c
2012-05-05 13:02:20 -04:00
Thibault Saunier
7a7690a9e0 Do no check if GLib >2.26 as we depend on GLib 2.28 2012-05-02 23:56:35 -04:00
Thibault Saunier
b1a8596256 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	bindings/python/ges-types.defs
	bindings/python/ges.defs
	bindings/python/ges.override
	configure.ac
	ges/ges-timeline.c
2012-04-25 17:54:36 -04:00
Thibault Saunier
7b0797c992 ges-track-object: Make possible to add a track already containing a gnlobject to a track 2012-04-23 20:25:07 -04:00
Thibault Saunier
1728704d09 Merge branch '0.10'
Conflicts:
	bindings/python/ges.defs
2012-03-29 12:55:44 -04:00
Volodymyr Rudyi
1dcb142307 ges-track: Set gnlobject state to NULL before disposing it
Work around a deadlock if setting state to NULL right before removing the
gnlobject from the composition.

https://bugzilla.gnome.org/show_bug.cgi?id=672751
2012-03-27 22:35:26 -04:00
Thibault Saunier
d5b4fa215e ges: Add a way to know whether a timeline is updating on each changes
+ Bind the new API in python

API: ges_timeline_is_updating
API: ges_track_is_updating
2012-03-27 22:33:57 -04:00
Volodymyr Rudyi
4148d605ad ges-track: Set gnlobject state to NULL before disposing it
Work around a deadlock if setting state to NULL right before removing the
gnlobject from the composition.

https://bugzilla.gnome.org/show_bug.cgi?id=672751
2012-03-27 22:33:00 -04:00
Tim-Philipp Müller
1f37aefdcd Remove ges-marshal.[ch] and use the generic marshaller 2012-03-12 15:46:42 +00:00
Tim-Philipp Müller
5d02075d9b Merge remote-tracking branch 'origin/master' into 0.11
Conflicts:
	bindings/python/Makefile.am
	bindings/python/ges-types.defs
	bindings/python/ges.defs
	bindings/python/ges.override
	bindings/python/gesmodule.c
	bindings/python/testsuite/test_textoverlay.py
2012-03-12 15:25:49 +00:00
Tim-Philipp Müller
1a48407337 track: add g-i annotation that ges_track_new() takes ownership of caps passed 2012-02-10 19:36:49 +00:00
Tim-Philipp Müller
7b7bf95268 ges: port to new raw audio/video caps
Completely untested, but more likely to work than the
existing code.
2012-02-10 19:35:28 +00:00
Edward Hervey
ee237ec523 ges: Various doc fixups and cleanups 2012-01-12 16:34:57 +01:00
Thibault Saunier
ce6edd94f4 ges: Disconnect the TrackObject when removed from a Track 2012-01-11 11:56:17 -03:00
Thibault Saunier
ef96f26e8a ges: Expand track background duration equal to timeline duration 2012-01-11 11:56:16 -03:00
Thibault Saunier
5d35024cd3 docs: Update documentation 2012-01-11 11:56:16 -03:00
Thibault Saunier
a9193def76 ges: Enhance some debug logging
Also make sure not to warn when it shouldn't
2012-01-11 11:56:16 -03:00
Thibault Saunier
14480b43f4 ges: Add a gnl background object to tracks
This is in order to support gaps in the timeline.
This is not the proper solution, we should make sure to fill gaps properly,
but for the time being, it makes the trick
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
e1d97cfee0 ges: modifies emission of the track/object-removed signal
Make it be emitted right before the track objects is removed so we don't end up
with a TrackObject that has already been freed
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
2c4d614cb1 ges: adds an enable_update function to the GESTimeline
Binds it in python

API: ges_timeline_enable_update
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
76f256f0bd ges : add a track-object(removed signal to the track
API: GESTrack::track-object-removed signal
2012-01-11 11:56:15 -03:00
Mathieu Duponchelle
9413d9f9e9 ges: Keep the track object list sorted in track 2012-01-11 11:56:14 -03:00
Mathieu Duponchelle
c191715608 ges: Add API to get the TrackObject-s contained in a Track
Sort the track_objects list

API: ges_track_get_objects
2012-01-11 11:56:14 -03:00