platform/upstream/gstreamer.git
6 years agotests: multiqueue: Replace large test macro with function
Jan Alexander Steffens (heftig) [Sat, 23 Dec 2017 22:43:33 +0000 (23:43 +0100)]
tests: multiqueue: Replace large test macro with function

Just a bit of cleanup.

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agotests: multiqueue: Check we get CREATE+ENTER stream-statuses when adding pads
Jan Alexander Steffens (heftig) [Fri, 15 Dec 2017 08:43:40 +0000 (09:43 +0100)]
tests: multiqueue: Check we get CREATE+ENTER stream-statuses when adding pads

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agomultiqueue: Don't start new pads until parented
Jan Alexander Steffens (heftig) [Fri, 15 Dec 2017 08:14:57 +0000 (09:14 +0100)]
multiqueue: Don't start new pads until parented

Start task on new source pads added at runtime after they
have been added to the element, not during activation.

This ensures the pads can post their CREATE stream-status
messages and the application can set thread priorities.

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agomultiqueue: Split task handling from gst_single_queue_flush
Jan Alexander Steffens (heftig) [Fri, 15 Dec 2017 08:14:07 +0000 (09:14 +0100)]
multiqueue: Split task handling from gst_single_queue_flush

https://bugzilla.gnome.org/show_bug.cgi?id=756867

6 years agoaggregator: Avoid a maybe-uninitialized warning
Jan Alexander Steffens (heftig) [Sat, 23 Dec 2017 22:25:58 +0000 (23:25 +0100)]
aggregator: Avoid a maybe-uninitialized warning

Arch Linux x86_64, gcc 7.2.1-2, -Og -g3

6 years agodownloadbuffer: Don't hold the mutex while posint the download-complete message
Sebastian Dröge [Thu, 21 Dec 2017 11:47:52 +0000 (13:47 +0200)]
downloadbuffer: Don't hold the mutex while posint the download-complete message

Something might handle it from a sync message handler and call back into
downloadbuffer, causing a deadlock.

6 years agosystemclock: set_default() clock parameter can be NULL
Sebastian Dröge [Wed, 20 Dec 2017 16:56:23 +0000 (18:56 +0200)]
systemclock: set_default() clock parameter can be NULL

6 years agoelement: Annotate set_clock() clock parameter with allow-none
Sebastian Dröge [Wed, 20 Dec 2017 16:11:48 +0000 (18:11 +0200)]
element: Annotate set_clock() clock parameter with allow-none

6 years agoelement: Annotate set_bus() bus parameter as allow-none
Sebastian Dröge [Wed, 20 Dec 2017 16:09:28 +0000 (18:09 +0200)]
element: Annotate set_bus() bus parameter as allow-none

It's possible to replace the bus with NULL/None

6 years agogst-uninstalled: update for gl lib move from bad to base
Tim-Philipp Müller [Sun, 10 Dec 2017 22:50:05 +0000 (22:50 +0000)]
gst-uninstalled: update for gl lib move from bad to base

6 years agobasetransform: Allow going passthrough inside decide_allocation
Nicolas Dufresne [Tue, 12 Dec 2017 01:58:16 +0000 (20:58 -0500)]
basetransform: Allow going passthrough inside decide_allocation

Sub-class may want to decide to go passthrough/in-place by inspecting
the support meta APIs. This patch duplicates the check for this mode,
so we still don't do uneeded allocation query while we allow sub-classes
to switch the behaviour during it's own decide_allocation call.

Notice that such sub-class need to reset the class to non-passthrough in
set_caps() in order for decide_allocation to be called again. This is
needed otherwise we'd be doing an allocation query in element in which
it make no sense (notably capsfilter).

https://bugzilla.gnome.org/show_bug.cgi?id=791453

6 years agoplugin: Annotate add_dependency() arguments as NULL-terminated arrays
Sebastian Dröge [Sun, 17 Dec 2017 12:18:38 +0000 (14:18 +0200)]
plugin: Annotate add_dependency() arguments as NULL-terminated arrays

6 years agodocs: GstBus: Provide more information for ref/unref during bus watch.
Umang Jain [Wed, 13 Dec 2017 18:33:04 +0000 (00:03 +0530)]
docs: GstBus: Provide more information for ref/unref during bus watch.

https://bugzilla.gnome.org/show_bug.cgi?id=791588

