Simon Corsin [Sat, 17 Aug 2013 12:57:15 +0000 (14:57 +0200)]
ges-track: Add the notion of resriction caps to GESTrack
This way we can let the user determine what he want to come out of the
track.
API:
- ges_track_set_caps (The track caps are now construct only)
+ ges_track_set_restriction_caps
+ ges_track_get_restriction_caps
+ GESTrack.props.restriction_caps
Simon Corsin [Tue, 9 Jul 2013 13:31:15 +0000 (15:31 +0200)]
GES: Add GESVideoSource and GESAudioSource base classes
+ Update documentation.
+ Implements subclasses audio-uri-source and video-uri-source
Simon Corsin [Wed, 3 Jul 2013 16:27:00 +0000 (18:27 +0200)]
testsource: Handle child properties as child properties
Makes $make check pass.
Standardizes property handling.
Simon Corsin [Tue, 2 Jul 2013 09:12:00 +0000 (11:12 +0200)]
source: Make a ges_source_create_topbin internal helper method
Simon Corsin [Thu, 27 Jun 2013 12:20:00 +0000 (14:20 +0200)]
ges-source: Move common elements handling to the base class
+ And port all the subclasses
Thibault Saunier [Mon, 2 Sep 2013 17:57:15 +0000 (13:57 -0400)]
container: Do not forget to initialize the timeline before using it
Tim-Philipp Müller [Sun, 1 Sep 2013 23:19:30 +0000 (00:19 +0100)]
ges-xml-formatter: use g_ascii_dtostr() instead of messing with setlocale()
Libraries shouldn't use setlocale().
Mathieu Duponchelle [Sat, 31 Aug 2013 22:46:45 +0000 (00:46 +0200)]
xml-formatter: set LC_NUMERIC locale before saving values.
Avoiding to save ',' instead of '.' for floats in certain locals
Mathieu Duponchelle [Thu, 29 Aug 2013 21:45:56 +0000 (23:45 +0200)]
video-transition: Keep switch transition type simple
Also make sure there is a proper default value for transition type.
Thibault Saunier [Sat, 31 Aug 2013 00:32:56 +0000 (20:32 -0400)]
launch: Simplify encoding profile description
Use a 'simple' synthax to describe encoding profiles
Thibault Saunier [Sat, 31 Aug 2013 00:03:16 +0000 (20:03 -0400)]
launch: Make it easier to render project
Now providing an output uri is enough to tell that you want to render.
It will use project rendering infos when possible, missing a way to
specify which info if various are disponnible (we use the first one
right now).
+ Make options more logical now, -l mean --load, and -r means repeat
Thibault Saunier [Fri, 30 Aug 2013 22:45:31 +0000 (18:45 -0400)]
timeline: No autotrans between elements in same toplevel container
This makes no sense, we ended up creating/removing tons of transition
while moving groups
Thibault Saunier [Thu, 29 Aug 2013 15:10:33 +0000 (11:10 -0400)]
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
Mathieu Duponchelle [Wed, 28 Aug 2013 17:56:29 +0000 (19:56 +0200)]
ges-clip: when a child, is removed, disconnect from its notifies.
Thibault Saunier [Tue, 27 Aug 2013 23:12:26 +0000 (19:12 -0400)]
tests: Make use of g_assert_no_error when it makes sense
Thibault Saunier [Tue, 27 Aug 2013 22:40:55 +0000 (18:40 -0400)]
tests: Let use 20 sec to execute tests
Thibault Saunier [Tue, 27 Aug 2013 03:31:14 +0000 (23:31 -0400)]
trackelement: Simplify the way we handle children properties
So subclass do not have to implement a new logic all the time, but
instead can use a simple method to add properties as needed.
Thibault Saunier [Mon, 26 Aug 2013 23:26:08 +0000 (19:26 -0400)]
clip: Remove the ges_clip_fill_track method
Its was only use by the old custom source which is dead now.
API:
Remove ges_clip_fill_track
https://bugzilla.gnome.org/show_bug.cgi?id=706855
Thibault Saunier [Mon, 26 Aug 2013 23:15:08 +0000 (19:15 -0400)]
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
Thibault Saunier [Mon, 26 Aug 2013 23:25:20 +0000 (19:25 -0400)]
Remove acinclude.m4 as we do not use it
and it is anyway removed by autogen.sh
Thibault Saunier [Mon, 26 Aug 2013 22:56:49 +0000 (18:56 -0400)]
integration: Add titles test
Thibault Saunier [Mon, 26 Aug 2013 21:41:14 +0000 (17:41 -0400)]
python: Do not initialize GES at import time
Tim-Philipp Müller [Sat, 24 Aug 2013 17:21:26 +0000 (18:21 +0100)]
tests: fix NULL pointer dereference, ternary operator silliness and message type use
Thibault Saunier [Sat, 24 Aug 2013 15:39:11 +0000 (11:39 -0400)]
tests: Give more debugging info when samples could not be generated
Thibault Saunier [Sat, 24 Aug 2013 06:41:07 +0000 (02:41 -0400)]
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
Mathieu Duponchelle [Tue, 13 Aug 2013 16:05:55 +0000 (18:05 +0200)]
trackelement: split bindings correctly.
Mathieu Duponchelle [Tue, 13 Aug 2013 15:57:33 +0000 (17:57 +0200)]
trackelement: update control bindings correctly.
When duration or inpoint change, we need to remove edge control points,
and set new control points with interpolated values.
Also when duration == 0, we need to remove all control points, as otherwise
the controller will raise !is_end assertions.
It's the duty of the application to set keyframes back when duration gets
!= 0 again.
Mathieu Duponchelle [Mon, 12 Aug 2013 19:25:31 +0000 (21:25 +0200)]
container: resort children after prepending an element.
Mathieu Duponchelle [Mon, 12 Aug 2013 14:13:40 +0000 (16:13 +0200)]
timeline: when there are no objects anymore, set duration to 0.
Mathieu Duponchelle [Mon, 12 Aug 2013 13:01:53 +0000 (15:01 +0200)]
ges-audio-track: Change contructor prototype.
We return an AudioTrack.
Mathieu Duponchelle [Sun, 11 Aug 2013 18:06:49 +0000 (20:06 +0200)]
pipeline: add a get_mode method.
Mathieu Duponchelle [Wed, 7 Aug 2013 17:37:49 +0000 (19:37 +0200)]
basexmlformatter: Only set timeline auto transitions when done loading.
Mathieu Duponchelle [Wed, 7 Aug 2013 14:12:27 +0000 (16:12 +0200)]
integration: make test_basic be two concatenated clips.
Thibault Saunier [Tue, 20 Aug 2013 12:22:24 +0000 (08:22 -0400)]
formatter: Plug leaks in the can_save_to_uri method
https://bugzilla.gnome.org/show_bug.cgi?id=679941
Thibault Saunier [Mon, 19 Aug 2013 19:13:48 +0000 (15:13 -0400)]
pipeline: Remove the dynamic lock
We actually do not need it has everywhere where we would need it we are
already locked against the timeline.dyn_lock, we need to make sure it is
always the case in the future.
The hierarchy of the mutex was wrong and could possibly lead to
deadlocks
Thibault Saunier [Mon, 19 Aug 2013 19:12:48 +0000 (15:12 -0400)]
formatter: Remove the unsed can_save_uri vmethod
This virtual method does not make much sense right now, we might need it
again later, but most probably with a sensibly different API so removing
it for now.
Paul Lange [Fri, 20 Jul 2012 12:19:01 +0000 (14:19 +0200)]
ges-formatter: Check if directory of URI is writeable
https://bugzilla.gnome.org/show_bug.cgi?id=679941
Thibault Saunier [Tue, 6 Aug 2013 16:35:24 +0000 (18:35 +0200)]
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.
Thibault Saunier [Sun, 4 Aug 2013 23:07:36 +0000 (01:07 +0200)]
tests: integration: PNG file was renamed to png.png
Thibault Saunier [Sun, 4 Aug 2013 15:46:33 +0000 (17:46 +0200)]
tests: integration: Add a list tests only option
Also add an empty filed in the GOptionEntry array avoiding segfaults
Lubosz Sarnecki [Fri, 2 Aug 2013 12:23:13 +0000 (14:23 +0200)]
build: add subdir-objects to AM_INIT_AUTOMAKE
Fixes warnings with automake 1.14
https://bugzilla.gnome.org/show_bug.cgi?id=705350
Thibault Saunier [Sun, 4 Aug 2013 15:35:20 +0000 (17:35 +0200)]
tests: integration: Only use 2 layers for the mixing for now
+ Call the TSuite "integration" instead of "render"
Thibault Saunier [Sun, 4 Aug 2013 14:14:42 +0000 (16:14 +0200)]
tests: check: All assets moved to assets/
Thibault Saunier [Sat, 3 Aug 2013 15:01:22 +0000 (17:01 +0200)]
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
Thibault Saunier [Fri, 2 Aug 2013 12:16:26 +0000 (14:16 +0200)]
timeline: Add support for group-id in the stream-start event
Thibault Saunier [Thu, 1 Aug 2013 16:14:36 +0000 (18:14 +0200)]
Fix compilation
Thibault Saunier [Thu, 1 Aug 2013 15:56:16 +0000 (17:56 +0200)]
tests: integration: Avoid leak
Thibault Saunier [Thu, 1 Aug 2013 15:47:50 +0000 (17:47 +0200)]
tests: integration: Do not forget to set encoding profiles
Vasilis Liaskovitis [Thu, 18 Jul 2013 21:09:51 +0000 (23:09 +0200)]
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
Mathieu Duponchelle [Thu, 1 Aug 2013 09:31:16 +0000 (11:31 +0200)]
tests/integration: display test name when running it.
Mathieu Duponchelle [Thu, 1 Aug 2013 09:32:44 +0000 (11:32 +0200)]
tests/integration: add an asset directory.
Vasilis Liaskovitis [Mon, 22 Jul 2013 23:50:28 +0000 (01:50 +0200)]
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
Vasilis Liaskovitis [Thu, 18 Jul 2013 22:40:00 +0000 (00:40 +0200)]
integration: add paused pipeline seek tests
Mathieu Duponchelle [Tue, 16 Jul 2013 17:42:53 +0000 (19:42 +0200)]
tests/integration: adds image_filename in the test generation macro
Thibault Saunier [Sat, 27 Jul 2013 08:18:30 +0000 (10:18 +0200)]
project: Make sure error-loading-asset is emited when needed
In case ges_project_try_updating_id would be called from outside ges-project the signal
was not emitted, change that.
+ Add some debugging
Thibault Saunier [Thu, 25 Jul 2013 02:37:06 +0000 (22:37 -0400)]
timeline: Add methods to get and set the snapping distance
Thibault Saunier [Wed, 24 Jul 2013 18:26:18 +0000 (14:26 -0400)]
clip: Fix the spliting method
We should make sure that the newly created trackelement are inside
a container when adding them to as this is needed for GESUriClip-s.
Also do not try to set a child property on the TrackElement itself.
https://bugzilla.gnome.org/show_bug.cgi?id=703152
Thibault Saunier [Tue, 23 Jul 2013 23:20:34 +0000 (19:20 -0400)]
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
Thibault Saunier [Tue, 23 Jul 2013 00:06:25 +0000 (20:06 -0400)]
tests: Make sure we can have the results into an XML file
Thibault Saunier [Mon, 22 Jul 2013 01:41:13 +0000 (21:41 -0400)]
pipeline: Check that the profile could actually be set on the encodebin
Setting the profile on an encodebin can fail, and if that happens, there
will be no profile set at all, we should return FALSE in GESPipeline
when that happens
Lubosz Sarnecki [Mon, 1 Jul 2013 14:27:54 +0000 (16:27 +0200)]
Rename GESTimelinePipeline to GESPipeline
rename ges_timeline_pipeline methods to ges_pipeline
Thibault Saunier [Thu, 18 Jul 2013 02:48:17 +0000 (22:48 -0400)]
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
Thibault Saunier [Thu, 18 Jul 2013 02:47:31 +0000 (22:47 -0400)]
tests: integration: Add video/audio only basic tests
Thibault Saunier [Thu, 18 Jul 2013 00:54:20 +0000 (20:54 -0400)]
tests: integration: Give some more information to user on errors
Thibault Saunier [Wed, 17 Jul 2013 22:34:22 +0000 (18:34 -0400)]
tests: intergration: Add some more encoding profiles
Thibault Saunier [Wed, 17 Jul 2013 20:09:29 +0000 (16:09 -0400)]
tests: integration: Give the user more details about failure when checking transcoded file
Thibault Saunier [Wed, 17 Jul 2013 20:06:09 +0000 (16:06 -0400)]
tests: integration: Be more precise with namings
Fully define formats in the namings
+ Add an mp3 + h264 in mov test
Thibault Saunier [Wed, 17 Jul 2013 17:06:05 +0000 (13:06 -0400)]
tests: integration: Refactor and make easier to add encoding profiles
Thibault Saunier [Wed, 17 Jul 2013 16:31:02 +0000 (12:31 -0400)]
tests: integration: Add audio/video only seeking tests
Thibault Saunier [Wed, 17 Jul 2013 16:05:26 +0000 (12:05 -0400)]
tests: integration: Remove the effect in test_seeking
It complexifies the test but this is not what we actually want in
that test
Thibault Saunier [Wed, 17 Jul 2013 01:58:16 +0000 (21:58 -0400)]
tests: Remove prints
And use GST_DEBUG and friends instead
Vasilis Liaskovitis [Sun, 14 Jul 2013 12:03:46 +0000 (14:03 +0200)]
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
Vasilis Liaskovitis [Sat, 13 Jul 2013 13:15:04 +0000 (15:15 +0200)]
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
Mathieu Duponchelle [Tue, 2 Jul 2013 18:50:05 +0000 (20:50 +0200)]
ges-uri-clip: Add the possibility to specify an assets directory
through the GES_TESTING_ASSETS_DIRECTORY environment variable.
Thibault Saunier [Fri, 12 Jul 2013 23:44:46 +0000 (19:44 -0400)]
tests: Simplifie integration tests using macros all around
Mathieu Duponchelle [Thu, 25 Apr 2013 22:03:21 +0000 (00:03 +0200)]
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)
Mathieu Duponchelle [Sat, 27 Apr 2013 22:22:42 +0000 (00:22 +0200)]
test-utils: Add test file generation code.
Mathieu Duponchelle [Fri, 28 Jun 2013 13:49:03 +0000 (15:49 +0200)]
track-element: No need to log when prio == MIN_GNL_PRIO.
Mathieu Duponchelle [Thu, 27 Jun 2013 21:33:21 +0000 (23:33 +0200)]
framepositionner: fix messup with propname enum.
Mathieu Duponchelle [Wed, 26 Jun 2013 21:23:59 +0000 (23:23 +0200)]
track: Make it possible to disable the mixing feature
API:
ges_track_set_mixing
ges_track_get_mixing
Mathieu Duponchelle [Fri, 28 Jun 2013 22:17:31 +0000 (00:17 +0200)]
timeline: create_transitions_on_layer *before* actually commiting
Everything need to be in place before commiting, otherwize it makes no
sense at all.
Thibault Saunier [Fri, 12 Jul 2013 15:55:46 +0000 (11:55 -0400)]
group: Add an empty group constructor
As it is more intuitive for users.
API:
ges_group_new
Mathieu Duponchelle [Wed, 10 Jul 2013 21:33:51 +0000 (23:33 +0200)]
container/group/clip: Allow creating an empty group.
This is a legitimate use case.
Mathieu Duponchelle [Wed, 10 Jul 2013 19:24:28 +0000 (21:24 +0200)]
container: Add a 'recursive' argument to the get_children method
API:
- ges_container_get_children (GESContainer *container);
+ ges_container_get_children (GESContainer *container, gboolean recurse);
Mathieu Duponchelle [Thu, 11 Jul 2013 00:16:19 +0000 (02:16 +0200)]
group: set priv->setting_value to TRUE when moving ourselves in _child_removed
Thibault Saunier [Thu, 11 Jul 2013 03:15:17 +0000 (23:15 -0400)]
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
Thibault Saunier [Wed, 10 Jul 2013 01:30:59 +0000 (21:30 -0400)]
timeline: Append missing layers when moving groups between layers
This was a missing feature of the newly added groups
Thibault Saunier [Wed, 26 Jun 2013 21:08:57 +0000 (17:08 -0400)]
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.
Thibault Saunier [Mon, 8 Jul 2013 02:40:55 +0000 (22:40 -0400)]
xml-formatter: Indent formatted files
Thibault Saunier [Wed, 3 Jul 2013 22:33:05 +0000 (18:33 -0400)]
timeline-element: Add a method to get the topelevel parent of an element
API:
ges_timeline_element_get_toplevel_parent
Thibault Saunier [Wed, 3 Jul 2013 16:48:58 +0000 (12:48 -0400)]
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.
Thibault Saunier [Tue, 2 Jul 2013 23:47:48 +0000 (19:47 -0400)]
clip: Emit the notify::layer signal only when actually needed
That means:
- only when we do change layer
- At the end of moving between two layers
Thibault Saunier [Tue, 2 Jul 2013 14:56:40 +0000 (10:56 -0400)]
clip: Avoid list corruption when grouping objects
We are currently iterating over a list that is modified in the same
method, we have to get a copy of the list, and iterate over the copy.
Thibault Saunier [Tue, 2 Jul 2013 00:35:39 +0000 (20:35 -0400)]
clip: Add an internal method to easily get the priority of the layer the clip is in
Thibault Saunier [Mon, 1 Jul 2013 21:57:03 +0000 (17:57 -0400)]
container: Remove the get_priority_range vmethod
We now let full control to subclasses so we do not need it anymore.
Thibault Saunier [Mon, 1 Jul 2013 21:51:32 +0000 (17:51 -0400)]
container: Let full control of children priorities to subclasses
For that we make the children_control_mode a protected filed, directly usable by
subclasses, removing the method to set it.
And we let the subclass set and get the priority offsets to the container class.
Thibault Saunier [Mon, 1 Jul 2013 20:19:31 +0000 (16:19 -0400)]
track: Make sure that new gaps are filled before removing the old ones
Currently we can end up having gaps in track as the first step of the
gap filling method removes currently set gaps.
Thibault Saunier [Sat, 29 Jun 2013 23:31:23 +0000 (19:31 -0400)]
clip: Handle child priority offsets when setting priority
Thibault Saunier [Fri, 28 Jun 2013 23:17:54 +0000 (19:17 -0400)]
container: Do not allow adding an element to a container if it already has a parent
This should never happen, an element can have 1 and only 1 parent.
Thibault Saunier [Fri, 28 Jun 2013 23:16:47 +0000 (19:16 -0400)]
container: "Implement" the set_priority vmethod
This way we will just accept any value setted