Thibault Saunier
ed9dcddef4
track: Make sure that new gaps are filled before removing the old ones
...
Currently we can end up having gaps in track as the first step of the
gap filling method removes currently set gaps.
2013-07-09 22:13:41 +02:00
Thibault Saunier
dd7085d2ed
track: Update gaps only when commiting
...
We were still updating them at useless moments, do it only when absolutely needed.
2013-07-09 22:13:40 +02:00
Thibault Saunier
724a6c1bb5
smart-adder: Implement a GESSmartAdder bin element to be used as mixing element
...
..in audio tracks
2013-06-23 18:37:40 -04:00
Thibault Saunier
7e25aaeccc
track: Implement infrastructure for mixing
2013-06-23 18:28:52 -04:00
Thibault Saunier
55b7628382
ges: Make space in the GESTracks to be able to add mixing elements later
...
And update the tests
2013-06-23 18:28:52 -04:00
Thibault Saunier
9b14c001b0
ges: Implement GESAudioTrack and GESVideoTrack, subclasses of GESTrack
2013-06-23 17:38:57 -04:00
Thibault Saunier
f6038e3ad2
ges: Port to the new commit based API in GNL
...
The GNL API changed to go from a model where user could
enable/disable updates in the composition, which leaded to races
in many places, to a model where any positioning change in the
composition is not directly done but 'cached' and then the user
has to commit those changes so they become effective in the media
processing stack.
The new API in GES is pretty similare and is basically copy
pasting this new design.
We still need to see if in some context it would make sense to add
a mode where we would commit any changes ourself at the end of our
operation for basic use cases.
Removed APIs:
ges_timeline_enable_update
ges_timeline_is_updating
ges_track_enable_update
ges_track_is_updating
New APIs:
ges_track_commit
ges_timeline_commit
2013-06-23 16:33:33 -04:00
Thibault Saunier
302e0ed5d7
track: Update all gaps when timeline duration changed
...
And add a unit test to check that a gap is created in empty tracks
2013-05-28 18:27:31 -04:00
Thibault Saunier
9ea53465d2
track: Update gaps when we set the timeline
2013-05-28 18:27:31 -04: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
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
Mathieu Duponchelle
0c92ca9b57
ges: add a track-object-added signal to GESTrack
...
API: GESTrack::track-object-added signal
2012-01-11 11:56:14 -03:00
Thibault Saunier
6e0d6ba9c5
GESTrack: add a duration property
...
User can connect to the notify::duration signal if needed
2011-05-19 21:58:50 +02:00
Thibault Saunier
776060452d
GESTrack: keep track of the properties GParamSpecs
2011-05-19 21:58:50 +02:00
Edward Hervey
75fbaa8e29
GESTrack: Make debug statement more useful
2011-05-07 13:43:10 +02:00
Thibault Saunier
dc6290a5e2
docs: Document all the undocumented public functions
2011-01-10 15:14:45 +01:00
Edward Hervey
752e6cfb75
GESTrackObject: Subclass from GInitiallyUnowned
...
The floating reference will be owned by the Track
2010-12-20 12:03:48 +01:00
Edward Hervey
8ca6f66f4c
GESTrackObject: Hide more variables and provide accessors for them
2010-12-16 15:00:46 +01:00
Edward Hervey
ed6b2ce4c4
GESTrack: Make more properties private
...
And ensure exported symbols are properly documented and have
argument checking.
2010-12-15 19:05:48 +01:00
Thibault Saunier
4c91a36f9a
ges: Add instance private structures
2010-12-08 12:54:02 +01:00
Brandon Lewis
293cc5c6ca
GESTrack: keep track of trackobjects and remove/release them in dispose
2010-11-27 17:23:30 +01:00
Brandon Lewis
babd78dbcd
move track type enum to ges-enums.{h,c}
2010-07-09 13:21:15 +02:00
Brandon Lewis
9b7c70c6c1
ges/ges-track.c: C90 fixes
2010-06-09 17:13:07 +02:00
Edward Hervey
14a6a5f31d
GESTrack: Make GESTrackType a flag, and add GES_TRACK_TYPE_UNKNOWN
...
Also add a bit more documentation about it.
2010-05-18 17:43:28 +02:00
Edward Hervey
e795bd056d
GESTrack: set caps on the composition
...
This will allow them to be propagated to all objects contained within
2010-04-20 13:47:07 +02:00
Edward Hervey
dd9d3e420c
ges/: Fix copyright in headers
2009-11-30 15:14:25 +01:00
Edward Hervey
ecef062c8c
GESTrack: The track steals the refcount to the caps. document that.
2009-09-14 19:48:16 +02:00
Edward Hervey
2a6f0c406c
GESTrack: document more
2009-09-14 19:47:37 +02:00
Edward Hervey
dff4e20cb5
More documentation. Coverage now at 25%
2009-09-10 18:44:16 +02:00
Edward Hervey
ae6ac876b1
GESTrack: Add TrackType enum and constructor property.
...
This allows us to speed up detection of track content type.
2009-09-08 18:49:22 +02:00
Edward Hervey
9fae1526bb
Track: Handle pads
2009-08-07 20:36:46 +02:00
Edward Hervey
c06e2a9550
Track: Add convenience methods for creating a raw Audio or Video track.
2009-08-07 20:32:29 +02:00
Edward Hervey
d8444f3844
Add 'caps' property on Track
2009-08-07 18:18:42 +02:00
Edward Hervey
f94f53f87c
Track: Add/Remove the GnlComposition from ourself.
2009-08-07 16:51:49 +02:00
Edward Hervey
b7b88e5826
Track: Implement remove_object()
2009-08-07 16:43:49 +02:00
Edward Hervey
fa56e7f0cb
ges: Remove unused private structures. We'll re-add on a per-case basis.
2009-08-06 19:59:25 +02:00
Edward Hervey
12777c8532
Add unit test system. Adjust GST_DEBUG usage.
2009-08-06 19:51:29 +02:00
Edward Hervey
c4649938fd
intermediary commit. Still need to fill in more blanks :(
2009-08-06 17:38:43 +02:00
Edward Hervey
081f4805ef
src/ => ges/
2009-08-06 11:24:04 +02:00