6 years agoupdate win32 defs for tracer API addition
Matthew Waters [Thu, 14 Dec 2017 05:05:00 +0000 (16:05 +1100)]
update win32 defs for tracer API addition

6 years agoAutomatic update of common submodule
Matthew Waters [Thu, 14 Dec 2017 03:48:47 +0000 (14:48 +1100)]
Automatic update of common submodule

From e8c7a71 to 3fa2c9e

6 years agodocs: include tracers in the documentation
Matthew Waters [Tue, 5 Dec 2017 10:36:34 +0000 (21:36 +1100)]
docs: include tracers in the documentation

Requires exposing the tracer GType from the GstTracerFactory in order
to link the plugin with the tracer in the documentation.

https://bugzilla.gnome.org/show_bug.cgi?id=791253

6 years agocheck/harness: fix transfer annotations on buffer passing functions
Matthew Waters [Tue, 5 Dec 2017 09:56:09 +0000 (20:56 +1100)]
check/harness: fix transfer annotations on buffer passing functions

6 years agobasesrc: add buffer list support
Tim-Philipp Müller [Wed, 30 Aug 2017 12:03:28 +0000 (13:03 +0100)]
basesrc: add buffer list support

Add a gst_base_src_submit_buffer_list() function that allows subclasses
to produce a bufferlist containing multiple buffers in the ::create()
function. The buffers in the buffer list will then also be pushed out
in one go as a GstBufferList. This can reduce push overhead
significantly for sources with packetised inputs (such as udpsrc)
in high-throughput scenarios.

The _submit_buffer_list() approach was chosen because it is fairly
straight-forward, backwards-compatible, bindings-friendly (as opposed
to e.g. making the create function return a mini object instead),
and it allows the subclass maximum control: the subclass can decide
dynamically at runtime whether to return a list or a single buffer
(which would be messier if we added a create_list virtual method).

https://bugzilla.gnome.org/show_bug.cgi?id=750241

6 years agobasesrc: minor code readability improvement
Tim-Philipp Müller [Thu, 31 Aug 2017 00:18:28 +0000 (01:18 +0100)]
basesrc: minor code readability improvement

6 years agodocs: Fix a few gtk-doc warnings
Tim-Philipp Müller [Thu, 7 Dec 2017 12:05:23 +0000 (12:05 +0000)]
docs: Fix a few gtk-doc warnings

Broken links mostly.

6 years agotests: aggregator: fix caps leak in unit test
Tim-Philipp Müller [Wed, 6 Dec 2017 20:58:42 +0000 (20:58 +0000)]
tests: aggregator: fix caps leak in unit test

6 years agogstpad: Handle GST_PAD_PROBE_HANDLED on sticky event push
Edward Hervey [Wed, 6 Dec 2017 16:07:29 +0000 (17:07 +0100)]
gstpad: Handle GST_PAD_PROBE_HANDLED on sticky event push

When actually pushing an event, if we get GST_FLOW_CUSTOM_SUCCESS_1
(which is the conversion of GST_PAD_PROBE_HANDLED return value),
don't consider the stick event push as ignored, but as handled

6 years agoevent/query/message: Annotate get_structure() return value as nullable
Sebastian Dröge [Wed, 6 Dec 2017 11:40:46 +0000 (13:40 +0200)]
event/query/message: Annotate get_structure() return value as nullable

6 years agoquery: Add an empty structure in writable_structure() if there is none yet
Sebastian Dröge [Wed, 6 Dec 2017 11:36:30 +0000 (13:36 +0200)]
query: Add an empty structure in writable_structure() if there is none yet

This is consistent with how it works for GstEvent already.

6 years agodocs: Misc addition/fixes
Edward Hervey [Tue, 5 Dec 2017 17:21:00 +0000 (18:21 +0100)]
docs: Misc addition/fixes

And also add the "Since" API sections for 1.12 and 1.14

6 years agodocs: Add documentation for GST_SEQNUM_INVALID
Edward Hervey [Tue, 5 Dec 2017 17:20:34 +0000 (18:20 +0100)]
docs: Add documentation for GST_SEQNUM_INVALID

And link to it

6 years agoutils: Never return a group_id of 0, add GST_GROUP_ID_INVALID
Edward Hervey [Tue, 5 Dec 2017 16:28:55 +0000 (17:28 +0100)]
utils: Never return a group_id of 0, add GST_GROUP_ID_INVALID

