platform/upstream/gstreamer.git
10 years agotests: Fix make distcheck
Thibault Saunier [Mon, 10 Nov 2014 16:24:11 +0000 (17:24 +0100)]
tests: Fix make distcheck

Some xges project are not used anymore and some new appeared, clean
that up in the Makefile.am

10 years agoelement: Add a property allowing user to avoid serializing TimelineElements on demand
Thibault Saunier [Mon, 10 Nov 2014 15:20:29 +0000 (16:20 +0100)]
element: Add a property allowing user to avoid serializing TimelineElements on demand

10 years agoxml-formatter: Serialize groups
Thibault Saunier [Mon, 27 Oct 2014 15:51:42 +0000 (16:51 +0100)]
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

10 years agopipeline: Do not relink an already linked track
Thibault Saunier [Mon, 3 Nov 2014 12:06:34 +0000 (13:06 +0100)]
pipeline: Do not relink an already linked track

10 years agoframeposition: In case sources have the same size as track, follow track size
Thibault Saunier [Sun, 2 Nov 2014 10:46:37 +0000 (11:46 +0100)]
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

10 years agoxml-formatter: Do not forget to set properties on the track elements
Thibault Saunier [Sat, 1 Nov 2014 10:32:16 +0000 (11:32 +0100)]
xml-formatter: Do not forget to set properties on the track elements

We were just setting children properties, even if the propertie to be
set on themselves where properly passed in

https://bugzilla.gnome.org/show_bug.cgi?id=729487

10 years agotitle-source: Expose the shaded-background property
Thibault Saunier [Sat, 1 Nov 2014 09:34:41 +0000 (10:34 +0100)]
title-source: Expose the shaded-background property

Rework the way we override the background property to avoid trying to
lookup shaded-foreground-color!

https://bugzilla.gnome.org/show_bug.cgi?id=728635

10 years agotitlesource: Expose the outline-color property
Thibault Saunier [Sat, 1 Nov 2014 08:47:39 +0000 (09:47 +0100)]
titlesource: Expose the outline-color property

https://bugzilla.gnome.org/show_bug.cgi?id=728634

10 years agotools: launch: Wait for the project to be loaded to activate gst-validate
Thibault Saunier [Fri, 31 Oct 2014 10:56:16 +0000 (11:56 +0100)]
tools: launch: Wait for the project to be loaded to activate gst-validate

Otherwize we could have a race where GstValidate actions are launched
even before the project has been loaded

10 years agotools: Never try to propose same URI when we know it is missing URI
Thibault Saunier [Fri, 31 Oct 2014 10:32:37 +0000 (11:32 +0100)]
tools: Never try to propose same URI when we know it is missing URI

10 years agopipeline: connect tracks when added, not only on state change.
Mathieu Duponchelle [Tue, 28 Oct 2014 17:36:55 +0000 (18:36 +0100)]
pipeline: connect tracks when added, not only on state change.

+ ghost track src pad before calling track added so that
  pipeline has a pad to link.
+ Remove silly comment.

10 years agoDocument known and usable child properties for GESTrackElements subclasses
Thibault Saunier [Thu, 30 Oct 2014 11:36:57 +0000 (12:36 +0100)]
Document known and usable child properties for GESTrackElements subclasses

10 years agotools:launch: Properly terminate when we get a SIGINT signal
Thibault Saunier [Thu, 30 Oct 2014 11:38:16 +0000 (12:38 +0100)]
tools:launch: Properly terminate when we get a SIGINT signal

10 years agotrackelement: Add a lookup_child vmethod
Thibault Saunier [Wed, 29 Oct 2014 12:40:55 +0000 (13:40 +0100)]
trackelement: Add a lookup_child vmethod

This method can be used for subclass to override the default behaviour
for child lookup. This vmethod can be used for example in the case where
you want the name of a child property to be 'overridden'.

