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
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
Thibault Saunier
74e00d6bc4
tests: integration: Remove the effect in test_seeking
...
It complexifies the test but this is not what we actually want in
that test
2013-07-17 12:05:26 -04:00
Thibault Saunier
a3454262dc
tests: Remove prints
...
And use GST_DEBUG and friends instead
2013-07-16 21:58:16 -04:00
Vasilis Liaskovitis
68363433c9
integration: some fixes for seek tests
...
- Use g_list_remove_link so that ordering of seeks is not mandatory
- use g_slice allocator for SeekInfo structs
- Fix leak in freeing seek list
- Check for NULL seeks at end of test, otherwise fail and free failed seeks
2013-07-16 21:32:40 -04:00
Vasilis Liaskovitis
393505b8aa
integration: add SeekInfo and get_position callback for seek tests
...
A Seekinfo structure consists of 2 fields:
- position: the position to seek to
- seeking_position: the position to perform the seek from
Seeks can be appended to a global list e.g. from code:
seeks = g_list_append (seeks, new_seek_info (0.2 * GST_SECOND, 0.6 * GST_SECOND));
seeks = g_list_append (seeks, new_seek_info (1.0 * GST_SECOND, 1.2 * GST_SECOND));
seeks = g_list_append (seeks, new_seek_info (1.5 * GST_SECOND, 1.8 * GST_SECOND));
The get_position callback checks the current position and attempts to perform
the corresponding seek with gst_element_seek_simple
2013-07-13 17:29:08 +02:00
Thibault Saunier
125141237f
tests: Simplifie integration tests using macros all around
2013-07-12 19:49:13 -04:00
Mathieu Duponchelle
b7755493e1
tests: Add integration tests
...
Those are test with real media files, they are run separetely from other
unit tests using the make check-integration command (can be done from
the toplevel directory)
2013-07-12 18:17:00 -04:00
Mathieu Duponchelle
669ce62ea2
test-utils: Add test file generation code.
2013-07-12 18:17:00 -04:00
Thibault Saunier
1e5bb2edf6
timelineelement: Make sure that we will never set a negative start
...
Currently we can end up overflowing the start of others child of our
parent, avoid that making sure we can set our start to what was
requested by the user before actually doing it
+ Add a test
2013-07-10 23:17:54 -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
4e51b347ff
tests: More safely check if objects where destroyed
...
Check if an object rthat has already been freed has been destroyed is not safe.
Add a helper function that uses weak reference to check that objects that are expected
to be destroyed when unrefing an object are actually destroyed.
2013-07-09 22:13:42 +02:00
Thibault Saunier
534bf481ed
clip: Handle child priority offsets when setting priority
2013-07-09 22:13:41 +02:00
Thibault Saunier
663f9884ef
ges: Move ges_clip_edit to GESContainer
...
This exact same method will be needed in GESGroup, so we should have the method
in the common parent class.
API:
- ges_clip_edit
+ ges_container_edit
+ GESContainer->edit vmethod
2013-07-09 22:13:41 +02:00
Thibault Saunier
dd7085d2ed
track: Update gaps only when commiting
...
We were still updating them at useless moments, do it only when absolutely needed.
2013-07-09 22:13:40 +02:00
Mathieu Duponchelle
b3fafa7928
tests: Add a audio/video mixing test.
2013-06-23 18:42:59 -04:00
Thibault Saunier
724a6c1bb5
smart-adder: Implement a GESSmartAdder bin element to be used as mixing element
...
..in audio tracks
2013-06-23 18:37:40 -04:00
Thibault Saunier
b87c800743
meta-container: Add a VOLUME default meta to layers
2013-06-23 18:28:53 -04:00
Thibault Saunier
55b7628382
ges: Make space in the GESTracks to be able to add mixing elements later
...
And update the tests
2013-06-23 18:28:52 -04:00
Thibault Saunier
d6a2f90a17
tests:effects: Make use of normal layers, and enhance tests
2013-06-23 17:39:05 -04:00
Thibault Saunier
9b14c001b0
ges: Implement GESAudioTrack and GESVideoTrack, subclasses of GESTrack
2013-06-23 17:38:57 -04:00
Thibault Saunier
f6038e3ad2
ges: Port to the new commit based API in GNL
...
The GNL API changed to go from a model where user could
enable/disable updates in the composition, which leaded to races
in many places, to a model where any positioning change in the
composition is not directly done but 'cached' and then the user
has to commit those changes so they become effective in the media
processing stack.
The new API in GES is pretty similare and is basically copy
pasting this new design.
We still need to see if in some context it would make sense to add
a mode where we would commit any changes ourself at the end of our
operation for basic use cases.
Removed APIs:
ges_timeline_enable_update
ges_timeline_is_updating
ges_track_enable_update
ges_track_is_updating
New APIs:
ges_track_commit
ges_timeline_commit
2013-06-23 16:33:33 -04:00
Thibault Saunier
73bdde653d
tests: Pass a ref of CAPS_ANY to ges_track_new
2013-05-30 14:14:56 -04:00
Thibault Saunier
b84ec5add6
tests: Add a basic test for pipeline state change
...
Add some test utils to create a pipeline
2013-05-29 17:22:20 -04:00
Thibault Saunier
302e0ed5d7
track: Update all gaps when timeline duration changed
...
And add a unit test to check that a gap is created in empty tracks
2013-05-28 18:27:31 -04:00
Thibault Saunier
40bfdd508a
Finish renaming filesource to urisource
2013-05-28 18:27:31 -04:00
Thibault Saunier
7300a71483
tests: Use the gst_check_run_suite helper everywhere
...
Using GST_CHECK_MAIN where appropriate
This way it is possible to specify an XML file to store tests results in
2013-05-27 22:11:10 -04:00
Anton Belka
086bbd3b38
tests: add project auto-transition test
2013-05-09 19:04:13 -04:00
Anton Belka
4db816d3e6
tests: add timeline auto-transition test
2013-05-09 18:54:56 -04:00
Thibault Saunier
54bf3c05c5
test-clip: Do not set black/silent by default
2013-04-28 01:44:55 +02:00
Thibault Saunier
b2b96c743d
Rename GESTimelineLayer to GESLayer
2013-04-23 20:22:31 -03:00
Thibault Saunier
b5c52a17ec
layer: Remove the "rate" property of ges_timeline_layer_add_asset
...
API:
- ges_timeline_layer_add_asset (layer, asset, start, inpoint, duration, rate, track_types);
+ ges_timeline_layer_add_asset (layer, asset, start, inpoint, duration, track_types);
2013-04-23 20:22:27 -03:00
Thibault Saunier
0c900f7bc6
tests: Check splitting a clip with several TrackElement
2013-04-19 19:05:43 -03:00
Mathieu Duponchelle
504ab966aa
tests:timelineedition: Add a simple trimming test
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
Mathieu Duponchelle
e655a75605
[Keyframes] Adds API to set a control binding on a track element, and the serialization code.
2013-03-31 16:31:26 +02:00
Thibault Saunier
f8e4a2dc7d
tests:effect: Do not re-add effect to the track
2013-03-28 19:02:06 +01:00
Thibault Saunier
cd188c851d
container: Let subclasses handle the height
...
+ Fix tests (starting using GESTestClip instead of GESCustomClip)
Now the height is not only growing, but can also go down, as the value
is just simply computed
API:
GESContainer::compute_height virtual method
2013-03-28 11:16:41 +01:00
Thibault Saunier
15c1481a56
test:basic: Do not add useless references, and minor improvements
2013-03-28 11:16:41 +01:00
Thibault Saunier
0df2d4f945
container: Make sure that the child exists when emiting the "child-removed" signal
...
+ Add a test
2013-03-28 11:16:41 +01:00
Thibault Saunier
fa5ed5111d
Misc cleaning
2013-03-21 22:17:10 -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
e260de2fa6
tests::uriclip: Use a real file to test still images
...
+ Make use of GESAssets
And do proper refactoring
2013-03-21 22:00:21 -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
f8334dba24
clip: Make it mandatory that a clip is in a layer to be splittable
...
Otherwize we will not be able to describe if the returned object has a floating reference or not, and this would screw the introspection.
2013-03-19 20:06:30 -03:00
Thibault Saunier
0767f08c7a
Always prefer gst_object_(un)ref over g_object_(un)ref
...
Making the refcount issue debugging easier
2013-03-18 12:48:41 -03:00
Thibault Saunier
aa740d86bd
Remove GESTrackElements from GESTracks when removing from a GESClip
...
... Not the other way round.
+ Add and enhance debugging info on the way
The user should not be responsible for removing the GESTrackElements from
GESTracks, instead, removing it from a GESClip should imply removing
it from any GESTrack it is in.
This patch changes sensibly the behaviour when we remove a
GESTrackElement from a GESTrack, not remoing it from the GESClip it is
in. *But*, users should never remove a GESTrackElement from a GESTrack
anyway. The testsuite has been updated to that new behaviour.
2013-03-15 11:17:06 -03:00
Thibault Saunier
7943bb510a
ges: Make GESTimeline responsible for adding GESTrackElement to GESTrack
...
+ Fix tests as necessary (Do not use agingtv as it can be "applied" on any TrackType
and is not representative of what happens IRL)
We already had the infrastructure so the user can have the control over where to add
the elements (through the "select-track-for-object" signal). We now make use of that
signal everytime a GESClip is added to a GESTimelineLayer. This make user's life easier,
and object responsability clearer.
2013-03-15 00:13:09 -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
c73ced52f8
container: Add a way to ungroup a GESContainer into several GESContainers
...
+ Add simple unit test
API:
GESContainerClass::ungroup vmethod
ges_container_ungroup
2013-03-15 00:13:09 -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
0888e5e25b
Rename object/tobj/trobj to clip or track_element as necessary
...
Not really complete but it is a good start!
2013-02-15 16:26:30 -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
4ddcfb642d
Finish renaming timeline object to clip
2013-02-15 15:23:15 -03:00
Thibault Saunier
b4e1131b70
Finish renaming track object to track element
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
a20f6cf5f3
Rename overlay_text to text_overlay
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
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
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
6f4315b75d
Rename GESStandardTransitionClip to GESTransitionClip
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
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
Tim-Philipp Müller
85663a840e
Fix various printf format issues in debug messages
2013-01-22 19:51:57 +00:00
Thibault Saunier
e071e3ed37
project: Track Asset that were loaded with error
2013-01-14 09:02:26 -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
02652902f5
Reimplement the auto-transition feature
...
+ Actually implement unit tests
2013-01-10 18:53:15 -03:00
Thibault Saunier
ab0d1b1724
tests: Add a macro for type checking
2013-01-10 11:18:46 -03:00
Thibault Saunier
b8400f7900
test: project: Fix various leaks
2013-01-03 09:44:35 -03:00
Thibault Saunier
e796a2aab2
tests: Fix misc issues
...
Now GST_CAPS_ANY is a singleton, it is not returning a newly created caps
anymore
2012-12-29 19:38:12 -03:00
Thibault Saunier
9f63e6514a
Allow checking code coverage
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
Volodymyr Rudyi
a00a4b1e2c
tests: Add testcase for GESAsset
2012-12-29 19:36:51 -03:00
Thibault Saunier
2cd77406e1
tests: Add GESProject tests
2012-12-29 19:36:50 -03:00
Thibault Saunier
9a2ba1f9f7
Check in TimelineObject what tracks are supported before creating TrackObject-s
...
We used to do it in TimelineFileSource which does not make sense.
At the same time we set AUDIO | VIDEO as default supported types as it is more
likely to be what subclasses support. If it is not the case, they need to
specify it as shown in ges-timeline-custom-timeline-source.c
+ Fix the tests accordingly
2012-12-19 18:59:51 -03:00
Thibault Saunier
346a01b4eb
tests: First filesource test port to assets
2012-12-19 18:59:50 -03:00
Thibault Saunier
9434f69aba
tests: implement GESMetaContainer tests
...
Co-Authored-By: Paul Lange <palango@gmx.de>
2012-12-19 11:45:38 -03:00
Thibault Saunier
7c3b587015
test-utils: Add some more utilities
2012-12-19 11:45:38 -03:00
Thibault Saunier
8b7b98a871
Minor fixes to the test utils
2012-12-19 11:45:38 -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
f8037f857d
trackobject: Properly rename get/set_child_property
...
We used to have a ges_track_object_get/set_child_property that was in
fact letting user set/get various properties at once, rename it to
get/set_properties, and implement:
API:
ges_track_object_get_child_property (GESTrackObject *object, const gchar
*property_name, GValue * value);
ges_track_object_set_child_property (GESTrackObject *object, const gchar
*property_name, GValue * value);
2012-12-19 11:44:26 -03:00
Tim-Philipp Müller
426fffb6c3
Fix FSF address
2012-11-04 00:25:20 +00:00
Thibault Saunier
35cae2c80c
tests: Move common code to test-utils
2012-09-25 15:10:35 +02:00