Commit graph

317 commits

Author SHA1 Message Date
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
Thibault Saunier dfeb7afe85 GESTimelineObject: add private structure 2010-12-08 13:00:21 +01:00
Edward Hervey 2ff3d8ce12 Timeline: Add doc and more comments/fixmes 2010-11-27 18:12:49 +01:00
Brandon Lewis 33bc336a11 GESTimeline: add more fixmes 2010-11-27 18:08:20 +01:00
Brandon Lewis 27481c3c26 GESTimeline: implementation of save_to/load_from uri 2010-11-27 18:08:19 +01:00
Brandon Lewis abce2912b8 GESTimeline: set track state to NULL before removing from timeline 2010-11-27 17:55:50 +01:00
Brandon Lewis f521d31b40 GESTimeline: release timeline objects when a layer is removed 2010-11-27 17:55:49 +01:00
Brandon Lewis 9848c33e40 GESTimeline: allow adding tracks after layers 2010-11-27 17:23:23 +01:00
Brandon Lewis 170ec1e7ab GESTimeline: add existing timeline objects when adding layers 2010-11-27 17:16:36 +01:00
Brandon Lewis d2b2ac0d51 GESTimeline: remove layers before removing tracks in dispose () 2010-11-27 17:13:39 +01:00
Edward Hervey da806759d1 Timeline: Remove unneeded variable 2010-11-25 14:02:26 +01:00
Edward Hervey 9718bf1f1f GESTimeline: Change for updated GstDiscoverer API 2010-11-04 12:28:46 +01:00
Edward Hervey 6364e8ec2c all: Changes for discoverer being merged upstream
Along with a whole bunch of Makefile fixups
2010-09-23 18:42:48 +02:00
Edward Hervey a02a5c2320 Update for factorylist/convertframe being merged to gst core/base 2010-09-16 08:39:46 +02:00
Edward Hervey d76535bc59 Update to moved gst-convenience 2010-09-16 08:39:01 +02:00
Brandon Lewis cd7cefffa6 add create_track_objects 2010-09-01 16:56:01 +02:00
Brandon Lewis d6d7eb8398 call create_track_objects in timeline.c 2010-09-01 16:56:01 +02:00
Brandon Lewis c9eba54506 always support audio on still images 2010-08-13 11:50:31 +02:00
Brandon Lewis 598d883d53 don't set max duration on still images 2010-08-13 11:50:31 +02:00
Brandon Lewis 56c26dd853 set 'is-image' property true when source has an image stream type 2010-08-13 11:50:30 +02:00
Edward Hervey 9eedf06b7b GESTimeline: Remove all tracks/layers when being disposed 2010-06-09 13:52:35 +02:00
Brandon Lewis 93534c0500 Add missing documentation 2010-06-09 11:28:09 +02:00
Edward Hervey 8193fe5b4c GESTimeline: Freeze state of Tracks when doing an async state change 2010-05-25 16:36:57 +02:00
Edward Hervey ed86ff2f51 GESTimeline: Remove unused variable 2010-05-19 15:50:41 +02:00
Edward Hervey 1bb45a61a6 GESTimeline: Use GstDiscoverer for incomplete filesources
If a GESTimelineFileSource is added to a layer and:
* It doesn't have specified supported formats
* OR it doesn't have a specified maximum duration
* OR it doesn't have a specifed duration

Then we asynchronously send it to the GstDiscoverer.

If this happens, the state change of the timeline from READY to
PAUSED will happen asynchronously and be completed when everything
has been properly discovered.

Part 2 of GstDiscoverer integration
2010-05-19 12:36:11 +02:00
Mark Nauwelaerts 10be8697df GESTimeLine(PipeLine): remove additional unref 2010-04-20 13:47:07 +02:00
Edward Hervey c3741374da GESTimeline: New method ges_timeline_get_tracks 2010-04-20 13:47:03 +02:00
Edward Hervey dafe3d2bb4 GESTimeline: Properly iterate TrackObject lists when removing them 2010-03-13 15:56:57 +01:00
Edward Hervey dd9d3e420c ges/: Fix copyright in headers 2009-11-30 15:14:25 +01:00
Edward Hervey b54487fe11 Finish public API documentation 2009-09-16 12:37:45 +02:00
Edward Hervey 8c340412cd GESTimeline: Fix reference counting of tracks, add docs. 2009-09-14 19:48:05 +02:00
Edward Hervey dff4e20cb5 More documentation. Coverage now at 25% 2009-09-10 18:44:16 +02:00
Edward Hervey 29751a7d27 GESTimeline: Make sure added ghostpads are unique. 2009-09-09 15:51:52 +02:00
Edward Hervey 416323c649 GESTimeline: Track internal pads and tracks in sync.
Add method to get the Track associated to a ghostpad.
2009-09-08 19:44:03 +02:00
Edward Hervey 9f4f14722d Timeline: Implement remove_track, remove_layer, and _layer_object_removed_cb 2009-08-07 16:41:23 +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
Renamed from src/ges-timeline.c (Browse further)