As an example in the GESTitleSource where we have a videotestsrc
which has a 'foreground-color' property that is used in the TitleSource
to set the background color of the title, this vmethod is now used to
tweak the name passed as parameter to rename "background" to
"foreground-backend" making our API understandable.

API:
  GESTrackElement::lookup_child

https://bugzilla.gnome.org/show_bug.cgi?id=727880

10 years agotitle: Deprecate all method related to child properties
Thibault Saunier [Wed, 29 Oct 2014 11:44:17 +0000 (12:44 +0100)]
title: Deprecate all method related to child properties

The standard way setting children properties is by using the
GESTrackElement::set_child_propery and friend methods

https://bugzilla.gnome.org/show_bug.cgi?id=727880

10 years agoges-validate: inform of clip removal.
Mathieu Duponchelle [Wed, 29 Oct 2014 12:38:13 +0000 (13:38 +0100)]
ges-validate: inform of clip removal.

10 years agotimeline: connect_after to layer.object_added.
Mathieu Duponchelle [Wed, 29 Oct 2014 12:25:06 +0000 (13:25 +0100)]
timeline: connect_after to layer.object_added.

We want the user provided signal handlers to be called before
we add track elements.

10 years agonle: Downgrade some INFO to DEBUG.
Mathieu Duponchelle [Tue, 28 Oct 2014 16:33:09 +0000 (17:33 +0100)]
nle: Downgrade some INFO to DEBUG.

+ makes it more pleasant to read logs in info.

10 years agonle: Handle sending SEEK event recursively to our children
Thibault Saunier [Wed, 22 Oct 2014 11:49:27 +0000 (13:49 +0200)]
nle: Handle sending SEEK event recursively to our children

Instead of relying on it being implemented in core (as it is currently
not!)

10 years agotests: Use audiomixer as an audio mixing element
Thibault Saunier [Mon, 6 Oct 2014 10:30:17 +0000 (12:30 +0200)]
tests: Use audiomixer as an audio mixing element

Adder is the past!

10 years agovalidate: Implement validate Action type to handle KeyFrames
Thibault Saunier [Wed, 1 Oct 2014 08:04:53 +0000 (10:04 +0200)]
validate: Implement validate Action type to handle KeyFrames

New action types:
  * set-control-binding
  * add-keyframe
  * remove-keyframe

10 years agotrack-element: Add a signal about added control bindings
Thibault Saunier [Wed, 1 Oct 2014 07:54:49 +0000 (09:54 +0200)]
track-element: Add a signal about added control bindings

API:
  GESTrackElement::control-binding-added

10 years agotrack-element: Add an API to list all set ControlBinding
Thibault Saunier [Wed, 1 Oct 2014 07:53:44 +0000 (09:53 +0200)]
track-element: Add an API to list all set ControlBinding

API:
    ges_track_element_get_all_control_bindings

10 years agotitle-source: Properly expose children properties
Thibault Saunier [Sat, 27 Sep 2014 07:59:12 +0000 (09:59 +0200)]
title-source: Properly expose children properties

+ Make sure that the TitleClip properties are not serialized anymore as
  they are serialized through children properties now.

+ Enhance debugging for not serialized properties in GESXmlFormatter.

10 years agonlecomposition: update base time before seeking current stack.
Mathieu Duponchelle [Fri, 26 Sep 2014 16:28:16 +0000 (18:28 +0200)]
nlecomposition: update base time before seeking current stack.

There could be a race where the new segments were pushed after
a seek on some / all pads before the operation had had its basetime
updated, and thus incoming segments were tweaked wrongly.

Reproducible with 3 clips composited and multiple seeks,
FIXME hard to validate.

10 years agoformatter: save and load source's children properties
Joris Valette [Fri, 13 Sep 2013 23:35:55 +0000 (01:35 +0200)]
formatter: save and load source's children properties

10 years agotests: project: Add children properties check
Joris Valette [Mon, 23 Sep 2013 16:40:34 +0000 (18:40 +0200)]
tests: project: Add children properties check