Various plugins use special values (0 or G_MAXUINT32) as an
invalid/unset group_id, but nothing guarantees a groupid won't have
that value.

Instead define a value which group_id will never have and make
gst_group_id_next() always return a value different from that.

API: GST_GROUP_ID_INVALID

6 years agoharness: make bindings use the GBytes variant for _take_all_data()
Tim-Philipp Müller [Tue, 5 Dec 2017 16:42:57 +0000 (16:42 +0000)]
harness: make bindings use the GBytes variant for _take_all_data()

6 years agoharness: use new take_all_data() function in _dump_to_file().
Havard Graff [Wed, 23 Nov 2016 12:12:36 +0000 (13:12 +0100)]
harness: use new take_all_data() function in _dump_to_file().

6 years agoharness: add gst_harness_take_all_data() + _take_all_data_as_{bytes,buffer}()
Tim-Philipp Müller [Tue, 5 Dec 2017 15:28:43 +0000 (15:28 +0000)]
harness: add gst_harness_take_all_data() + _take_all_data_as_{bytes,buffer}()

Convenience function to just grab all pending data
from the harness, e.g. if we just want to check if
it matches what we expect and we don't care about
the chunking or buffer metadata.

Based on patch by: Havard Graff <havard.graff@gmail.com>

6 years agobuffer: document that _extract_dup() will return NULL for 0-sized buf
Tim-Philipp Müller [Tue, 5 Dec 2017 15:16:36 +0000 (15:16 +0000)]
buffer: document that _extract_dup() will return NULL for 0-sized buf

And make it explicit, and don't call _extract() on NULL data buffer.

6 years agomeson: Use array syntax instead of .get() in tests
Nirbheek Chauhan [Tue, 5 Dec 2017 06:57:18 +0000 (12:27 +0530)]
meson: Use array syntax instead of .get() in tests

6 years agomeson: Use new find_program fallback syntax
Nirbheek Chauhan [Thu, 23 Nov 2017 21:09:43 +0000 (02:39 +0530)]
meson: Use new find_program fallback syntax

We use this syntax in libs/gst/helpers/meson.build already.

6 years agogst: gst_element_remove_pad() is transfer none for the pad
Sebastian Dröge [Mon, 4 Dec 2017 16:08:39 +0000 (18:08 +0200)]
gst: gst_element_remove_pad() is transfer none for the pad

While the refcount of the pad is decreased, it's the refcount that is
owned by the parent (i.e. the element) and not the one passed in by the
caller.

Fixes a memory leak in bindings.

6 years agoaggregator: add finish_buffer() vfunc
Tim-Philipp Müller [Mon, 4 Dec 2017 11:24:47 +0000 (11:24 +0000)]
aggregator: add finish_buffer() vfunc

So subclasses can override the finish behaviour
and/or decorate or modify buffers before they
get pushed out.

https://bugzilla.gnome.org/show_bug.cgi?id=760981

6 years agoaggregator: disable tag merging and forwarding for now
Tim-Philipp Müller [Mon, 4 Dec 2017 12:29:05 +0000 (12:29 +0000)]
aggregator: disable tag merging and forwarding for now

Subclasses should handle this for now.

6 years agodevicemonitor: Avoid maybe-uninitialized compiler warning
Jan Alexander Steffens (heftig) [Mon, 6 Nov 2017 19:23:12 +0000 (20:23 +0100)]
devicemonitor: Avoid maybe-uninitialized compiler warning

On Arch Linux x86_64, gcc 7.2.0-3, -Og -g3:

gstdevicemonitor.c: In function ‘bus_sync_message’:
gstdevicemonitor.c:276:8: error: ‘matches’ may be used uninitialized in this function [-Werror=maybe-uninitialized]

This commit also simplifies the code a bit.

https://bugzilla.gnome.org/show_bug.cgi?id=789983

6 years agogst: Annotate various strings as type filename if they represent a path/filename
Sebastian Dröge [Sun, 3 Dec 2017 12:48:22 +0000 (14:48 +0200)]
gst: Annotate various strings as type filename if they represent a path/filename

6 years agoaggregator: hook up to docs
Tim-Philipp Müller [Sat, 2 Dec 2017 15:44:48 +0000 (15:44 +0000)]
aggregator: hook up to docs

