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
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
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
Thibault Saunier
18f14de105
tests: Remove integration tests, GstValidate is the way forward!
2014-12-06 10:34:18 +01:00
Mathieu Duponchelle
d109c37343
check/ges/track: add forgotten test file.
2014-12-05 22:19:32 +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
fedee39900
tests: Fix make distcheck
...
Some xges project are not used anymore and some new appeared, clean
that up in the Makefile.am
2014-11-10 17:24:11 +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
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
Thibault Saunier
79230eef1f
nle: Handle sending SEEK event recursively to our children
...
Instead of relying on it being implemented in core (as it is currently
not!)
2014-11-10 16:22:40 +01:00
Thibault Saunier
d3d1f85373
tests: Use audiomixer as an audio mixing element
...
Adder is the past!
2014-11-10 16:22:40 +01:00
Joris Valette
b89ffaea82
tests: project: Add children properties check
...
Rename test_project_add_keyframes into test_project_add_properties
2014-11-10 16:22:39 +01:00
Thibault Saunier
57eef236b5
tests: Use the new gst_check_objects_destroyed_on_unref function
2014-10-31 11:58:12 +01:00
Thibault Saunier
95223fd46b
Start taking advantage of the fact that NLE is in the same three as GES!
2014-10-31 11:58:12 +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
463626ceae
composition: Post messages on the bus when it updates itself
...
And properly set the seqnums of those messages so that the application,
parents have the exact information about what is going on and why.
2014-10-31 11:58:11 +01:00
Thibault Saunier
1d089e8c80
composition: No need for action signal to add and remove objects!
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
bdb74c5161
source: Remove cruft code to seek sources
...
We now seek on ready and thus do not need to do magic trying to seek
the source as soon as possible as we now do it even sooner than soon.
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:11 +01:00
Thibault Saunier
c94dfdc688
composition: Start kindergarten task when going to READY.
...
And stop it when going back to NULL.
Update tests.
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
95a2e3b570
composition: add a new failing test for finalize on commit.
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
123a940001
tests:composition: Fix some refcounts
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:09 +01:00
Mathieu Duponchelle
d7e7b047d0
tests: Use compositor instead of videomixer
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:09 +01:00
Thibault Saunier
ea055c8349
tests: Start fixing operation tests
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Mathieu Duponchelle
988116fbae
tests: Fix composition tests
...
We can not expect a seek event anymore as we are seeking in READY the elements
themselves
+remove actual sinks
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:09 +01:00
Mathieu Duponchelle
27d58a30af
composition: Fix toplevel seek event refcounting
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:08 +01:00
Thibault Saunier
0e663da588
composition: Teach the composition to seek same stack
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:08 +01:00
Thibault Saunier
c05898a169
composition: The ref the user gave us is our, and we give another to the bin when needed
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:08 +01:00
Mathieu Duponchelle
d73cab7186
tests: Minor cleanup
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:08 +01:00
Thibault Saunier
74c30001f9
composition: Add an internal bin where that contain used children
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:08 +01:00
Thibault Saunier
d8ca412cd9
composition: Add objects to the pending IO list in a GSource
...
This way we make sure we do not manipulate our children from another
thread than the dedicated one.
2014-10-31 11:58:08 +01:00
Thibault Saunier
5faa417583
composition: switch to using an action signal to add and remove objects.
2014-10-31 11:58:08 +01:00
Thibault Saunier
3c958af13c
Finish fixing tests
2014-10-31 11:58:08 +01:00
Mathieu Duponchelle
ab1d577a10
tests/common: disconnect commited handler
2014-10-31 11:58:08 +01:00
Mathieu Duponchelle
6dc52ca0d2
composition: Actually commit in on our own thread
...
Avoiding races
2014-10-31 11:58:08 +01:00
Mathieu Duponchelle
170ea10cde
tests: unref message correctly
2014-10-31 11:58:07 +01:00
Mathieu Duponchelle
c9bbb1d230
Don't be sync silly test
2014-10-31 11:58:07 +01:00
Thibault Saunier
550aaf522d
composition: Use a GstPad task to run the update pipeline thread
2014-10-31 11:58:07 +01:00
Mathieu Duponchelle
4cb834fa21
gnl: Add the srcpad directly to GnlObject
...
Starting from now we will not claim that we support GnlObject that have
several source pads as this is
1- Not true at all;
2- the design of priorities in the GnlComposition tree does not allow that;
3- Not very useful in most of the cases and it complexifies quite a lot the code
in the composition.
Conflicts:
configure.ac
tests/check/Makefile.am
2014-10-31 11:58:07 +01:00
Thibault Saunier
81a0ee66c1
Import GNL from 978332e7c4c3bba1949421d28b492540ab471450 'Release 1.4.0'
2014-10-31 11:58:07 +01:00
Thibault Saunier
a09caa3da2
tests: timelineedition: Init GES once at the beginning.
...
Avoiding to forget to init in a particular test and failling stupidly
2014-10-31 11:58:07 +01:00
Thibault Saunier
88430d70ea
test: backgroundsource: Disable tests that rely on nlecomposition internals
...
We can't rely on that, in particular now that it does not actually
add its children all the time but only when it is needed (and that
it has an internal bin where actual things happen).
2014-10-31 11:58:07 +01:00
Tim-Philipp Müller
d106bc24f7
tests: don't leak clips list in basic unit test
2014-10-26 20:24:31 +00:00
Thibault Saunier
03c87dbbc7
clip: Fix the ges_clip_set_position function
...
And enhance the new test
https://bugzilla.gnome.org/show_bug.cgi?id=731248
2014-06-09 16:10:41 +02:00
Thibault Saunier
2db5368b9d
tests: Check ges_clip_set_position behaviour
...
+ Minor fix to handle properly the feature when clip is not in any layer
https://bugzilla.gnome.org/show_bug.cgi?id=731248
2014-06-09 16:10:41 +02:00
Alexandru Băluț
6c717b27c6
clip: Add test for effects priorities
...
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
be23365899
ges: Do not forget to update the count when updating already used name
...
That could still lead to naming conflicts
2014-05-15 20:47:28 +02:00
Thibault Saunier
19df708207
ges: Avoid GESTimelineElement naming conflicts
...
When users (can be formatters) set timeline element names in the
default 'namespace' we need to update our counter to avoid setting
twice the same name on TimelineElements so afterward there is no
problem adding them in the GESTimeline
+ add a testcase to check that new code and fix leaks on the
existing testcases.
+ Sensibly enhance debugs
2014-05-14 22:29:44 +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
Thibault Saunier
9b050a54cd
container: Properly handle the case where we could not set parent
...
In this case we had a FIXME about reverting everything that was done,
implement that FIXME!
2014-03-15 20:01:48 +01:00