Thibault Saunier
7d0015b973
ges: Fix build for older GLib
...
The return type of g_hash_table_insert changed from void to boolean
2015-03-19 09:33:18 +01:00
Thibault Saunier
dd47def4e3
container: implement children property handling
2015-03-18 20:36:39 +01:00
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
f21132c3d5
ges: Remove all reference to already dead GESSimpleLayer
2015-03-13 10:02:39 +00:00
Luis de Bethencourt
8b4b2562a6
project: remove unnecessary dereference
...
g_clear_error() already dereferences the error pointer, no need to manually
check and do it.
CID #1257630
2015-03-05 13:53:32 +00:00
Tim-Philipp Müller
af3fd19637
ges-base-xml-formatter: fix setting of child properties
...
Make sure all child properties get set. GstStructureForeachFunc
takes a gboolean return value that decides whether to
continue or not.
2015-02-27 01:26:24 +00:00
Tim-Philipp Müller
7e9a2ef6c0
ges-meta-container: fix ges_meta_container_foreach()
...
Really call function on all metadata inside the container
instead of stopping randomly. GstStructureForeachFunc
takes a gboolean return value.
2015-02-27 01:24:30 +00:00
Tim-Philipp Müller
80909fb99a
ges-base-xml-formatter: fix property setting
...
GstStructureForeachFunc has a gboolean return value,
and the foreach function will stop unless we return
TRUE here. This meant it was potluck whether all
properties in the structure got set or not.
Fixes setting of text overlay clip text property
in particular.
https://bugzilla.gnome.org/show_bug.cgi?id=743874
2015-02-26 20:14:31 +00:00
Thibault Saunier
d0421639e0
ges: Always set ANY capsfeatures on tracks caps property
...
Summary:
We should not restrict the CapsFeatures on the track caps.
If someone want to do such a restriction he should add it to
the restriction caps directly
Test Plan: Run testsuite
Reviewers: mathieu.duponchelle
2015-02-20 14:10:56 +01:00
Mathieu Duponchelle
6321a9135f
ges-project: no need to commit an empty timeline.
...
Summary: Can lead to deadlocks if the user commits at the same time.
Test Plan: Ran make check, it worked
Reviewers: tsaunier
2015-02-19 18:24:39 +01:00
Luis de Bethencourt
7dd8dbab28
ges: initialize timeline_duration value
...
If priv->timeline is False the function does not set any value for
timeline_duration before using it in gap_new (). Initialize the value to aviod
unexpected behaviour.
CID #1268405
2015-02-10 10:29:39 +00:00
Thibault Saunier
f192ba3192
nlecomposition: Properly protect the children task
2015-02-06 10:06:05 +01:00
Mathieu Duponchelle
1bfe0b7ef3
Cleanly handle removing the last object in a composition
...
The strategy here is to seek at the new end of the composition. And in
GES we always add a 1ns long gap at the end of the tracks so that all
track have the exact same duration, and we have black frames when the
timeline is empty
2015-02-03 12:03:33 +01:00
Thibault Saunier
f3f27bd636
validate: Do not wrongly set clip duration for UriClips
...
That was making no sense at all....
2015-02-02 11:57:19 +01:00
Thibault Saunier
23c71e8222
validate: Properly expose the commit action as ASYNC
2015-02-02 11:57:03 +01:00
Thibault Saunier
0bb313030b
layer: Remove child from children list before emitting "child-removed"
2015-01-28 11:39:58 +01:00
Luis de Bethencourt
1efe0639de
ges: remove useless gpointer variable
...
gpointer useless is indeed useless since we can use GST_DEBUG_REGISTER_FUNCPTR
to avoid having to store the return of the GST_DEBUG_FUNCPTR registration.
CID #1265771
2015-01-26 18:25:02 +00:00
Luis de Bethencourt
8f79ee9230
ges: merge MIN() and MAX() into CLAMP()
...
Merge the usage of MIN() and MAX() into one CLAMP() function.
CID #1265770
2015-01-26 17:47:55 +00:00
Thibault Saunier
7a9d39fadb
ges: Make sure the GESTextOverlayClip is register on init
...
So it can be used when de serializing projects containing it.
https://bugzilla.gnome.org/show_bug.cgi?id=743406
2015-01-24 10:56:30 +01:00
Thibault Saunier
dc2f48a726
uri-asset: Check that the newly computed URI exist
...
No the one we know failed!
2014-12-12 12:07:01 +01:00
Thibault Saunier
7c6ad5e3ba
validate: Add an action type to load a project from its content
2014-12-12 12:07:01 +01:00
Thibault Saunier
752a2c6885
Revert "track: [API]: ges_track_update_restriction_caps."
...
This reverts commit e9544ce1d6
.
This commit should never have landed we decided we do not want to do
that.
2014-12-06 10:41:33 +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
78913931b2
ges: Recompute Group priority when one of its clip.layer change priority
...
And add a unit test for that case where it was previously failing
2014-12-06 10:34:18 +01:00
Mathieu Duponchelle
e9544ce1d6
track: [API]: ges_track_update_restriction_caps.
...
+ And specify default restriction caps for audio and video tracks.
+ Add ges_track_set_restriction_caps to the sections, it was missing.
https://bugzilla.gnome.org/show_bug.cgi?id=740726
2014-12-06 10:34:18 +01:00
Thibault Saunier
523e279e91
nlecomposition: Minor debug enhancements
2014-12-06 10:34:17 +01:00
Thibault Saunier
122dcbc190
pipeline: Expose playsink::video-filter and playsink::audio-filter
...
That can be used to add filters at the very end of the pipeline,
and one can think of adding a watchdog element in there for
example.
2014-12-06 10:34:17 +01:00
Thibault Saunier
068c20ff60
pipeline: Dot not check for chain->tee twice
2014-12-06 10:34:17 +01:00
Thibault Saunier
c7cceae128
validate: Avoid depending on not stable APIs
...
And cleanup includes
2014-12-06 10:34:17 +01:00
Thibault Saunier
452ebc1965
validate: Move to new action type registration API
2014-12-06 10:34:17 +01:00
Thibault Saunier
8e3790495f
validate: Add missing action execution printing
2014-12-06 10:34:16 +01:00
Thibault Saunier
b7daa03a6e
timeline-element: Properly handle setting name to NULL
2014-12-06 10:34:16 +01:00
Thibault Saunier
6367c96d7d
nlecomposition: Add a 'query-position' signal
...
In order to get the precise position of the pipeline, the only
way is to ask the 'application' to query the pipeline position and
use it.
2014-12-06 10:34:16 +01:00
Thibault Saunier
3b353be8ea
ges: Keep backward compatibility for relocated assets CLI
...
Meaning adding an API for user to add relacation URI paths
API:
ges_add_missing_uri_relocation_uri
2014-12-06 10:34:16 +01:00
Thibault Saunier
e5b57db7a2
ges: Add a method to pass argc/argv to GES at init time
...
Allowing user to set configuration actions without using
the GES GOptionGroup
https://bugzilla.gnome.org/show_bug.cgi?id=740717
2014-12-06 10:34:15 +01:00
Thibault Saunier
ac3cad47b6
validate: Expose GES Validate action
...
So other can also make use of those action outside
ges-launch itself
https://bugzilla.gnome.org/show_bug.cgi?id=740718
2014-12-06 10:34:15 +01:00
Thibault Saunier
dc0770bfa6
uri-asset: Ensure that UriAssets loaded with error are remembered
2014-12-06 10:34:15 +01:00
Thibault Saunier
55c88a726e
project: Add a method to create assets synchronously
...
This allows to create a add an asset to a project in a
synchronous way.
API:
ges_project_create_asset_sync
https://bugzilla.gnome.org/show_bug.cgi?id=740716
2014-12-06 10:34:15 +01:00
Thibault Saunier
58d525a4e7
ges: Add an init option to set media paths for moved assets
...
Allowing user to easily set a set of paths to look for moved
assets instead of needing the to re implement that logic
over and over.
https://bugzilla.gnome.org/show_bug.cgi?id=740714
2014-12-06 10:34:15 +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
Thibault Saunier
39a7ce6ca0
pipeline: Disable encoding format renegotiation when rendering
2014-12-06 10:34:14 +01:00
Mathieu Duponchelle
fb34c5056e
*source: new lines in xml break my parser.
...
+ So I removed them cause I'm clever
https://bugzilla.gnome.org/show_bug.cgi?id=740727
2014-12-05 22:12:12 +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
fd268f0387
element: Add a property allowing user to avoid serializing TimelineElements on demand
2014-11-10 17:03:46 +01:00
Thibault Saunier
5665e3abb1
xml-formatter: Serialize groups
...
They were not serialized until now.
That implies several changes:
* Override GESTimelineElement [start, inpoint, duration] properties in
GESGroup to ensure that those properties are not serialized as they
should not be.
* Rename GESBaseXmlContainer->clips field to
GESBaseXmlContainer->containers as the hashtable now contains Groups
https://bugzilla.gnome.org/show_bug.cgi?id=709148
2014-11-10 16:22:43 +01:00
Thibault Saunier
e36c4c2bf7
pipeline: Do not relink an already linked track
2014-11-10 16:22:43 +01:00
Thibault Saunier
08af3721bf
frameposition: In case sources have the same size as track, follow track size
...
For example if the size has been serialized in a file, but the user has
not personalized the size, we want that whenever the restriction caps
change the size, the video should take the size of the track
restriction caps.
We know need to keep track of the current positionner.size even if
setting through caps size changes.
https://bugzilla.gnome.org/show_bug.cgi?id=739527
2014-11-10 16:22:42 +01:00