Rename test_project_add_keyframes into test_project_add_properties

10 years agoproject: Do not concider adding am already tracked asset as failure
Thibault Saunier [Fri, 26 Sep 2014 16:39:19 +0000 (18:39 +0200)]
project: Do not concider adding am already tracked asset as failure

It is not really a failure, just a special case.

10 years agoges-validate: Add actions to add/remove object from container
Thibault Saunier [Fri, 26 Sep 2014 15:51:14 +0000 (17:51 +0200)]
ges-validate: Add actions to add/remove object from container

+ Add an action to set an asset on a GESTimelineElement

10 years agoges-validate: Fix edit_container return code
Thibault Saunier [Fri, 26 Sep 2014 15:50:03 +0000 (17:50 +0200)]
ges-validate: Fix edit_container return code

It used to always return FALSE.

+ Fix minor leaks
+ Do not seek ourself, it is users responsability to seek and
commit these days.

10 years agoextractable: Make extractable_set_asset return a boolean
Thibault Saunier [Fri, 26 Sep 2014 15:44:12 +0000 (17:44 +0200)]
extractable: Make extractable_set_asset return a boolean

WARNING: This is a minor API breakage, it should be harmless
and allows us to let users know whether changing setting the
asset worked or no.

10 years agoges-validate: Add an action type to set restriction caps on track
Thibault Saunier [Thu, 25 Sep 2014 15:31:49 +0000 (17:31 +0200)]
ges-validate: Add an action type to set restriction caps on track

10 years agotools: Handle asset relocation for assets from scenario
Thibault Saunier [Thu, 25 Sep 2014 15:31:05 +0000 (17:31 +0200)]
tools: Handle asset relocation for assets from scenario

Allowing us to share scenario and media file!

10 years agoges-validate: Add support for Layer.auto-transition
Thibault Saunier [Thu, 25 Sep 2014 13:30:55 +0000 (15:30 +0200)]
ges-validate: Add support for Layer.auto-transition

+ Fix a bug where the mandatory field name for the name of the clip to
remove in remove-clip did not correspond to what we used in the action
(clip-name vs name).

10 years agoges-validate: Add commit and split-clip action types
Thibault Saunier [Thu, 25 Sep 2014 12:59:40 +0000 (14:59 +0200)]
ges-validate: Add commit and split-clip action types

And stop commit at the end of other action types, this now
has to be done in the scenario itself.

10 years agoges-validate: Add start/inpoint/duration params to the add-clip action
Thibault Saunier [Thu, 25 Sep 2014 12:57:35 +0000 (14:57 +0200)]
ges-validate: Add start/inpoint/duration params to the add-clip action

10 years agotools:ges-launch: Save the project at the end of execution
Thibault Saunier [Thu, 25 Sep 2014 12:55:15 +0000 (14:55 +0200)]
tools:ges-launch: Save the project at the end of execution

So that changes from scenarios are taken into account

10 years agonlecomposition: Fix the get_current_position method
Thibault Saunier [Thu, 25 Sep 2014 12:53:36 +0000 (14:53 +0200)]
nlecomposition: Fix the get_current_position method

10 years agonlecomposition: Wait for a buffer from the new segment to restart task
Thibault Saunier [Tue, 23 Sep 2014 13:01:56 +0000 (15:01 +0200)]
nlecomposition: Wait for a buffer from the new segment to restart task

Avoiding races where we would launch a seek right after a FLUSH_STOP and
before we get a Buffer which would possibly lead to ERROR message when upstream
elements try to push a buffer and check_sticky fails because downstream
is flushing.

10 years agonlecomposition: Do useless thing so that the compiler doesn't warn us!
Thibault Saunier [Mon, 22 Sep 2014 16:58:43 +0000 (18:58 +0200)]
nlecomposition: Do useless thing so that the compiler doesn't warn us!

Otherwize we get a gcc warning about useless statements.

