Commit graph

391 commits

Author SHA1 Message Date
Thibault Saunier
42477a5ec3 ges: Move the notion of children properties to GESTimelineElement
Summary:
Deprecate the old GESTrackElement children property handling API.

New APIs:
  * ges_timeline_element_list_children_properties
  * ges_timeline_element_lookup_child
  * ges_timeline_element_get_child_property_by_pspec
  * ges_timeline_element_get_child_property_valist
  * ges_timeline_element_get_child_properties
  * ges_timeline_element_set_child_property_valist
  * ges_timeline_element_set_child_property_by_pspec
  * ges_timeline_element_set_child_properties
  * ges_timeline_element_set_child_property
  * ges_timeline_element_get_child_property
  * ges_timeline_element_add_child_property
  * ges_timeline_element_remove_child_property

Deprecated APIs:
  * ges_track_element_list_children_properties
  * ges_track_element_lookup_child
  * ges_track_element_get_child_property_by_pspec
  * ges_track_element_get_child_property_valist
  * ges_track_element_get_child_properties
  * ges_track_element_set_child_property_valist
  * ges_track_element_set_child_property_by_pspec
  * ges_track_element_set_child_properties
  * ges_track_element_set_child_property
  * ges_track_element_get_child_property
  * ges_track_element_add_child_property

Reviewers: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D40
2015-03-18 20:36:39 +01:00
Thibault Saunier
3e49850e6d timeline: Add API to find a layer with a specific priority in a timeline
Summary:
API:
  * ges_timeline_get_layer

Test Plan: Nan

Reviewers: mathieu.duponchelle
2015-03-18 20:36:38 +01:00
Thibault Saunier
f470222f3d Revert "ges: Move the notion of children properties to GESTimelineElement"
I got some trouble with

  arc land

and I wanted to push the 3 commit coming after this revert as 3
different commits but they ended up being all squash into one single
commit, which is clearly not cool for later bisecting and blaming.
Reverting that commit and re pushing those 3 commits as they were
supposed to be.

This reverts commit 9fe15ef435.
2015-03-18 20:33:48 +01:00
Thibault Saunier
9fe15ef435 ges: Move the notion of children properties to GESTimelineElement
Summary:
Deprecate the old GESTrackElement children property handling API.

New APIs:
  * ges_timeline_element_list_children_properties
  * ges_timeline_element_lookup_child
  * ges_timeline_element_get_child_property_by_pspec
  * ges_timeline_element_get_child_property_valist
  * ges_timeline_element_get_child_properties
  * ges_timeline_element_set_child_property_valist
  * ges_timeline_element_set_child_property_by_pspec
  * ges_timeline_element_set_child_properties
  * ges_timeline_element_set_child_property
  * ges_timeline_element_get_child_property
  * ges_timeline_element_add_child_property
  * ges_timeline_element_remove_child_property

Deprecated APIs:
  * ges_track_element_list_children_properties
  * ges_track_element_lookup_child
  * ges_track_element_get_child_property_by_pspec
  * ges_track_element_get_child_property_valist
  * ges_track_element_get_child_properties
  * ges_track_element_set_child_property_valist
  * ges_track_element_set_child_property_by_pspec
  * ges_track_element_set_child_properties
  * ges_track_element_set_child_property
  * ges_track_element_get_child_property
  * ges_track_element_add_child_property

Reviewers: Mathieu_Du

Reviewed By: Mathieu_Du

Differential Revision: http://phabricator.freedesktop.org/D40
2015-03-18 20:23:55 +01:00
Thibault Saunier
97c56da95b timeline: Add a method to easily check if a timeline is empty
API:
    + ges_timeline_is_empty
2014-12-06 10:34:19 +01:00
Thibault Saunier
c8b2ab8dbb ges: Add a method to get GES GOption group
This allow us to have global options to be
passed as arguments of the program to configure
GES behaviour

API:
  ges_init_get_option_group

