Mathieu Duponchelle
52aa6a9dda
aggregator: make peek() has() pop() drop() buffer API threadsafe
...
Enforce that the last buffer that was peeked (or had its existence
checked) on a pad is the one that gets popped / dropped, resetting
at the end of each aggregation cycle.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/603
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/608 >
2020-09-09 01:39:27 +00:00
Mathieu Duponchelle
25383eaa5c
aggregator: refactor flushing logic
...
Instead of tracking "pending_flush_*" on the pads and the
aggregator, we now simply track the last seqnum for flush start
and flush stop events on the pads, and use it to determine whether
we should enter or exit our flushing state.
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/977
2019-06-10 23:04:31 +02:00
luz.paz
4a402c1c7d
Fix typos in comments and docs
...
Found via `codespell`
https://bugzilla.gnome.org/show_bug.cgi?id=795610
2018-05-01 11:18:03 +01:00
Mathieu Duponchelle
8c10f1e2b4
gstaggregator: pads must inherit from #GstAggregatorPad
...
Document this, and take advantage of that fact to use
GstAggregator.srcpad.segment instead of GstAggregator.segment
https://bugzilla.gnome.org/show_bug.cgi?id=793942
2018-03-01 15:25:53 +01:00
Mathieu Duponchelle
a567cc13a5
Revert "gstaggregator: pads must inherit from #GstAggregatorPad"
...
This reverts commit 9774b3775d
.
Pushed by mistake
2018-03-01 01:15:34 +01:00
Mathieu Duponchelle
9774b3775d
gstaggregator: pads must inherit from #GstAggregatorPad
...
Document this, and take advantage of that fact to use
GstAggregator.srcpad.segment instead of GstAggregator.segment
https://bugzilla.gnome.org/show_bug.cgi?id=793942
2018-03-01 00:39:50 +01:00
Tim-Philipp Müller
bce246f39f
aggregator: rename _get_buffer() -> _peek_buffer() and _steal -> _pop
...
https://bugzilla.gnome.org/show_bug.cgi?id=791204
2018-01-23 09:44:44 +00:00
Tim-Philipp Müller
c26a802f5a
tests: aggregator: fix caps leak in unit test
2017-12-06 20:58:42 +00:00
Stefan Sauer
917214ed91
tests: comment and logging cleanups for audiomixer and aggregator
...
Remove some references to 'collectpads'. Logs pads through the object variants.
Add some more comments. Remove a left over comment.
2017-12-02 15:10:27 +00:00
Stefan Sauer
00d6f46ff8
aggregator: add two more tests for a sequence of data
...
This verifies that we handle events and queries at the head of the queue and
then buffers.
2017-12-02 15:10:27 +00:00
Stefan Sauer
fbe82b7fa1
aggregator: refactor the test helper
...
Make the test helpers use a queue. This lets us also test sequences of events,
queries and data.
2017-12-02 15:10:27 +00:00
Stefan Sauer
9efffd05e2
aggregator: test cleanup
...
Remove gst_init() from a few tests. Use _OBJECT variants in logging. Remove
arbitrary extra blank lines. Make push_event() more like push_buffer() - set
the event to NULL and add cleanup to _chain_data_clear().
2017-12-02 15:10:27 +00:00
Edward Hervey
ab4dd3f577
check: Fix usage of dual probes
...
Using two (or more) probes on the same pad where one of the probe
returns HANDLED or DROP is tricky since the other probes might
not be called.
Instead use regular probes and a proper pad (the sinkpad already existed,
it only required to be activated and have a dummy chain function for
the events/buffers to be received/handled properly)
2017-12-02 15:10:27 +00:00
Sebastian Dröge
6bbd5b8dc5
aggregator: Fix leak in unit test
...
GST_PAD_PROBE_HANDLED means that we should've unreffed the probe data,
it was handled by us in one way or another.
2017-12-02 15:10:26 +00:00
Vineeth TM
f42b7042d7
bad: use new gst_element_class_add_static_pad_template()
...
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2017-12-02 15:10:26 +00:00
Hyunjun Ko
f6ec0f705e
tests:aggregator: fix tc failure and correct check value
...
Failure by this commit 2dfa548f36
, which is
to append hooks instead of prepend.
Because of this change, aggretated_cb is not called and leads to failure.
And correct to check flush stop value instead of flush start value
https://bugzilla.gnome.org/show_bug.cgi?id=757801
2017-12-02 15:10:26 +00:00
Olivier Crête
5be540eeae
tests: Add test for seeking live pipelines
...
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2017-12-02 15:10:26 +00:00
Olivier Crête
54556d81e3
tests: Make source live to re-enable aggregator timeout tests
...
The live mode is only enabled if one of the sources if live.
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2017-12-02 15:10:26 +00:00
Reynaldo H. Verdejo Pinochet
53cb334281
aggregator: fix typo in test suite
2017-12-02 15:10:26 +00:00
Reynaldo H. Verdejo Pinochet
1bd000fb2b
aggregator: add gap event handling unit test
...
https://bugzilla.gnome.org/show_bug.cgi?id=746249
2017-12-02 15:10:26 +00:00
Tim-Philipp Müller
1fe5f9db71
aggregator: use new gst_aggregator_pad_drop_buffer()
2017-12-02 15:10:26 +00:00
Thibault Saunier
5f176b724b
aggregator: Hide GstAggregatorPad buffer and EOS fileds
...
And add a getter for the EOS.
The user should always use the various getters to access
those fields
https://bugzilla.gnome.org/show_bug.cgi?id=742684
2017-12-02 15:10:26 +00:00
Sebastian Dröge
435a477f63
aggregator: Add a timeout parameter to ::aggregate()
...
When this is TRUE, we really have to produce output. This happens
in live mixing mode when we have to output something for the current
time, no matter if we have enough input or not.
2017-12-02 15:10:26 +00:00
Tim-Philipp Müller
344c85da76
tests: fix aggregator unit test after property renaming
2017-12-02 15:10:26 +00:00
Sebastian Rasmussen
d391c9cfed
tests/aggregator: Use correct type when setting property
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741495
2017-12-02 15:10:26 +00:00
Matthew Waters
b890bff2fa
tests/aggregator: add timeout handling test for the timeout parameter
2017-12-02 15:10:26 +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
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