10 years agotools:ges-launch: Do not set pipeline state before the timeline is ready
Thibault Saunier [Fri, 19 Sep 2014 15:14:51 +0000 (17:14 +0200)]
tools:ges-launch: Do not set pipeline state before the timeline is ready

When we are loading a project

10 years agonlecomposition: Update start stop and duration on initialization
Thibault Saunier [Fri, 19 Sep 2014 15:13:52 +0000 (17:13 +0200)]
nlecomposition: Update start stop and duration on initialization

So that the composition is usable right after the initialization

10 years agoges: Avoid to always commit when a project is loaded
Thibault Saunier [Fri, 19 Sep 2014 15:12:18 +0000 (17:12 +0200)]
ges: Avoid to always commit when a project is loaded

In case we are not in a PLAYING state and the project is loaded, the
only thing that should be done is to fill the gaps and this way when the
composition get to PLAYING, their initialization will be enough to get
everything on track.

10 years agotests: Use the new gst_check_objects_destroyed_on_unref function
Thibault Saunier [Fri, 19 Sep 2014 10:58:26 +0000 (12:58 +0200)]
tests: Use the new gst_check_objects_destroyed_on_unref function

10 years agoStart taking advantage of the fact that NLE is in the same three as GES!
Thibault Saunier [Fri, 19 Sep 2014 10:57:30 +0000 (12:57 +0200)]
Start taking advantage of the fact that NLE is in the same three as GES!

10 years agonlecomposition: Fix several leaks
Thibault Saunier [Fri, 19 Sep 2014 10:55:51 +0000 (12:55 +0200)]
nlecomposition: Fix several leaks

* In the action closure invokation we were alway leaking the composition.
* gst_bin_add will actually take an extra ref since we already  gst_object_ref_sink so we
own the object, other call to that method will increase the refcount which means we do
not need to pass an extra ref to the bin.
* We want to ref_sink right when the object is added to the composition, making things
cleaner and simpler to follow in the tests.

10 years agonlecomposition: Activate the composition ghostpad to flush downstream
Thibault Saunier [Fri, 19 Sep 2014 10:52:45 +0000 (12:52 +0200)]
nlecomposition: Activate the composition ghostpad to flush downstream

Since commit 060b16ac75ac227d4cfe1db89ccdc4f4b31545ff
"pad: don't accept flush-stop on inactive pads" in -core, the flush_stop event will not be
fowarded downstream in case the pad is not activated. In our case the element is in
READY state, so pads are deactivated. In that commit we simply make sure that the
event can be fowarded downstream

10 years agonlecomposition: Restart the main task on FLUSH_STOP
Thibault Saunier [Fri, 19 Sep 2014 10:49:52 +0000 (12:49 +0200)]
nlecomposition: Restart the main task on FLUSH_STOP

It means stop using a dedicated probe to restart task so that the main probe does not
drop the FLUSH_STOP event before we have a chance to restart the task. (and this is
for sure cleaner/and simpler to read).

10 years agonle:source: Protect the probeid field with the GST_OBJECT_LOCK
Thibault Saunier [Fri, 19 Sep 2014 10:29:28 +0000 (12:29 +0200)]
nle:source: Protect the probeid field with the GST_OBJECT_LOCK

Avoiding races where we try to remove a probe on an already destroyed pad.

10 years agoframepositionner: Add a weak pointer to the track_source
Thibault Saunier [Fri, 19 Sep 2014 10:28:05 +0000 (12:28 +0200)]
framepositionner: Add a weak pointer to the track_source

Avoiding assertions when the object is destroyed.

10 years agonle: Seek gnlsource when prerolled only
Mathieu Duponchelle [Mon, 25 Aug 2014 16:11:52 +0000 (18:11 +0200)]
nle: Seek gnlsource when prerolled only

Instead of implementing seek on ready all around GStreamer, just
seek in PAUSED, when the source gets 'prerolled'.