6 years agoaggregator: hook up to build system
Tim-Philipp Müller [Sat, 2 Dec 2017 15:24:22 +0000 (15:24 +0000)]
aggregator: hook up to build system

https://bugzilla.gnome.org/show_bug.cgi?id=739010

6 years agoMove GstAggregator from -bad to core
Tim-Philipp Müller [Sat, 2 Dec 2017 15:12:25 +0000 (15:12 +0000)]
Move GstAggregator from -bad to core

Merge branch 'aggregator-move'

https://bugzilla.gnome.org/show_bug.cgi?id=739010

6 years agoaggregator: Remove klass->sinkpads_type
Mathieu Duponchelle [Mon, 6 Nov 2017 20:07:51 +0000 (21:07 +0100)]
aggregator: Remove klass->sinkpads_type

This posed problems for the python bindings (and possibly others).

Instead, subclasses now use add_pad_template_with_gtype.

https://bugzilla.gnome.org/show_bug.cgi?id=789986

6 years agoaggregator: add doc blurb for gst_aggregator_pad_is_eos()
Tim-Philipp Müller [Thu, 2 Nov 2017 18:32:55 +0000 (18:32 +0000)]
aggregator: add doc blurb for gst_aggregator_pad_is_eos()

6 years agoaggregator: also remove now-unused PadForeachFunc declaration
Tim-Philipp Müller [Thu, 2 Nov 2017 16:05:12 +0000 (16:05 +0000)]
aggregator: also remove now-unused PadForeachFunc declaration

https://bugzilla.gnome.org/show_bug.cgi?id=785679

6 years agoaggregator: Remove pad iterator function
Olivier Crête [Wed, 2 Aug 2017 16:08:26 +0000 (12:08 -0400)]
aggregator: Remove pad iterator function

Use new gst_element_foreach_sink_pad() from core instead.

https://bugzilla.gnome.org/show_bug.cgi?id=785679

6 years agoaggregator: use new gst_element_foreach_sink_pad()
Tim-Philipp Müller [Thu, 2 Nov 2017 12:46:26 +0000 (12:46 +0000)]
aggregator: use new gst_element_foreach_sink_pad()

Instead of gst_aggregator_iterate_sinkpads() which will
soon be removed.

https://bugzilla.gnome.org/show_bug.cgi?id=785679

6 years agoaggregator: add more comments
Stefan Sauer [Wed, 1 Nov 2017 14:18:08 +0000 (15:18 +0100)]
aggregator: add more comments

6 years agotests: comment and logging cleanups for audiomixer and aggregator
Stefan Sauer [Mon, 23 Oct 2017 09:52:38 +0000 (11:52 +0200)]
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.

6 years agoaggregator: fix type for latency property (int64 -> GStClockTime)
Stefan Sauer [Sun, 22 Oct 2017 17:43:17 +0000 (19:43 +0200)]
aggregator: fix type for latency property (int64 -> GStClockTime)

The value is used as GstClockTiem in the code. Adapt the hack^H^H^H^Hcode
in live-adder.

6 years agoaggregator: Don't take flush lock from output thread
Olivier Crête [Thu, 13 Jul 2017 23:03:19 +0000 (19:03 -0400)]
aggregator: Don't take flush lock from output thread

Instead just take it in the chain function.

https://bugzilla.gnome.org/show_bug.cgi?id=784911

6 years agoaggregator: Don't block if adding to the tail of the queue
Olivier Crête [Thu, 13 Jul 2017 22:38:34 +0000 (18:38 -0400)]
aggregator: Don't block if adding to the tail of the queue

If we're adding to the tail of the queue, it's because we're converting
a gap event, so don't block there it means we're calling from the output
thread.

https://bugzilla.gnome.org/show_bug.cgi?id=784911

6 years agoaggregator: review code related to time level
Stefan Sauer [Tue, 17 Oct 2017 06:03:02 +0000 (08:03 +0200)]
aggregator: review code related to time level

Add a comment for when the state matters. Use a local var for priv in
update_time_level() to improve readability. Move the our_latency local
var below the query results checks.

6 years agoaggregator: init latency values with 0 instead of FALSE
Stefan Sauer [Tue, 17 Oct 2017 05:51:51 +0000 (07:51 +0200)]
aggregator: init latency values with 0 instead of FALSE

