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
0b0bbdddd0
scenario: Add a scenario that edits a clip while the pipeline is paused
...
https://bugzilla.gnome.org/show_bug.cgi?id=729382
2014-05-02 16:58:42 +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
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
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
Thibault Saunier
7b96c50b4e
examples: Make project loading more generic
...
Pitivi formatter is deprecated, do not use it by default
2013-09-22 23:06:22 +02: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
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
0d0fc767ee
pipeline: Finnish renaming from GESTimelinePipeline
2013-09-09 12:47:02 -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
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
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
Thibault Saunier
70d5680748
pipeline: Add a GError argument
2013-04-18 18:48:19 -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