10 years agoges-track: Do not set removed object state
Thibault Saunier [Thu, 28 Aug 2014 08:20:24 +0000 (10:20 +0200)]
ges-track: Do not set removed object state

It is the composition to handle

10 years agonle: Stop using a MainContext avoiding needing one iter per source dispach
Thibault Saunier [Wed, 20 Aug 2014 11:15:30 +0000 (13:15 +0200)]
nle: Stop using a MainContext avoiding needing one iter per source dispach

Using GClosure to handle the source handling and handle our action
ordering ourselves

https://bugzilla.gnome.org/show_bug.cgi?id=733342

10 years agoges: Use audiomixer instead of adder by default
Thibault Saunier [Tue, 21 Oct 2014 09:01:17 +0000 (11:01 +0200)]
ges: Use audiomixer instead of adder by default

10 years agoPort to the new NLE API
Thibault Saunier [Tue, 21 Oct 2014 08:59:43 +0000 (10:59 +0200)]
Port to the new NLE API

Port the timeline, track and pipeline to the new NLE API where
all objects have static src pads.

10 years agoCleanup import of GNL and rename gnl to nle for Non Linear Engine
Thibault Saunier [Fri, 15 Aug 2014 13:48:14 +0000 (15:48 +0200)]
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

10 years agocomposition: Commit all values before initializing the pipeline
Thibault Saunier [Tue, 12 Aug 2014 12:35:09 +0000 (14:35 +0200)]
composition: Commit all values before initializing the pipeline

10 years agocomposition: Prevent update sources from being added after seek.
Mathieu Duponchelle [Tue, 5 Aug 2014 13:43:11 +0000 (15:43 +0200)]
composition: Prevent update sources from being added after seek.

10 years agocomposition: only flush stop after seek was set to READY.
Mathieu Duponchelle [Thu, 31 Jul 2014 14:02:06 +0000 (16:02 +0200)]
composition: only flush stop after seek was set to READY.

10 years agocomposition: Also ignore all messages from children tearing them to READY
Thibault Saunier [Tue, 29 Jul 2014 21:41:45 +0000 (23:41 +0200)]
composition: Also ignore all messages from children tearing them to READY

At that stage elements should not be taken into account anymore. In some
spacial cases they can post ERROR messages (when trying to push sticky
events on flushing pads) on the bus. We actually do not care about those
issues at that exact point.

10 years agocomposition: Do not try to paused the task that could have been stopped
Thibault Saunier [Mon, 28 Jul 2014 18:24:50 +0000 (20:24 +0200)]
composition: Do not try to paused the task that could have been stopped

There was a race where we ended up trying to update the pipeline and
stop our children task at the exact moment where we were actually
setting its state to PAUSED. Take the composition lock and make sure
that can't happen

10 years agocomposition: Post messages on the bus when it updates itself
Thibault Saunier [Fri, 25 Jul 2014 08:55:52 +0000 (10:55 +0200)]
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.

10 years agocomposition: push flush events on the target.
Mathieu Duponchelle [Tue, 22 Jul 2014 16:22:09 +0000 (18:22 +0200)]
composition: push flush events on the target.

10 years agocomposition: No need for action signal to add and remove objects!
Thibault Saunier [Sat, 19 Jul 2014 09:41:56 +0000 (11:41 +0200)]
composition: No need for action signal to add and remove objects!

10 years agocomposition: we're initialized even if update_pipeline returned FALSE
Mathieu Duponchelle [Mon, 21 Jul 2014 14:59:24 +0000 (16:59 +0200)]
composition: we're initialized even if update_pipeline returned FALSE

10 years agocomposition: reset base time to 0 when needed.
Mathieu Duponchelle [Mon, 21 Jul 2014 14:57:14 +0000 (16:57 +0200)]
composition: reset base time to 0 when needed.

10 years agocomposition: Forward flushes on initialization
Mathieu Duponchelle [Mon, 21 Jul 2014 14:54:46 +0000 (16:54 +0200)]
composition: Forward flushes on initialization

