platform/upstream/gstreamer.git
9 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.

9 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

9 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

9 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.

9 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.

9 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.

9 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

9 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.

9 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.

9 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!

9 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

9 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.

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

9 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.

9 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 ...

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

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

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 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>

9 years agocomposition: add a new failing test for finalize on commit.
Mathieu Duponchelle [Fri, 11 Jul 2014 19:58:41 +0000 (21:58 +0200)]
composition: add a new failing test for finalize on commit.

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

9 years agocomposition: Make sure to remove all updates when updating the stack
Thibault Saunier [Fri, 11 Jul 2014 17:13:29 +0000 (19:13 +0200)]
composition: Make sure to remove all updates when updating the stack

The EOS we received before that became meaningless and thus the
associated GSources should no be triggered

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

9 years agocomposition: Avoid emitting COMMITED like crazy
Mathieu Duponchelle [Fri, 11 Jul 2014 16:29:17 +0000 (18:29 +0200)]
composition: Avoid emitting COMMITED like crazy

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

9 years agocomposition: Add an enum to define why we update the stack
Thibault Saunier [Fri, 11 Jul 2014 16:27:25 +0000 (18:27 +0200)]
composition: Add an enum to define why we update the stack

Making the code simpler to follow

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

9 years agocomposition: We are now waiting for caps to restart our task
Mathieu Duponchelle [Fri, 11 Jul 2014 15:48:05 +0000 (17:48 +0200)]
composition: We are now waiting for caps to restart our task

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

9 years agocomposition: Remove useless functions to add GSources and add debugging
Thibault Saunier [Fri, 11 Jul 2014 15:31:34 +0000 (17:31 +0200)]
composition: Remove useless functions to add GSources and add debugging

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

9 years agocomposition: Remove DONE fixme
Mathieu Duponchelle [Fri, 11 Jul 2014 15:25:44 +0000 (17:25 +0200)]
composition: Remove DONE fixme

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

9 years agoghostpad: Do not try to be smarter than possible with seqnum
Thibault Saunier [Fri, 11 Jul 2014 15:23:29 +0000 (17:23 +0200)]
ghostpad: Do not try to be smarter than possible with seqnum

We can have several CAPS event comming at any time and thuse we will
need to rely on elements to handle their seqnum properly as we can not
do a safe guard at our level

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

9 years agocomposition: Keep our GSources in a list making their thread safe
Mathieu Duponchelle [Fri, 11 Jul 2014 15:22:24 +0000 (17:22 +0200)]
composition: Keep our GSources in a list making their thread safe

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

9 years agocomposition: Concider the last action as DONE when we get a CAPS or SEGMENT
Thibault Saunier [Fri, 11 Jul 2014 14:08:20 +0000 (16:08 +0200)]
composition: Concider the last action as DONE when we get a CAPS or SEGMENT

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

9 years agocomposition: only forward our flush start / stops
Mathieu Duponchelle [Fri, 11 Jul 2014 13:41:50 +0000 (15:41 +0200)]
composition: only forward our flush start / stops

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

9 years agoghostpad: remove useless debug
Thibault Saunier [Fri, 11 Jul 2014 12:18:58 +0000 (14:18 +0200)]
ghostpad: remove useless debug

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

9 years agocomposition: cleanup and enhance debug
Mathieu Duponchelle [Fri, 11 Jul 2014 12:17:36 +0000 (14:17 +0200)]
composition: cleanup and enhance debug

Bye Bye STRAM START you were a brave little debug we will miss you.

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

9 years agocomposition: do not flush downstream when updating pipeline ourselves.
Thibault Saunier [Fri, 11 Jul 2014 12:11:21 +0000 (14:11 +0200)]
composition: do not flush downstream when updating pipeline ourselves.

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

9 years agocomposition: Set update to TRUE when updating the stack because of EOS
Mathieu Duponchelle [Fri, 11 Jul 2014 10:20:53 +0000 (12:20 +0200)]
composition: Set update to TRUE when updating the stack because of EOS

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

9 years agocomposition: Handle seeking current stack while PAUSED
Thibault Saunier [Thu, 10 Jul 2014 16:01:32 +0000 (18:01 +0200)]
composition: Handle seeking current stack while PAUSED

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

9 years agocomposition: Add and enhance some debug
Mathieu Duponchelle [Thu, 10 Jul 2014 14:26:48 +0000 (16:26 +0200)]
composition: Add and enhance some debug

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

9 years agocomposition: Dot the newly created stacks
Thibault Saunier [Thu, 10 Jul 2014 14:21:31 +0000 (16:21 +0200)]
composition: Dot the newly created stacks

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

