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
e947a5d2a1
tests: aggregator: fix various leaks in the tests
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