10 years agoobject: make the check for self commit work in a crappy way.
Mathieu Duponchelle [Fri, 18 Jul 2014 02:04:16 +0000 (04:04 +0200)]
object: make the check for self commit work in a crappy way.

10 years agocomposition: use g_main_context_set_dispatches_per_iteration ()
Mathieu Duponchelle [Fri, 18 Jul 2014 02:01:25 +0000 (04:01 +0200)]
composition: use g_main_context_set_dispatches_per_iteration ()

Let's hope this gets merged ...

10 years agocomposition: set next_eos_seqnum when we get seeked too.
Mathieu Duponchelle [Tue, 15 Jul 2014 13:17:43 +0000 (15:17 +0200)]
composition: set next_eos_seqnum when we get seeked too.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agognl: Rely on the GstElement to properly handle their seqnums
Thibault Saunier [Tue, 15 Jul 2014 13:47:59 +0000 (15:47 +0200)]
gnl: Rely on the GstElement to properly handle their seqnums

Actually it is not exactly thread safe to tweak them ourself at the GNL
level.

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Always return a value in GSourceFuncs
Mathieu Duponchelle [Tue, 15 Jul 2014 13:16:23 +0000 (15:16 +0200)]
composition: Always return a value in GSourceFuncs

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Rename _flush_downstream to _have_to_seek_downstrean
Thibault Saunier [Tue, 15 Jul 2014 13:01:59 +0000 (15:01 +0200)]
composition: Rename _flush_downstream to _have_to_seek_downstrean

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agosource: Remove cruft code to seek sources
Mathieu Duponchelle [Tue, 15 Jul 2014 12:59:54 +0000 (14:59 +0200)]
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>

10 years agocomposition: Do not remove all sources when stopping task
Thibault Saunier [Tue, 15 Jul 2014 07:46:03 +0000 (09:46 +0200)]
composition: Do not remove all sources when stopping task

We only want to remove updates and seek, commits should be kept

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Don't send flushes downstream on pipeline update.
Mathieu Duponchelle [Tue, 15 Jul 2014 00:37:25 +0000 (02:37 +0200)]
composition: Don't send flushes downstream on pipeline update.

The code is still a bit redundant in set_current_bin_to_ready, need
to discuss.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Remove locking making sure that we manipulate children in right places
Thibault Saunier [Mon, 14 Jul 2014 15:52:36 +0000 (17:52 +0200)]
composition: Remove locking making sure that we manipulate children in right places

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Avoid a race in PAUSED_TO_READY
Mathieu Duponchelle [Mon, 14 Jul 2014 15:47:07 +0000 (17:47 +0200)]
composition: Avoid a race in PAUSED_TO_READY

as we were using our children list in there without locking them.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: No need to reset the composition when going to PAUSED or NULL
Thibault Saunier [Mon, 14 Jul 2014 15:18:23 +0000 (17:18 +0200)]
composition: No need to reset the composition when going to PAUSED or NULL

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Make sure we have a peer when we send flushes downstream
Mathieu Duponchelle [Mon, 14 Jul 2014 15:10:35 +0000 (17:10 +0200)]
composition: Make sure we have a peer when we send flushes downstream

And avoid leaks

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Minor cleanups
Thibault Saunier [Mon, 14 Jul 2014 15:06:05 +0000 (17:06 +0200)]
composition: Minor cleanups

10 years agocomposition: Take the objects lock when reseting the composition
Thibault Saunier [Mon, 14 Jul 2014 14:51:56 +0000 (16:51 +0200)]
composition: Take the objects lock when reseting the composition

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Remove the reset children method
Mathieu Duponchelle [Mon, 14 Jul 2014 14:47:45 +0000 (16:47 +0200)]
composition: Remove the reset children method

as it is all already done in _empty_bin ()

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Set children caps only when they are added to the composition
Thibault Saunier [Mon, 14 Jul 2014 14:44:43 +0000 (16:44 +0200)]
composition: Set children caps only when they are added to the composition

