Commit graph

18153 commits

Author SHA1 Message Date
Sebastian Dröge
aeeefe399a pad: Ensure that the pad is blocked for IDLE probes if they are called from the streaming thread too
IDLE probes that are directly called when being added will increase /
decrease the "number of IDLE probes running" counter around the call,
but when running from the streaming thread this won't happen.

This has the effect that when running from a streaming thread it is
possible to push serialized events or data out of the pad without
problems, but otherwise it would deadlock because serialized data would
wait for the IDLE probe to finish first (it is blocking after all!).

With this change it will now always consistently deadlock instead of
just every once in a while, which should make it obvious why this
happens and prevent racy deadlocks in application code.

https://bugzilla.gnome.org/show_bug.cgi?id=796895
2018-08-02 10:55:01 +03:00
Sebastian Dröge
bb3fbfbe7f typefind: Add new gst_type_find_helper_get_range_full() that returns flow return
And make use of it in the typefind element. It's useful to distinguish
between the different errors why typefinding can fail, and especially to
not consider GST_FLOW_FLUSHING as an actual error.

https://bugzilla.gnome.org/show_bug.cgi?id=796894
2018-08-02 10:54:35 +03:00
Sebastian Dröge
c4cd50f734 pad: Update pad offsets on the current event if the offset changed in pad probes
https://bugzilla.gnome.org/show_bug.cgi?id=796898
2018-08-02 10:54:23 +03:00
Sebastian Dröge
08d2ca4b5d inputselector: Forward LATENCY query to all sinkpads
Otherwise downstream will consider the pipeline not live if the active
pad is live, even though some inactive pads might be live and might
require a non-zero latency configuration.

https://bugzilla.gnome.org/show_bug.cgi?id=796901
2018-08-02 10:54:17 +03:00
Mathieu Duponchelle
5c8d2f6258 aggregator: annotate GstAggregatorClass::update_src_caps 2018-07-30 14:43:32 +02:00
Sebastian Dröge
a2145fd681 aggregator: Don't leak peer pad of inactive pads when (not) forwarding QoS events to them 2018-07-26 02:33:30 +03:00
Tim-Philipp Müller
afb3d1b3e0 Release 1.14.2 2018-07-20 00:46:57 +01:00
Tim-Philipp Müller
0f758345a8 Update docs 2018-07-20 00:46:55 +01:00
Thibault Saunier
07af74b946 basetransform: Do not check if NULL is an emtpy caps
gst_base_transform_transform_caps can return NULL in various conditions
thus we should not treat its result as valid caps.

In all other places NULL is properly handled.
2018-07-19 09:11:22 +03:00
Edward Hervey
787a9f546b concat: Properly forward the SEGMENT seqnum 2018-07-18 14:08:02 +01:00
Mark Nauwelaerts
d6c697e7d9 gst: add some GIR array annotations 2018-05-21 10:42:58 +03:00
Christoph Reiter
7cbbdf3a90 meson: Fix detection of glib-mkenums under MSYS2
Under MSYS2 glib-mkenums is an executable and has a .exe extension and
the path does not end with "glib-mkenums".

Make the script compare the path without the file extension instead.

https://bugzilla.gnome.org/show_bug.cgi?id=796273
2018-05-20 16:41:06 +01:00
Tim-Philipp Müller
cba2c7dd89 Release 1.14.1 2018-05-17 13:17:27 +01:00
Tim-Philipp Müller
4d80b15b5a Update docs 2018-05-17 13:17:26 +01:00
Tim-Philipp Müller
4c5f1098dd Update translations 2018-05-17 12:37:20 +01:00
Sebastian Dröge
d3f19741ad pad: Fix race condition causing the same probe to be called multiple times
Probes were remembering a cookie that was used to check if the probe was
already called this time before the probes list changed. However the
same probes could've been called by another thread in between and thus
gotten a new cookie, and would then be called a second time.

https://bugzilla.gnome.org/show_bug.cgi?id=795987
2018-05-14 17:01:25 +03:00
Edward Hervey
fbf6e28747 gst: Use memcpy() instead of strncpy() where appropriate
strncpy() is assumed to be for strings so the compiler assumes that
it will need an extra byte for the string-terminaning NULL.

For cases where we know it's actually "binary" data, just copy it
with memcpy.

Fixes compiler warnings with gcc 8.

https://bugzilla.gnome.org/show_bug.cgi?id=795756
2018-05-08 16:42:37 +01:00
Tim-Philipp Müller
f887db4ab1 bufferlist: fix abort due to underflow when creating 0-sized list
gst_buffer_list_new_sized(0) will cause an underflow in a calculation
which then makes it try to allocate huge amounts of memory, which
may lead to aborts.

https://bugzilla.gnome.org/show_bug.cgi?id=795758
2018-05-05 16:28:04 +02:00
Tim-Philipp Müller
c97c95fc60 aggregator: fix exports and since marker for new API
https://bugzilla.gnome.org/show_bug.cgi?id=795332
2018-05-05 11:32:12 +02:00
Olivier Crête
2821126d60 aggregator: Add API to check if a pad has a new buffer
https://bugzilla.gnome.org/show_bug.cgi?id=795332
2018-05-04 13:48:17 +02:00
Tim-Philipp Müller
42fda19a7c meson: fix invalid keyword argument warnings
cc.compiles() doesn't have a 'prefix' argument (yet) and the
prefix has already been prepended to the source code snippets.

