Thibault Saunier
4e84240630
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>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
01ee03bc1f
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>
2014-10-31 11:58:11 +01:00
Thibault Saunier
ab2d2c6e4e
composition: Remove locking making sure that we manipulate children in right places
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
435e807f17
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>
2014-10-31 11:58:11 +01:00
Thibault Saunier
4c7731ede3
composition: No need to reset the composition when going to PAUSED or NULL
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
08da7d6d2e
composition: Make sure we have a peer when we send flushes downstream
...
And avoid leaks
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:11 +01:00
Thibault Saunier
c81ee05c41
composition: Minor cleanups
2014-10-31 11:58:11 +01:00
Thibault Saunier
2660f20cab
composition: Take the objects lock when reseting the composition
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
3f0f41f79f
composition: Remove the reset children method
...
as it is all already done in _empty_bin ()
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:11 +01:00
Thibault Saunier
76bf900e82
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>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
73274d8391
composition: No need to children state locked anymore
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:11 +01:00
Thibault Saunier
c3ba1f7351
composition: cleanup dispose / finalize
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
c669477819
composition: remove children warning drop HACK.
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:11 +01:00
Thibault Saunier
0b292ea2dc
composition: remove now useless notion of GnlCompositionEntry.
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:11 +01:00
Mathieu Duponchelle
caa916e509
composition: cleanup GnlCompositionEntry before its actual removal.
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
dcb7577673
composition: remove now useless prop "deactivated_elements_state".
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
3b749835e9
composition: Remove now useless flag "reset_time".
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
3e3ac438a4
composition: Remove now useless flag "stackvalid".
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
f826851f3b
composition: remove now useless "flushing" flag.
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
619b157ec3
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>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
0951cc07e2
composition: Add the stack start/stop that has been set in dotfile name
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
8526ba6273
composition: Push flush events *downstream* not 'somewhere' :)
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Thibault Saunier
7d9ed1f185
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>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
92ff7ffa6c
composition: Only sync state of current bin when activating new stack.
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
c94dfdc688
composition: Start kindergarten task when going to READY.
...
And stop it when going back to NULL.
Update tests.
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Thibault Saunier
50959f9c10
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>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
72ec11ef06
composition: Avoid emitting COMMITED like crazy
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
fe5ca968d0
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>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
ccf9a3e3d7
composition: We are now waiting for caps to restart our task
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
82cbbf3b86
composition: Remove useless functions to add GSources and add debugging
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
668331561b
composition: Remove DONE fixme
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
c256fd1486
composition: Keep our GSources in a list making their thread safe
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
c022765529
composition: Concider the last action as DONE when we get a CAPS or SEGMENT
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
7976d55e56
composition: only forward our flush start / stops
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
c6cfed94da
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>
2014-10-31 11:58:10 +01:00
Thibault Saunier
1dbf0b9146
composition: do not flush downstream when updating pipeline ourselves.
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
b7265ecde2
composition: Set update to TRUE when updating the stack because of EOS
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:10 +01:00
Thibault Saunier
afc483b69d
composition: Handle seeking current stack while PAUSED
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:10 +01:00
Mathieu Duponchelle
6869c58e28
composition: Add and enhance some debug
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:09 +01:00
Thibault Saunier
48bd4c3046
composition: Dot the newly created stacks
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Thibault Saunier
b28c506121
composition: Factor out a function to seek the current stack
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Mathieu Duponchelle
75a809cf75
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>
2014-10-31 11:58:09 +01:00
Thibault Saunier
f6cb54c2ef
composition: Set the real_eos_seqnum in a dedicated method
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Mathieu Duponchelle
28bea48893
composition: Reset the real_eos_seqnum when reseting the composition
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:09 +01:00
Thibault Saunier
9759f801e5
composition: Release OBJECTS_LOCK when emiting the "commited"
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Mathieu Duponchelle
913798ea3d
composition: Use the private struct directly
...
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
2014-10-31 11:58:09 +01:00
Thibault Saunier
96672825d5
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>
2014-10-31 11:58:09 +01:00
Thibault Saunier
9d8d077627
composition: Fix the build
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Thibault Saunier
eeb475db5b
composition: Relink nodes *after* setting the seqnum
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00
Thibault Saunier
92105a17a5
composition: Handle the case were we get an EOS right after a segment
...
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-31 11:58:09 +01:00