No need to do it again on READY_TO_PAUSED

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: No need to children state locked anymore
Mathieu Duponchelle [Mon, 14 Jul 2014 14:41:25 +0000 (16:41 +0200)]
composition: No need to children state locked anymore

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: cleanup dispose / finalize
Thibault Saunier [Mon, 14 Jul 2014 14:30:35 +0000 (16:30 +0200)]
composition: cleanup dispose / finalize

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: remove children warning drop HACK.
Mathieu Duponchelle [Mon, 14 Jul 2014 14:24:46 +0000 (16:24 +0200)]
composition: remove children warning drop HACK.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: remove now useless notion of GnlCompositionEntry.
Thibault Saunier [Mon, 14 Jul 2014 14:12:00 +0000 (16:12 +0200)]
composition: remove now useless notion of GnlCompositionEntry.

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: cleanup GnlCompositionEntry before its actual removal.
Mathieu Duponchelle [Mon, 14 Jul 2014 13:50:58 +0000 (15:50 +0200)]
composition: cleanup GnlCompositionEntry before its actual removal.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: remove now useless prop "deactivated_elements_state".
Thibault Saunier [Mon, 14 Jul 2014 13:43:04 +0000 (15:43 +0200)]
composition: remove now useless prop "deactivated_elements_state".

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Remove now useless flag "reset_time".
Mathieu Duponchelle [Mon, 14 Jul 2014 13:40:28 +0000 (15:40 +0200)]
composition: Remove now useless flag "reset_time".

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Remove now useless flag "stackvalid".
Thibault Saunier [Mon, 14 Jul 2014 13:37:51 +0000 (15:37 +0200)]
composition: Remove now useless flag "stackvalid".

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: remove now useless "flushing" flag.
Mathieu Duponchelle [Mon, 14 Jul 2014 13:35:47 +0000 (15:35 +0200)]
composition: remove now useless "flushing" flag.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Do not use 'update' seek for now
Thibault Saunier [Mon, 14 Jul 2014 11:36:31 +0000 (13:36 +0200)]
composition: Do not use 'update' seek for now

This is not working in our new context and the seek do not work at
all when we set seek start to CLOCK_TIME_NONE and type to TYPE_NONE.

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Add the stack start/stop that has been set in dotfile name
Mathieu Duponchelle [Mon, 14 Jul 2014 11:35:24 +0000 (13:35 +0200)]
composition: Add the stack start/stop that has been set in dotfile name

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Push flush events *downstream* not 'somewhere' :)
Thibault Saunier [Mon, 14 Jul 2014 11:34:25 +0000 (13:34 +0200)]
composition: Push flush events *downstream* not 'somewhere' :)

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agosource: Atomically change the probe ID
Mathieu Duponchelle [Sun, 13 Jul 2014 14:59:15 +0000 (16:59 +0200)]
source: Atomically change the probe ID

Avoiding races where the probe would be removed 2 times

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Avoid deadlock when setting current bin to ready (on commit or seek)
Thibault Saunier [Sun, 13 Jul 2014 09:51:51 +0000 (11:51 +0200)]
composition: Avoid deadlock when setting current bin to ready (on commit or seek)

We need to make sure that between the time we send flush_start/stop and
the time we actually set the bin to READY, no buffer got prerolled again
as it would lead to a deadlock trying to set the bin to READY (while
deactivating the pads, it needs the streaming lock, which would be
taken in that case)

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

10 years agocomposition: Only sync state of current bin when activating new stack.
Mathieu Duponchelle [Sat, 12 Jul 2014 18:54:55 +0000 (20:54 +0200)]
composition: Only sync state of current bin when activating new stack.

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

10 years agocomposition: Start kindergarten task when going to READY.
Thibault Saunier [Fri, 11 Jul 2014 19:59:43 +0000 (21:59 +0200)]
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>