6 years agoaggregator: code cleanup for event and query func
Stefan Sauer [Sun, 15 Oct 2017 18:46:09 +0000 (20:46 +0200)]
aggregator: code cleanup for event and query func

Only look up klass for non serialized events/queries. For events remove
superfluous assignment for the return value in the flushing case.

6 years agoaggregator: simplify pad_event_func for FLUSH_STOP events
Stefan Sauer [Sun, 15 Oct 2017 15:46:45 +0000 (17:46 +0200)]
aggregator: simplify pad_event_func for FLUSH_STOP events

We want to skip serialization for FLUSH_STOP events (apparently). We can
simplify the code to add it to the top-level conditions. There was nothing
done in the first code path if the event was FLUSH_STOP.

6 years agoaggregator: drop special casing for eos
Stefan Sauer [Sun, 15 Oct 2017 14:57:13 +0000 (16:57 +0200)]
aggregator: drop special casing for eos

Just queue it like any other serialized event. This way we don't need to
check if there still are buffers in the queue.

Validated with the tests and gst-launch-1.0 pipelines.

6 years agoaggregator: add a doc-blob for the event_func
Stefan Sauer [Sun, 15 Oct 2017 14:51:21 +0000 (16:51 +0200)]
aggregator: add a doc-blob for the event_func

6 years agoaggregator: rename a local variable
Stefan Sauer [Sun, 15 Oct 2017 14:48:21 +0000 (16:48 +0200)]
aggregator: rename a local variable

The variable tracks wheter the queue is not empty, but num_buffers==0. That
means we have events or queries to process. Rename accordingly.

6 years agoaggregator: remove commented code
Stefan Sauer [Sun, 15 Oct 2017 10:17:42 +0000 (12:17 +0200)]
aggregator: remove commented code

The SEGMENT_DONE event does not require any special treatment. This is
commented out in 6efc106a67.

6 years agoaggregator: move the comment for the locks to the lock macros
Stefan Sauer [Sun, 15 Oct 2017 10:14:28 +0000 (12:14 +0200)]
aggregator: move the comment for the locks to the lock macros

Looks like some code was inserted afterwards.

6 years agoaggregator: improve section docs
Stefan Sauer [Sun, 15 Oct 2017 08:44:44 +0000 (10:44 +0200)]
aggregator: improve section docs

Mention how data ends up in the queues. Document the relation of the pad
functions and the class vmethods to get events and queries.

6 years agoaggregator: add two more tests for a sequence of data
Stefan Sauer [Sat, 14 Oct 2017 16:18:44 +0000 (18:18 +0200)]
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.

6 years agoaggregator: refactor the test helper
Stefan Sauer [Sat, 14 Oct 2017 11:26:02 +0000 (13:26 +0200)]
aggregator: refactor the test helper

Make the test helpers use a queue. This lets us also test sequences of events,
queries and data.

6 years agoaggregator: test cleanup
Stefan Sauer [Sat, 14 Oct 2017 10:08:19 +0000 (12:08 +0200)]
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().

6 years agoaggregator: cleanup event forwarding
Stefan Sauer [Tue, 3 Oct 2017 10:36:10 +0000 (12:36 +0200)]
aggregator: cleanup event forwarding

Don't copy the whole event struct. Set the input params when we call the
forwarding helper. Initialize the internal fields and return values in the
helper.

6 years agoaggregator: simplify src_event
Stefan Sauer [Tue, 3 Oct 2017 10:08:42 +0000 (12:08 +0200)]
aggregator: simplify src_event

Avoid extra ref/unref, we have a ref and do_seek unrefs. Just return the result
as we have. This lets us remove the local var plus the label.

6 years agoaggregator: register func for do_events_and_queries
Stefan Sauer [Sun, 17 Sep 2017 19:37:03 +0000 (12:37 -0700)]
aggregator: register func for do_events_and_queries

This fixes logging the func ptr from _iterate_sinkpads().

6 years agoaggregator: only set clipped_buffer to NULL if needed
Stefan Sauer [Sun, 17 Sep 2017 19:30:37 +0000 (12:30 -0700)]
aggregator: only set clipped_buffer to NULL if needed

6 years agoaggregator: rename check_events
Stefan Sauer [Sun, 17 Sep 2017 19:25:37 +0000 (12:25 -0700)]
aggregator: rename check_events

This function also handles queries. Update the code to loop until all events and
queuries are handled.