https://github.com/mesonbuild/meson/issues/2364
2018-04-23 18:55:29 +01:00
Tim-Philipp Müller
5c774f0842 multiqueue, inputselector: show pad properties in gst-inspect-1.0 2018-04-23 18:55:23 +01:00
Mark Nauwelaerts
e7ccd58171 base: fix some GIR annotations
Mostly related to out parameters and their transfer
2018-04-16 11:11:36 +03:00
Mark Nauwelaerts
2601fabccf gst: add some GIR array annotations 2018-04-16 11:11:36 +03:00
Tim-Philipp Müller
ee0619ec66 gstdebug: fix occasional deadlocks on windows when outputting debug logging
When outputting debug logs on Windows, some sections are protected
with a non-recursive lock. Turns out though that gst_debug_message_get()
might indirectly, via our printf format extensions, call code which
in turn would try to log something when it can't handle something. If
that happens we end up in gst_debug_log_default() again recursively and
try to again take the lock that's already taken, thus deadlocking.

Format the debug message string outside of the critical section
instead to avoid this.

https://bugzilla.gnome.org/show_bug.cgi?id=784382
2018-04-11 23:19:46 +01:00
Tim-Philipp Müller
92887d4767 gsturi: include gstconfig.h earlier for GST_API define 2018-04-11 23:19:43 +01:00
Jan Alexander Steffens (heftig)
0b293cad89 gstinfo: fix debug levels being applied in the wrong order
Remove unneeded reapplication of patterns. Besides being
superfluous (gst_debug_reset_threshold already applies
patterns) it was also wrong and didn't stop checking patterns
after the first match (broken in 67e9d139).

Also fix up unit test which checked for the wrong order.

https://bugzilla.gnome.org/show_bug.cgi?id=794717
2018-04-05 20:01:16 +01:00
Matthew Waters
1e3272ee91 bin: fix deep-element-added signal debug log message
Adding the bin to the child element doesn't really make sense.
2018-04-05 20:01:06 +01:00
Sebastian Dröge
fef082b5d0 gst: Fix compilation with latest GLib
g_object_ref() forwards the type of its argument nowadays.

./grammar.y:409:14: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
gstchildproxy.c:212:7: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
2018-03-25 12:36:09 +03:00
Sebastian Dröge
0ca5957342 net: Include gstnetcontrolmessagemeta.h in net.h 2018-03-25 12:32:42 +03:00
Sebastian Dröge
deb0d9d49b paramspecs: Set g-i annotation values for GST_PARAM_* constants 2018-03-25 12:32:36 +03:00
Sebastian Dröge
72025c538c elementfactory: GST_ELEMENT_FACTORY_TYPE_DECODABLE had DECRYPTOR added, update g-i annotation value 2018-03-25 12:32:31 +03:00
Tim-Philipp Müller
80e0e90d00 Release 1.14.0 2018-03-19 20:09:55 +00:00
Tim-Philipp Müller
81450fb55b Update docs 2018-03-19 20:09:51 +00:00
Tim-Philipp Müller
bc431c2af3 Release 1.13.91 2018-03-13 19:09:04 +00:00
Tim-Philipp Müller
f9961026c0 Update docs 2018-03-13 19:08:54 +00:00
Tim-Philipp Müller
e1ac1bc3a8 meson: docs: update api decorators to ignore 2018-03-13 11:54:42 +00:00
Tim-Philipp Müller
99df754c22 docs: fixup for new libs API export decorators 2018-03-13 00:57:37 +00:00
Tim-Philipp Müller
d86a90550b net: GST_EXPORT -> GST_NET_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 00:57:37 +00:00
Tim-Philipp Müller
6b286fb7dd controller: GST_EXPORT -> GST_CONTROLLER_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 00:57:37 +00:00
Tim-Philipp Müller
357e7c7b02 check: GST_EXPORT -> GST_CHECK_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 00:57:36 +00:00
Tim-Philipp Müller
7e2ace8618 base: GST_EXPORT -> GST_BASE_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 00:46:00 +00:00
Tim-Philipp Müller
8983cce9f6 gst: GST_EXPORT -> GST_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 00:45:35 +00:00
Matthew Waters
7a008ea481 promise: be more explicit in docs about who/when to use reply/interrupt/expire
https://bugzilla.gnome.org/show_bug.cgi?id=794153
2018-03-12 22:06:21 +11:00
Nicolas Dufresne
cbd03e26ce basesrc: Balance unlock/unlock_stop in _src_stop()
Otherwise it's possible that we won't be able to start again
depending the implementation. We do start/stop in normal use cases
whenever GST_QUERY_SCHEDULING happens before we are started.

https://bugzilla.gnome.org/show_bug.cgi?id=794149
2018-03-07 20:03:56 -05:00
Nicolas Dufresne
12c5d903c9 basesrc: No need to stop flushing in start_complete
The flushing state is handled a bit differently, there is no need
to stop flushing in start_complete. This would other result in
unlock_stop being called without unlock_start.

Unlike what the old comment says, there is no need to take the live
lock here, we are still single threaded at this point (app thread
or the state change thread). Also, we will wait for playing state
in create/getrange, no need to do that twice.

https://bugzilla.gnome.org/show_bug.cgi?id=794149
2018-03-07 20:03:56 -05:00
Sebastian Dröge
f204b57fa5 debugutils: Change dot-file functions documentation to proper gtk-doc
This way gobject-introspection also picks it up and handles our
annotations.

See https://gitlab.gnome.org/GNOME/gobject-introspection/issues/194
2018-03-05 11:52:24 +02:00
Sebastian Dröge
89eac59e92 queuearray: Implement pop_tail_struct() for completeness
All other variants of {peek,pop}_{head,tail}_{,struct} were already
implemented.

https://bugzilla.gnome.org/show_bug.cgi?id=794035
2018-03-05 09:39:57 +02:00
Sebastian Dröge
a1bf0f0e6a gst: Add some more (type filename) annotations 2018-03-04 10:25:08 +02:00
Tim-Philipp Müller
87be91a260 Release 1.13.90 2018-03-03 21:51:58 +00:00