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
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
Thibault Saunier
f921277ac2
Rename TIMELINE_MODE_XXX to GES_PIPELINE_MODE_XXX so it corresponds to reality
...
First, it was not in any namespace, second the name of the enum is
GESPipelineFlags.
2014-02-17 12:37:57 +01:00
Thibault Saunier
922ce357ba
tests:integration: Fix a race about get_position being called before AYNC_DONE happens
2014-02-04 14:17:50 +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
94dbf20400
ges-asset: Do not forget to give a ref to the registry
...
+ Add test in the testsuite
+ Fix broken tests
https://bugzilla.gnome.org/show_bug.cgi?id=721111
2014-01-30 22:27:54 +01:00
Thibault Saunier
6e9e9338ae
Revert "ges: Always create a project to back a timeline"
...
This reverts commit 59d83f1a93
.
Conflicts:
tests/check/ges/backgroundsource.c
tests/check/ges/effects.c
tests/check/ges/overlays.c
tests/check/ges/simplelayer.c
tests/check/ges/text_properties.c
tests/check/ges/titles.c
2013-11-28 15:12:15 -03: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
59d83f1a93
ges: Always create a project to back a timeline
...
And fix all the tests as we need to wait for the project to be loaded
to check the reference count of the timeline (as we keep a ref on the
timeline in project to later emit "loaded" on idle).
2013-11-09 10:35:12 -03:00
Thibault Saunier
28775dad59
tests: Make sure not to test freed objects type
2013-09-22 23:06:22 +02:00
Joris Valette
9bb8479db8
tests: timelineedition: cast start and duration values as guint64
2013-09-14 00:37:30 -03:00
Mathieu Duponchelle
667b33cb96
tests: integration: set restriction_caps on the video encoding profile
...
We need this cause now videomixer renegotiates downstream.
2013-09-10 13:41:23 -03:00
Thibault Saunier
1a674bb26c
tests: timelineedition: Minor cleanups
2013-09-08 19:27:04 -03:00
Thibault Saunier
c4c26f8748
ges: Handle trimming in groups
...
This was broken, clips where moving all around, make it behave properly.
2013-09-07 12:55:58 -04:00
Simon Corsin
bd30bbd4a8
tests: timelineedition: Add a test_scaling.
...
It will check that the clip updates its size correctly.
2013-09-03 20:57:31 -04:00
Simon Corsin
805d5dfc07
test-utils: Adds a utility function to quickly check the timeline.
2013-09-03 20:57:31 -04: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
8458d0220e
tests: Make use of g_assert_no_error when it makes sense
2013-08-27 19:12:26 -04:00
Thibault Saunier
b9ce7db53d
tests: Let use 20 sec to execute tests
2013-08-27 18:40:55 -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
Thibault Saunier
34abecc7db
integration: Add titles test
2013-08-27 15:33:44 -04:00
Tim-Philipp Müller
4318f683d9
tests: fix NULL pointer dereference, ternary operator silliness and message type use
2013-08-24 18:21:26 +01:00
Thibault Saunier
e2385bcb2f
tests: Give more debugging info when samples could not be generated
2013-08-24 11:40:47 -04:00
Thibault Saunier
cf96e4145e
tests: Fix make distcheck
...
We need to make sure that we can write to the directory where we save
project files, so doing it in the tmp folder.
+ Properly dist test data files
2013-08-24 03:04:55 -04:00
Mathieu Duponchelle
ce57a0aacf
integration: make test_basic be two concatenated clips.
2013-08-21 08:02:58 -04:00
Thibault Saunier
eab86c2913
tests: integration: Rework the way we handle seeking while fully paused
...
The idea is that we should first play until the time we reach the first
position, at that point we PAUSE the pipeline, then, afterward do the
seeks as asked.
If we get the position before the ASYNC DONE, just accept it.
2013-08-17 11:52:30 +02:00
Thibault Saunier
4ca7a4ef91
tests: integration: PNG file was renamed to png.png
2013-08-17 11:52:30 +02:00
Thibault Saunier
82ae3de5b6
tests: integration: Add a list tests only option
...
Also add an empty filed in the GOptionEntry array avoiding segfaults
2013-08-17 11:52:30 +02:00
Thibault Saunier
f8a9987082
tests: integration: Only use 2 layers for the mixing for now
...
+ Call the TSuite "integration" instead of "render"
2013-08-04 17:36:21 +02:00
Thibault Saunier
f1650b9f2d
tests: check: All assets moved to assets/
2013-08-04 16:27:53 +02:00
Thibault Saunier
c5c19cf412
tests: integration: Make it possible to list all avalaible tests
...
You can not use make check-integration --list-tests, you have to use
./integration --list-tests instead
2013-08-03 17:01:22 +02:00
Thibault Saunier
786a8f5b8a
Fix compilation
2013-08-01 18:14:45 +02:00
Thibault Saunier
54f152aea7
tests: integration: Avoid leak
2013-08-01 17:56:29 +02:00
Thibault Saunier
4d8e9bd53c
tests: integration: Do not forget to set encoding profiles
2013-08-01 17:47:50 +02:00
Vasilis Liaskovitis
c36fa7de58
integration: add mixing tests
...
Add a new test that creates a given number of layers. Each layer has the same
assets / clips shifted by a different amount in the timeline. Alpha and volume
properties are different for each layer. This test is similar to the mixer
example in:
http://gist.github.com/MathieuDuponchelle/5736992#file-mixit-py
We should be able to add more clips to each layer, but this example test only
tests mixing 1 clip across 4 layers.
Conflicts:
tests/check/ges/integration.c
2013-08-01 15:32:33 +02:00
Mathieu Duponchelle
5022b10d66
tests/integration: display test name when running it.
2013-08-01 15:32:33 +02:00
Mathieu Duponchelle
64bebd5867
tests/integration: add an asset directory.
2013-08-01 15:16:28 +02:00
Vasilis Liaskovitis
db72c59e1f
integration: add seek tests to paused pipeline (no playing)
...
This second set of seeking tests performs the seeks in a PAUSED
pipeline. After all seeks are successful, the pipeline is resumed so that the
test does not timeout.
Conflicts:
tests/check/ges/integration.c
2013-08-01 11:04:58 +02:00
Vasilis Liaskovitis
a176ee153c
integration: add paused pipeline seek tests
2013-08-01 11:04:58 +02:00
Mathieu Duponchelle
ea1d7edc8d
tests/integration: adds image_filename in the test generation macro
2013-08-01 11:04:57 +02:00
Thibault Saunier
e8b3eaf0f2
tests: integration: Let the user mute the tests when needed
...
Add an environment variable so the user can make sur that
integration tests use fakesinks instead of real sinks
2013-07-23 19:37:54 -04:00
Thibault Saunier
cd83c0c8e5
tests: Make sure we can have the results into an XML file
2013-07-22 20:06:25 -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
b5795da61c
tests: integration: Add some pipeline dumps
...
When we go to PLAYING, or when we get an error on the bus
+ Activate the hack so that we dump the pipeline on first buffer
pushed by the smart adder
2013-07-21 21:27:16 -04:00
Thibault Saunier
2e3a300aa6
tests: integration: Add video/audio only basic tests
2013-07-21 21:27:16 -04:00
Thibault Saunier
e981c171b1
tests: integration: Give some more information to user on errors
2013-07-21 21:27:16 -04:00
Thibault Saunier
086c3af0ad
tests: intergration: Add some more encoding profiles
2013-07-21 21:27:16 -04:00
Thibault Saunier
775d25eb62
tests: integration: Give the user more details about failure when checking transcoded file
2013-07-21 21:26:35 -04:00
Thibault Saunier
066c9ea5b7
tests: integration: Be more precise with namings
...
Fully define formats in the namings
+ Add an mp3 + h264 in mov test
2013-07-21 21:26:35 -04:00
Thibault Saunier
1d40731e9d
tests: integration: Refactor and make easier to add encoding profiles
2013-07-21 21:26:25 -04:00
Thibault Saunier
528ad72604
tests: integration: Add audio/video only seeking tests
2013-07-17 12:31:02 -04:00