Commit graph

169 commits

Author SHA1 Message Date
Mathieu Duponchelle f6adb43916 aggregator: set future seqnum before propagating the seek event.
So the seqnum is properly set for the following events.
2017-12-02 15:10:25 +00:00
Thibault Saunier eb1d322962 aggregator: Store segment when seeked in READY for later use 2017-12-02 15:10:25 +00:00
Sebastian Dröge 034e74b216 aggregator: Unref the taglist in GstAggregator::stop() 2017-12-02 15:10:25 +00:00
Thibault Saunier cc14d18e08 aggregator: Take lock to ensure set_caps is not called concurently
Avoiding to be in an inconsistent state where we do not have
actual negotiate caps set as srccaps and leading to point where we
try to unref ->srccaps when they have already been set to NULL.

https://bugzilla.gnome.org/show_bug.cgi?id=735042
2017-12-02 15:10:25 +00:00
Matthew Waters 1a0b4f88c2 aggregator: fix up doc comment for set_src_caps
It does not occur 'later' anymore

https://bugzilla.gnome.org/show_bug.cgi?id=732662
2017-12-02 15:10:25 +00:00
Matthew Waters 42e2933133 videoaggregator: push the caps event as soon as we receive it
Along with the required mandatory dependent events.

Some elements need to perform an allocation query inside
::negotiated_caps().  Without the caps event being sent prior,
downstream elements will be unable to answer and will return
an error.

https://bugzilla.gnome.org/show_bug.cgi?id=732662
2017-12-02 15:10:25 +00:00
Mathieu Duponchelle 5ef53b8a29 aggregator: Reset flow_return *after* stopping the srcpad task.
Otherwise it might be set in an already running aggregate function.
2017-12-02 15:10:25 +00:00
Thibault Saunier e3075ed3ef aggregator: Flush sinkpads when stopping
All values are meaningless in that case, so we should make sure that
we clean everything
2017-12-02 15:10:25 +00:00
Thibault Saunier 7e5d9daf8e aggregator: Do not forget to reset the flow return when stoping
Setting it to FLUSHING when the element is not started, and to OK
when it starts.
2017-12-02 15:10:25 +00:00
Thibault Saunier 9a88538eca aggregator: Handle event seqnum 2017-12-02 15:10:25 +00:00
Tim-Philipp Müller 3a49e1c311 aggregator: fix locking
We would unlock a mutex we never locked on SEGMENT
events.
2017-12-02 15:10:25 +00:00
Thibault Saunier 481476c439 aggregator: Avoid destroying sources we do not own
+ Unref the maincontext in a new dispose function
+ Make sure to remove all sources on dispose

https://bugzilla.gnome.org/show_bug.cgi?id=732445
2017-12-02 15:10:25 +00:00
Thiago Santos 259a73a3dc aggregator: always store or unref the buffer on the _chain function
Otherwise it leaks, and it is very common to go to flushing when the
pipeline is stopping, leaking a buffer.
2017-12-02 15:10:25 +00:00
Thiago Santos 109f7c937b aggregator: always unref the buffer on _finish function
Otherwise the user doesn't know if it was unref'd or not
2017-12-02 15:10:25 +00:00
Thiago Santos 5f1b50fce4 aggregator: add dispose/finalize functions
Add functions to be able to cleanup the mutex/cond and pending buffers
on the aggregator and on its pad
2017-12-02 15:10:25 +00:00
Matthew Waters 19c8fcfa28 aggregator: plug a memory leak of the srccaps 2017-12-02 15:10:25 +00:00
Thibault Saunier eace37b743 libs:base: Properly declare APIs as UNSTABLE 2017-12-02 15:10:25 +00:00
Thibault Saunier bd03141055 aggregator: Fix requested pad name 2017-12-02 15:10:25 +00:00
Thibault Saunier ae91ee2c98 aggregator: Add new GstAggregator base class
This base class has been added to a newly created libgstbadbase library

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

https://bugzilla.gnome.org/show_bug.cgi?id=731917
2017-12-02 15:10:23 +00:00