6 years agoaggregator: add a few more comments to PadPrivate struct
Stefan Sauer [Sun, 17 Sep 2017 19:24:54 +0000 (12:24 -0700)]
aggregator: add a few more comments to PadPrivate struct

6 years agoaggregator: rename buffers field to data
Stefan Sauer [Sun, 17 Sep 2017 18:39:12 +0000 (11:39 -0700)]
aggregator: rename buffers field to data

The queue stores buffers, events and queries.

6 years agoaggregator: documentaion fixes
Stefan Sauer [Sun, 17 Sep 2017 17:18:56 +0000 (10:18 -0700)]
aggregator: documentaion fixes

Fix typos and remove params docs, where the param was moved.

6 years agocheck: Fix usage of dual probes
Edward Hervey [Tue, 5 Sep 2017 12:26:52 +0000 (14:26 +0200)]
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)

6 years agoaggregator: log all events
Stefan Sauer [Sun, 30 Jul 2017 10:17:57 +0000 (12:17 +0200)]
aggregator: log all events

We already log a few events explicitly, just log them all with more detail.

6 years agoaggregator: fix header formatting
Tim-Philipp Müller [Sat, 29 Jul 2017 15:54:38 +0000 (16:54 +0100)]
aggregator: fix header formatting

6 years agoaggregator: Remove the GAP event from the queue before queueing up the GAP buffer
Sebastian Dröge [Mon, 24 Jul 2017 15:38:57 +0000 (18:38 +0300)]
aggregator: Remove the GAP event from the queue before queueing up the GAP buffer

Otherwise check_events() will not remove the GAP event (as the queue
tail is not the event anymore but the GAP buffer), then the GAP buffer
is handled, then the GAP event is handled again, ... forever.

6 years agoaggregator: mark symbols explicitly for export with GST_EXPORT
Tim-Philipp Müller [Mon, 17 Jul 2017 23:30:51 +0000 (00:30 +0100)]
aggregator: mark symbols explicitly for export with GST_EXPORT

6 years agoaggregator: remove duplicated code fragment
Stefan Sauer [Thu, 13 Jul 2017 20:00:58 +0000 (22:00 +0200)]
aggregator: remove duplicated code fragment

This code already runs above when (event || query).

6 years agoaggregator: code cleanups
Stefan Sauer [Thu, 13 Jul 2017 19:55:55 +0000 (21:55 +0200)]
aggregator: code cleanups

Fix comment typos, some copy'n'paste in logging. Add more doc comments.

6 years agoaggregator: Invalidate pad's tail position ...
Mathieu Duponchelle [Thu, 13 Apr 2017 20:11:55 +0000 (22:11 +0200)]
aggregator: Invalidate pad's tail position ...

when dequeuing a segment event.

https://bugzilla.gnome.org/show_bug.cgi?id=784593

6 years agoaggregator: fix "'aggclass' may be used uninitialized in this function"
Stefan Sauer [Sat, 1 Jul 2017 18:23:25 +0000 (20:23 +0200)]
aggregator: fix "'aggclass' may be used uninitialized in this function"

6 years agoaggregator: Process serialized queries through the queue
Olivier Crête [Mon, 22 May 2017 22:53:57 +0000 (00:53 +0200)]
aggregator: Process serialized queries through the queue

This ensures that they really get processed in order with
buffers. Just waiting for the queue to be empty is sometimes not
enough as the buffers are dropped from the pad before the result is
pushed to the next element, sometimes resulting in surprising
re-ordering.

6 years agoaggregator: Set flow to FLUSHING on pad stop
Olivier Crête [Mon, 22 May 2017 22:53:23 +0000 (00:53 +0200)]
aggregator: Set flow to FLUSHING on pad stop

Fixes a rare race where the pad is being stopped while doing a query.

6 years agoaggregator: Request pad templates which are not request pad
Olivier Crête [Fri, 18 Nov 2016 19:44:16 +0000 (14:44 -0500)]
aggregator: Request pad templates which are not request pad

https://bugzilla.gnome.org/show_bug.cgi?id=782920

6 years agoaggregator: Don't restrict sink pad names
Olivier Crête [Fri, 18 Nov 2016 19:41:54 +0000 (14:41 -0500)]
aggregator: Don't restrict sink pad names

Sink pads could have other names than sink_%u