https://bugzilla.gnome.org/show_bug.cgi?id=740715
2014-12-06 10:34:14 +01:00
Mathieu Duponchelle
f85c463b93 track: [API]: ges_track_update_restriction_caps.
+ And specify default restriction caps for audio tracks.
+ Add ges_track_set_restriction_caps to the sections, it
  was missing.

https://bugzilla.gnome.org/show_bug.cgi?id=740726
2014-12-05 22:12:11 +01:00
Thibault Saunier
24e2c88180 track-element: Add an API to list all set ControlBinding
API:
    ges_track_element_get_all_control_bindings
2014-11-10 16:22:40 +01:00
Thibault Saunier
11f9c6e108 Cleanup import of GNL and rename gnl to nle for Non Linear Engine
Conflicts:
	ges/ges-track-element.c
	gnl/Makefile.am
	gnl/common

Conflicts:
	ges/ges-internal.h
	ges/ges-track.c
	ges/ges-utils.c
	ges/nle/.gitignore
	ges/nle/gnlmarshal.list
	ges/nle/nle.h
	ges/nle/nlecomposition.c
	ges/nle/nlecomposition.h
	ges/nle/nleghostpad.c
	ges/nle/nleghostpad.h
	ges/nle/nleobject.c
	ges/nle/nleoperation.c
	ges/nle/nleoperation.h
	ges/nle/nlesource.c
	ges/nle/nlesource.h
	ges/nle/nletypes.h
	ges/nle/nleurisource.c
	ges/nle/nleurisource.h
	gnl/Makefile.am
	gnl/gnl.c
	gnl/gnl.h
	gnl/gnl/gnl.h
	gnl/gnl/gnlcomposition.c
	gnl/gnl/gnlcomposition.h
	gnl/gnl/gnlghostpad.c
	gnl/gnl/gnlghostpad.h
	gnl/gnl/gnlmarshal.list
	gnl/gnl/gnlobject.c
	gnl/gnl/gnloperation.c
	gnl/gnl/gnloperation.h
	gnl/gnl/gnlsource.c
	gnl/gnl/gnlsource.h
	gnl/gnl/gnltypes.h
	gnl/gnl/gnlurisource.c
	gnl/gnl/gnlurisource.h
	gnl/gnlcomposition.c
	gnl/gnlcomposition.h
	gnl/gnlghostpad.c
	gnl/gnlghostpad.h
	gnl/gnlmarshal.list
	gnl/gnlobject.c
	gnl/gnlobject.h
	gnl/gnloperation.c
	gnl/gnloperation.h
	gnl/gnlsource.c
	gnl/gnlsource.h
	gnl/gnltypes.h
	gnl/gnlurisource.c
	gnl/gnlurisource.h
	gnl/tests/check/gnl/common.c
	gnl/tests/check/gnl/common.h
	gnl/tests/check/gnl/complex.c
	gnl/tests/check/gnl/gnlcomposition.c
	gnl/tests/check/gnl/gnloperation.c
	gnl/tests/check/gnl/gnlsource.c
	gnl/tests/check/gnl/seek.c
	gnl/tests/check/gnl/simple.c
	tests/check/gnl/common.c
	tests/check/gnl/common.h
	tests/check/gnl/complex.c
	tests/check/gnl/gnlcomposition.c
	tests/check/gnl/gnloperation.c
	tests/check/gnl/gnlsource.c
	tests/check/gnl/seek.c
	tests/check/gnl/simple.c
	tests/check/nle/common.c
	tests/check/nle/common.h
	tests/check/nle/complex.c
	tests/check/nle/nlecomposition.c
	tests/check/nle/nleoperation.c
	tests/check/nle/nlesource.c
	tests/check/nle/seek.c
	tests/check/nle/simple.c
2014-10-31 11:58:12 +01:00
Thibault Saunier
b752eea818 timeline: Add a method to retrieve a pad from a track
It allows user to easily get the proxied pad from a track.