9 years agognlghostpad: Add some more debugging and fix mistakes in seqnum handling
Mathieu Duponchelle [Thu, 10 Jul 2014 14:17:20 +0000 (16:17 +0200)]
gnlghostpad: Add some more debugging and fix mistakes in seqnum handling

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

9 years agocomposition: Factor out a function to seek the current stack
Thibault Saunier [Thu, 10 Jul 2014 13:48:50 +0000 (15:48 +0200)]
composition: Factor out a function to seek the current stack

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

9 years agocomposition: Set the seqnum only when receiving the actual seek event
Mathieu Duponchelle [Thu, 10 Jul 2014 13:46:19 +0000 (15:46 +0200)]
composition: Set the seqnum only when receiving the actual seek event

Setting it before calling seek_handling is racy!

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

9 years agocomposition: Set the real_eos_seqnum in a dedicated method
Thibault Saunier [Thu, 10 Jul 2014 13:45:19 +0000 (15:45 +0200)]
composition: Set the real_eos_seqnum in a dedicated method

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

9 years agocomposition: Reset the real_eos_seqnum when reseting the composition
Mathieu Duponchelle [Thu, 10 Jul 2014 13:43:26 +0000 (15:43 +0200)]
composition: Reset the real_eos_seqnum when reseting the composition

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

9 years agocomposition: Release OBJECTS_LOCK when emiting the "commited"
Thibault Saunier [Thu, 10 Jul 2014 13:42:48 +0000 (15:42 +0200)]
composition: Release OBJECTS_LOCK when emiting the "commited"

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

9 years agocomposition: Use the private struct directly
Mathieu Duponchelle [Thu, 10 Jul 2014 13:33:23 +0000 (15:33 +0200)]
composition: Use the private struct directly

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

9 years agognloperation: Totally clear operations when removing emptying current_bin
Thibault Saunier [Wed, 9 Jul 2014 10:51:36 +0000 (12:51 +0200)]
gnloperation: Totally clear operations when removing emptying current_bin

Removing linked childre leads to weird behaviour, we want to make sure
that all elements are totally clean when they are out the current bin.

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

9 years agognlghostpad: Do not forget to set output segment seqnum
Mathieu Duponchelle [Tue, 8 Jul 2014 21:25:09 +0000 (23:25 +0200)]
gnlghostpad: Do not forget to set output segment seqnum

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

9 years agocomposition: Fix the build
Thibault Saunier [Tue, 8 Jul 2014 21:00:29 +0000 (23:00 +0200)]
composition: Fix the build

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

9 years agotests:composition: Fix some refcounts
Mathieu Duponchelle [Tue, 8 Jul 2014 20:59:11 +0000 (22:59 +0200)]
tests:composition: Fix some refcounts

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

9 years agocomposition: Relink nodes *after* setting the seqnum
Thibault Saunier [Tue, 8 Jul 2014 20:58:02 +0000 (22:58 +0200)]
composition: Relink nodes *after* setting the seqnum

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

9 years agognlghostpad: Do not tolerate getting seeked when no target is set
Mathieu Duponchelle [Tue, 8 Jul 2014 20:57:22 +0000 (22:57 +0200)]
gnlghostpad: Do not tolerate getting seeked when no target is set

This should not happen anymore

+ Do not set twice events seqnums

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

9 years agognlghostpad: Add missing seqnum tweaking
Thibault Saunier [Tue, 8 Jul 2014 20:55:15 +0000 (22:55 +0200)]
gnlghostpad: Add missing seqnum tweaking

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

9 years agotests: Use compositor instead of videomixer
Mathieu Duponchelle [Tue, 8 Jul 2014 20:54:31 +0000 (22:54 +0200)]
tests: Use compositor instead of videomixer

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

9 years agocomposition: Handle the case were we get an EOS right after a segment
Thibault Saunier [Tue, 8 Jul 2014 20:53:57 +0000 (22:53 +0200)]
composition: Handle the case were we get an EOS right after a segment

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

9 years agocomposition: Make basic seeking working
Mathieu Duponchelle [Tue, 8 Jul 2014 11:28:57 +0000 (13:28 +0200)]
composition: Make basic seeking working

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

9 years agotests: Start fixing operation tests
Thibault Saunier [Mon, 7 Jul 2014 21:28:43 +0000 (23:28 +0200)]
tests: Start fixing operation tests

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

9 years agotests: Fix composition tests
Mathieu Duponchelle [Mon, 7 Jul 2014 21:24:46 +0000 (23:24 +0200)]
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>