https://bugzilla.gnome.org/show_bug.cgi?id=782920

6 years agoaggregator: Implement propose allocation
Olivier Crête [Sun, 21 May 2017 13:19:17 +0000 (15:19 +0200)]
aggregator: Implement propose allocation

https://bugzilla.gnome.org/show_bug.cgi?id=782918

6 years agoaggregator: Check for the result of caps events
Olivier Crête [Sun, 21 May 2017 12:34:13 +0000 (14:34 +0200)]
aggregator: Check for the result of caps events

https://bugzilla.gnome.org/show_bug.cgi?id=782918

6 years agoaggregator: Caps event always goes to the aggregate thread
Olivier Crête [Sun, 21 May 2017 12:28:00 +0000 (14:28 +0200)]
aggregator: Caps event always goes to the aggregate thread

So no need to check it here.

https://bugzilla.gnome.org/show_bug.cgi?id=782918

6 years agoaggregator: Add downstream allocation query
Olivier Crête [Sat, 20 May 2017 14:58:54 +0000 (16:58 +0200)]
aggregator: Add downstream allocation query

https://bugzilla.gnome.org/show_bug.cgi?id=746529

6 years agoaggregator: Remove unused GST_FLOW_NOT_HANDLED
Olivier Crête [Sat, 20 May 2017 13:56:16 +0000 (15:56 +0200)]
aggregator: Remove unused GST_FLOW_NOT_HANDLED

6 years agoaggregator: add simple support for caps handling
Matthew Waters [Sat, 20 May 2017 12:24:57 +0000 (14:24 +0200)]
aggregator: add simple support for caps handling

Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.

https://bugzilla.gnome.org/show_bug.cgi?id=776931

6 years agoaggregator: Reset upstream latency on first buffer
Nicolas Dufresne [Sat, 20 May 2017 11:10:53 +0000 (13:10 +0200)]
aggregator: Reset upstream latency on first buffer

In the case an aggregator is created and pads are requested but only
linked later, we end up never updating the upstream latency.
This was because latency queries on pads that are not linked succeed,
so we never did a new query once a live source has been linked, so the
thread was never started.

https://bugzilla.gnome.org/show_bug.cgi?id=757548

6 years agoaggregator: Always handle sync'ed events on output thread
Olivier Crête [Sat, 14 May 2016 13:52:37 +0000 (15:52 +0200)]
aggregator: Always handle sync'ed events on output thread

Having all synchronized events always be handled on the output
thread should make synchronization easier.

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Delay clipping to output thread
Olivier Crête [Wed, 6 Jul 2016 20:39:17 +0000 (16:39 -0400)]
aggregator: Delay clipping to output thread

This is required because the synchronized events like caps or segments
may only be processed on the output thread.

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Make pad eos as soon as all buffers are processed, dont way for events
Olivier Crête [Thu, 7 Jul 2016 20:13:57 +0000 (16:13 -0400)]
aggregator: Make pad eos as soon as all buffers are processed, dont way for events

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Only count buffers when declaring queue full
Olivier Crête [Thu, 7 Jul 2016 15:47:40 +0000 (11:47 -0400)]
aggregator: Only count buffers when declaring queue full

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Simplify clip function
Olivier Crête [Wed, 6 Jul 2016 20:41:44 +0000 (16:41 -0400)]
aggregator: Simplify clip function

The return value was ignored anyway

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Only declare first buffer on actual buffer
Olivier Crête [Sun, 15 May 2016 13:04:58 +0000 (16:04 +0300)]
aggregator: Only declare first buffer on actual buffer

The function needs to be unlocked if any data is received, but only
end the first buffer processing on an actual buffer, synchronized events
don't matter on the first buffer processing.

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Set initial position on first buffer
Olivier Crête [Wed, 10 May 2017 00:20:07 +0000 (20:20 -0400)]
aggregator: Set initial position on first buffer

Set the initial position on the first buffer, otherwise the queue
will grow without limits before the output thread is started.

https://bugzilla.gnome.org/show_bug.cgi?id=781673

6 years agoaggregator: Reset the pad's first buffer flag with the rest
Olivier Crête [Wed, 10 May 2017 00:06:29 +0000 (20:06 -0400)]
aggregator: Reset the pad's first buffer flag with the rest

There is not reason to have separate code to reset this one.

https://bugzilla.gnome.org/show_bug.cgi?id=781673