API:
  + ges_timeline_get_pad_for_track
2014-10-31 11:58:07 +01:00
Thibault Saunier
bb4cf62b62 clip: Rename top_effect_index to top_effect_index
Keeping the old method to not break the API but removing it from the
documentation as users should use the new method (which is the exact
same with a better naming)

https://bugzilla.gnome.org/show_bug.cgi?id=731248
2014-06-09 16:10:41 +02:00
Thibault Saunier
1fed9555cf ges:clip: Add a method to look for a list of TrackElement-s
+ Add unit tests to check it works properly.

API:
  + ges_clip_find_track_elements
2014-05-19 12:21:52 +02:00
Thibault Saunier
1adb9a0030 Add a notion of 'name' in GESTimelineElement
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:27:25 +02:00
Christoph Reiter
a66e674649 Include class related section documentation in the gir file.
g-ir-scanner includes section docs as class/interface docs if the section name is equal to the lowercase type name.
Since all the documentation is in section blocks, rename them to match the type names.

https://bugzilla.gnome.org/show_bug.cgi?id=727776
2014-04-07 22:13:25 +02:00
Lubosz Sarnecki
46c65aaaaf ges: multifilesrc support
* GESMultiFileSource class
* multifilesrc example
* Support multifile:// urls in uri asset
* start/stop index modification
* Doc

https://bugzilla.gnome.org/show_bug.cgi?id=719373
2014-03-19 18:32:48 +01:00
Thibault Saunier
bffc8a1d94 title-source: Rename ges_title_clip_set_backrgound_colour as appropriate
The method was badly called _clip_ instead of _source_ we have not release the API
so we still can change it.
2014-03-14 12:12:17 +01:00
Alexandru Băluț
2fbf26a57f Update the documentation to use Pitivi instead of PiTiVi 2014-02-27 09:54:41 +01:00
Thibault Saunier
c795ebfde2 docs: Fix documentation about copying timeline elements 2014-02-18 12:40:06 +01:00
Alexandru Băluț
df93acc581 ges-pipeline: Rename add_timeline to set_timeline
API BREAKAGE:
        - ges_pipeline_add_timeline
        + ges_pipeline_set_timeline
2014-02-04 14:17:47 +01:00
Thibault Saunier
d00283f309 track-element: Remove constructors for TrackElement from the API
Most of the time the user should not create GESTrackElements
himself, instead he should add a GESAsset to a layer, that will
result in a clip creation and the proper TrackElements to be
created and added to the tracks.

The case of effects and overlays is a bit different as the user should
create the TrackElement and add them to a clip.
2013-12-27 10:14:19 +01:00
Thibault Saunier
e7a45f0eef Remove GESSimplerLayer, that API should land into GESLayer in the end
The priority handling of clip is now handled by GESLayer itself, and
handling clip as a ordered list should be implemented in GESLayer itself
too, this way the user can decide to switch mode at any time instead of
2013-11-22 17:50:27 -03:00
Thibault Saunier
4c411761fd layer: Add an API to get the total duration of the layer
API:
    ges_layer_get_duration
2013-11-22 17:50:27 -03:00
Thibault Saunier
c0eae0c790 Revert "ges: Disable the Pitivi formatter"
This reverts commit e54ceff720.

Let's just keep it... it does not cost anything.
2013-09-22 23:06:22 +02:00
Thibault Saunier
0d0fc767ee pipeline: Finnish renaming from GESTimelinePipeline 2013-09-09 12:47:02 -03:00
Simon Corsin
a635e48d77 GES: Add GESVideoSource and GESAudioSource base classes
+ Update documentation.
  + Implements subclasses audio-uri-source and video-uri-source