9 years agocomposition: Implement the logic to PAUSE the task while executing actions
Thibault Saunier [Mon, 7 Jul 2014 21:07:15 +0000 (23:07 +0200)]
composition: Implement the logic to PAUSE the task while executing actions

We need to wait for the pipeline update to be actually finished before we can start another
action. That means that we pause the task until one buffer from the new stack is
outputed.

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

9 years agocomposition: Do not forget to set expandables state to NULL when disposing
Mathieu Duponchelle [Mon, 7 Jul 2014 21:08:56 +0000 (23:08 +0200)]
composition: Do not forget to set expandables state to NULL when disposing

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

9 years agocomposition: Factor out a function to commit only the values
Thibault Saunier [Mon, 7 Jul 2014 21:01:24 +0000 (23:01 +0200)]
composition: Factor out a function to commit only the values

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

9 years agocomposition: Get the current position before actually commiting values on commit
Mathieu Duponchelle [Mon, 7 Jul 2014 20:58:27 +0000 (22:58 +0200)]
composition: Get the current position before actually commiting values on commit

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

9 years agocomposition: Add a method that set the current bin to READY
Thibault Saunier [Mon, 7 Jul 2014 20:54:25 +0000 (22:54 +0200)]
composition: Add a method that set the current bin to READY

We need to get the stream lock in some conditions, and thuse send
flush event in those cases.

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

9 years agocomposition: Remove useless code
Mathieu Duponchelle [Mon, 7 Jul 2014 20:50:34 +0000 (22:50 +0200)]
composition: Remove useless code

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

9 years agocomposition: Clear the old stack when removing children that where used
Thibault Saunier [Mon, 7 Jul 2014 20:33:09 +0000 (22:33 +0200)]
composition: Clear the old stack when removing children that where used

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

9 years agocomposition: Remove useless toplevel_seek argiment from activate_new_stack
Mathieu Duponchelle [Mon, 7 Jul 2014 20:27:21 +0000 (22:27 +0200)]
composition: Remove useless toplevel_seek argiment from activate_new_stack

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

9 years agocomposition: Rework the seqnum logic to avoid races when setting the new stack seqnum
Thibault Saunier [Mon, 7 Jul 2014 20:25:51 +0000 (22:25 +0200)]
composition: Rework the seqnum logic to avoid races when setting the new stack seqnum

When we were seeking the same stack without a logic that gurantees that we actually
saw the seek with the new seqnum set, we could have ended up with an EOS set with
the right seqnum even if it was actually not the case.

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

9 years agocomposition: Add/Remove children in the same order as they were called
Mathieu Duponchelle [Mon, 7 Jul 2014 19:31:01 +0000 (21:31 +0200)]
composition: Add/Remove children in the same order as they were called

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

9 years agocomposition: Remove useless flush_start argument from the stop_task method
Thibault Saunier [Mon, 7 Jul 2014 19:28:28 +0000 (21:28 +0200)]
composition: Remove useless flush_start argument from the stop_task method

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

9 years agocomposition: Force setting children state to NULL rebfore unrefing them
Mathieu Duponchelle [Sun, 6 Jul 2014 13:46:22 +0000 (15:46 +0200)]
composition: Force setting children state to NULL rebfore unrefing them

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

9 years agocompositition: Check last stack in the children thread
Thibault Saunier [Fri, 4 Jul 2014 09:05:41 +0000 (11:05 +0200)]
compositition: Check last stack in the children thread

Avoiding to take the OBJECT_LOCK when recieving EOS. The computation is
based on the GstEvent.seqnum to make sure that the EOS we receive
corresponds to the right sequence.

In that patch we tweak seqnums so that they are correctly computed
avoiding to depend on all elements to do it properly as it might pretty
much not be the case!

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

9 years agocomposition: Actiually set current_bin state even when not debugging
Mathieu Duponchelle [Fri, 4 Jul 2014 09:11:53 +0000 (11:11 +0200)]
composition: Actiually set current_bin state even when not debugging

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

9 years agocomposition: Set *all* children state when going back to READY and then NULL
Thibault Saunier [Thu, 3 Jul 2014 15:42:06 +0000 (17:42 +0200)]
composition: Set *all* children state when going back to READY and then NULL

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

9 years agocomposition: Fix toplevel seek event refcounting
Mathieu Duponchelle [Thu, 3 Jul 2014 15:36:01 +0000 (17:36 +0200)]
composition: Fix toplevel seek event refcounting

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

9 years agocomposition: Teach the composition to seek same stack
Thibault Saunier [Thu, 3 Jul 2014 14:46:21 +0000 (16:46 +0200)]
composition: Teach the composition to seek same stack

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