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
Tim-Philipp Müller
426fffb6c3
Fix FSF address
2012-11-04 00:25:20 +00:00
Thibault Saunier
52edf1704d
formatter: Add GError everywhere needed in the API
...
We should give as much information as possible to the user when serialization/deserialization doesn't work.
2012-09-23 02:37:12 +02:00
Thibault Saunier
933d41f15d
timeline: Plug a leak in the movecontext code
2012-09-23 02:37:12 +02:00
Thibault Saunier
37e6cb43cf
Misc documentation fixing
2012-08-18 15:32:54 -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
7012280e48
timeline: Do not use meaningless offset values when snapping
2012-05-21 19:39:10 -04:00
Thibault Saunier
861a06e7ce
timeline: Move all callbacks to the callback section of the file
2012-05-19 13:57:36 -04:00
Thibault Saunier
c199c24507
timeline: Make the update property a GObject property
...
API: timeline::update property
2012-05-19 13:57:36 -04:00
Thibault Saunier
4c79afcbe4
timeline: Try to resnap at same snapping point before calculating new value
2012-05-19 13:57:36 -04:00
Thibault Saunier
9913d48e5c
timeline: Avoid to recalculate the moving context unecessarly
2012-05-19 13:57:35 -04:00
Thibault Saunier
5a29478c2d
timeline: Create a debug logging category for the timeline
2012-05-19 13:57:35 -04:00
Thibault Saunier
4c28e59046
timeline: Properly set TimelineFileSource-s duration and max duration
...
When we get the information of duration of files after discoverying them,
use that information to set the values on the TimelineFileSource-s
2012-05-19 13:57:35 -04:00
Thibault Saunier
1e3e7c5276
docs: Misc documentation fixing
2012-05-19 13:57:35 -04:00
Thibault Saunier
171bf8e627
timeline: Make use of our own knowledge of the timeline duration
...
Do not use each Track durations as it end going in loop as we have the Tracks
that need to know about timeline's duration to create or not gaps in the end and
then the timeline references on Tracks duration for its duration. We have this
information locally so just make proper use of it.
2012-05-19 13:40:00 -04:00
Thibault Saunier
ce8afba367
timeline: Add a method to get the timeline duration
...
+ Bind it in python
API: ges_timeline_get_duration
2012-05-19 13:39:45 -04:00
Thibault Saunier
406bc5fe28
Merge remote-tracking branch 'origin/0.10'
2012-05-10 14:56:34 -04:00
Thibault Saunier
20e7d4349c
timeline: Avoid segfault when debug logging
2012-05-08 19:43:51 -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
28d73a4441
timeline: Rework snapping signaling so it is easier to use
...
API: GESTimeline::snap-started signal
API: GESTimeline::snap-ended signal
(This code has not been released so we can still change the API)
2012-04-25 16:13:44 -04:00
Thibault Saunier
91b55adec2
timeline: Minor documentations fixes
2012-04-23 22:03:11 -04:00
Thibault Saunier
2fd5364927
ges: Add a timeline edition mode API
...
+ timeline: Add a snapping-distance property
+ Bump the GLib dependency to 2.28 in the mean time as we need some functions from GSequence that only landed
+ Update the testsuite accordingly
API: GESTimeline:snapping-distance property
API: ges_timeline_object_edit
API: ges_timeline_object_ripple
API: ges_timeline_object_ripple_end
API: ges_timeline_object_roll_start
API: ges_timeline_object_roll_end
API: ges_timeline_object_trim_start
API: ges_track_object_edit
API: GESEdge enum
API: GESEditMode enum
2012-04-23 22:03:11 -04:00
Thibault Saunier
4be360c4e5
Port to the new GMutex API
2012-04-20 14:18:34 -04:00
Thibault Saunier
672a162062
Merge branch '0.10'
...
Conflicts:
bindings/python/ges.defs
2012-04-07 22:31:23 -04:00
Thibault Saunier
ad5bc85516
ges: Calm logging when not created TrackObject on purpose
2012-04-07 22:24:55 -04:00
Thibault Saunier
979b9ac0b6
timeline: Restructurate the file separting methods/callbacks/API
2012-04-07 22:24:55 -04:00
Thibault Saunier
4b34d2bbb3
timeline: Plug a leak when calling enable_update
2012-04-07 22:24:55 -04:00
Thibault Saunier
7e7059d37d
timeline: Rework the append_layer method
...
ges_timeline_append_layer now creates a new layer, adds it to the timeline
and returns it
This code has not been released yet so we can break this API.
2012-04-07 22:24:55 -04:00
Thibault Saunier
1728704d09
Merge branch '0.10'
...
Conflicts:
bindings/python/ges.defs
2012-03-29 12:55:44 -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
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
Mark Nauwelaerts
2162c635e2
ges: support and handle no-more-pads in GESTimeline(Pipeline)
...
... to arrange for a clean READY to PAUSED state change transition.
Not doing so might have playsink reaching PAUSED prematurely
as one track prerolls, only to lose this state again (temporarily)
when the other track needs to preroll.
This is generally not nice or convenient, and particularly nasty
when trying to perform seek in PAUSED.
2012-01-30 11:35:13 +01:00
Edward Hervey
ee237ec523
ges: Various doc fixups and cleanups
2012-01-12 16:34:57 +01:00
Thibault Saunier
b844ff04de
ges: Add a "discovery-error" signal to GESTimeline
...
API: GESTimeline::discovery-error signal
2012-01-11 11:56:17 -03:00
Mathieu Duponchelle
93046aad6b
GES : remove transitions when needed
...
Conflicts:
ges/ges-timeline.c
2012-01-11 11:56:17 -03:00
Thibault Saunier
4acc711e52
ges: Add a maxduration property to TrackFileSource
...
API: GESTrackFileSource::maxduration property
2012-01-11 11:56:17 -03:00
Thibault Saunier
bc8c709303
ges: Some debug logging enhancements
2012-01-11 11:56:16 -03:00
Thibault Saunier
ffd196d06a
ges: Add a duration property to GESTimeline
...
API: GESTimeline:duration property
2012-01-11 11:56:16 -03:00
Thibault Saunier
5d35024cd3
docs: Update documentation
2012-01-11 11:56:16 -03:00
Mathieu Duponchelle
31688a9354
ges: don't reset the supported formats in the timeline when they're already set
...
My mom never told me goto was evil
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
Thibault Saunier
8d15025aae
ges: Add a ges_timeline_append_layer convenience method
...
API: ges_timeline_append_layer
2012-01-11 11:56:14 -03:00
Thibault Saunier
6e1a482a80
ges: add a function to move TimelineObject from a layer to another
...
API: ges_timeline_object_move_to_layer
API: ges_timeline_object_is_moving_from_layer
API: ges_timeline_object_set_moving_from_layer
2012-01-11 11:56:14 -03:00
Thibault Saunier
2bbcbab174
ges: Keep layers sorted by priorities in the timeline
2012-01-11 11:56:14 -03:00
Robert Swain
e288a6f460
timeline: simplify code to remove an object from the pendingobjects list
...
g_list_remove_all () can be used as a simplification as the private data to ges
timeline object are 1:1.
2012-01-06 09:16:09 -03:00
Robert Swain
fc97c16e7e
GESTimeline: Lock object discovery list
...
TimelineFileSource objects are asynchronously discovered with discoverer
with such objects being added to a pendingobjects list. If one were to
remove a layer before an object in said layer had been discovered, a
segfault could occur.
As such, management of the list has been made more robust with the
addition of a mutex and removal of the object from the pendingobjects
list upon layer removal.
2012-01-05 09:01:20 -03:00
Edward Hervey
7cdd9694ff
ges: Port to 0.11 API
2011-10-11 09:51:35 +02:00
Edward Hervey
904aabe653
ges: Use %NULL instead of #NULL
...
Reported by Stefan Kost:
"% is for constants, # is for objects/structs/types, @ is for parameters."
2011-05-09 14:24:26 +02:00
Vincent Penquerc'h
a35a29a810
ges: make uri strings const
2011-03-01 17:29:09 +01:00
Sebastian Dröge
818368ffcf
ges: Mark some private symbols static
...
https://bugzilla.gnome.org/show_bug.cgi?id=639218
2011-01-11 17:55:33 +01:00
Thibault Saunier
dc6290a5e2
docs: Document all the undocumented public functions
2011-01-10 15:14:45 +01:00
Edward Hervey
9f26d1a14e
Timeline: Fix documentation of return value
2011-01-10 11:12:38 +01:00
Thibault Saunier
98b51d8cd1
TimelineFileSource: Create instance private and move private variables to it
...
Fixe/Add getter and setters methods for those variables
Fixup documentation
2011-01-08 22:45:44 +01:00
Thibault Saunier
3d6764d6e9
Timeline: Add instance private and Move private variables to it
...
Fixe/Add getter methods to get those variables
Fixup documentation
2011-01-08 22:45:44 +01:00
Edward Hervey
785c9d9253
GESTimeline: minor cleanup
2010-12-20 12:03:48 +01:00
Edward Hervey
11887e0058
GESTimelineLayer: Subclass from GInitiallyUnowned
...
The floating reference will be owned by the Timeline
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
4028baaa5b
GESTimeline: Remove useless variable
2010-12-16 12:46:48 +01:00
Edward Hervey
3eadc4aa31
ges: Add more documentation and annotations
...
This should make GES gobject-introspection compliant now.
2010-12-15 19:40:11 +01:00
Edward Hervey
faec1e803d
docs: A round of updates
2010-12-08 15:36:55 +01:00