2013-09-03 20:22:32 -04:00
Thibault Saunier
e54ceff720 ges: Disable the Pitivi formatter
It lacks to many feature and the code is too bad, desactivation until
someone comes and fix it... The code should be removed if it never
happens
2013-08-29 18:43:21 -04:00
Thibault Saunier
54b10dcbbf trackelement: Simplify the way we handle children properties
So subclass do not have to implement a new logic all the time, but
instead can use a simple method to add properties as needed.
2013-08-27 15:33:45 -04:00
Thibault Saunier
ef8c4b4b6b clip: Remove the ges_clip_fill_track method
Its was only use by the old custom source which is dead now.

API:
    Remove ges_clip_fill_track

https://bugzilla.gnome.org/show_bug.cgi?id=706855
2013-08-27 15:33:45 -04:00
Thibault Saunier
13aeda606a ges: Remove custom clip
If you want a custom clip then you have to subclass GESClip,
This class was pre historicall and only used for testing purposes, we
have GESTestClip for that.

https://bugzilla.gnome.org/show_bug.cgi?id=706855
2013-08-27 15:33:45 -04:00
Mathieu Duponchelle
2e1e88fb22 pipeline: add a get_mode method. 2013-08-21 08:06:59 -04:00
Thibault Saunier
5c8e2737b4 timeline: Add methods to get and set the snapping distance 2013-07-24 22:37:06 -04:00
Lubosz Sarnecki
9f0b0c26e3 Rename GESTimelinePipeline to GESPipeline
rename ges_timeline_pipeline methods to ges_pipeline
2013-07-21 21:42:42 -04:00
Thibault Saunier
a933d9540d ges: Implement a GESGroup class, subclass of GESContainer
The GESGroup class is used to group various GESContainer
together, it can contain either GESClips or GESGroup or both.
2013-07-09 16:47:00 -04:00
Thibault Saunier
bce084f4fd timeline-element: Add a method to get the topelevel parent of an element
API:
	ges_timeline_element_get_toplevel_parent
2013-07-09 22:13:42 +02:00
Thibault Saunier
9b14c001b0 ges: Implement GESAudioTrack and GESVideoTrack, subclasses of GESTrack 2013-06-23 17:38:57 -04:00
Thibault Saunier
40bfdd508a Finish renaming filesource to urisource 2013-05-28 18:27:31 -04:00
Anton Belka
7d999c5ab8 timeline: add auto-transition
API:
 ges_timeline_get_auto_transition
 ges_timeline_set_auto_transition
 GESTimeline::auto-transition
2013-05-09 18:54:56 -04:00
Thibault Saunier
b2b96c743d Rename GESTimelineLayer to GESLayer 2013-04-23 20:22:31 -03:00
Thibault Saunier
f5eb42c664 uri-clip-asset: Add "_class_" to a class method
API CHANGE:
	- ges_uri_clip_asset_set_timeout
	+ ges_uri_clip_asset_class_set_timeout
2013-04-21 21:13:00 -03:00
Thibault Saunier
cdd00ed207 ges-clip: Remove the unlocked TrackElement APIs
Remove APIs:
  ges_track_element_set_locked
  ges_track_element_is_locked

Those APIs where really not nice to use and were causing more issues
than solving them. If 2 time related properties of TimelineElement must
be different, then those element can *not* have the same parent.

Plus, with the new ges_container_group () API, we will recreate 1
GESClip containing the proper GESTimelineElements if it is the thing
to do.
2013-04-15 00:18:05 -03:00
Thibault Saunier
78d80c8ca4 track-element: Rename set_property_controlling_parameters set_control_source
+ Generate the documentation
2013-03-31 16:37:41 +02: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
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
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
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
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
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
0673739893 docs: Remove ges_clip_lock_track_elements
it does not exist anymore...
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
Thibault Saunier
736df5abfd docs: Add an little explanation about the class hierarchie rework 2013-03-14 16:20:00 -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
cb11f0d7c4 Add GESTimelineElement.{start, inpoint, duration, maxduration, priority} getters 2013-02-15 15:23:15 -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
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
Jean-François Fortin Tam
edd45bba78 docs: Clarify the distinction between Tracks and Layers 2013-02-10 17:05:43 -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
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