Commit graph

8458 commits

Author SHA1 Message Date
Sebastian Dröge
1908daf29c event: Require writable events for setting the running-time-offset and sequence number
Otherwise multiple code paths with the same event could change the
values on each other.

https://bugzilla.gnome.org/show_bug.cgi?id=796615
2018-06-18 10:30:51 +03:00
Guillaume Desmottes
6dba0d91ed gst_structure_to_string: display actual value of pointers
We used to always display "NULL" which was pretty confusing when
debugging.

https://bugzilla.gnome.org/show_bug.cgi?id=794355
2018-06-15 11:37:24 +02:00
Thibault Saunier
8833ca942e stream: Add some missing API safe guards 2018-06-13 16:27:24 -04:00
Tim-Philipp Müller
b0777476ff poll: minor docs clarification
'Not implemented' could be misinterpreted to mean that
the API doesn't even exist there.
2018-06-08 17:58:43 +01:00
Guillaume Desmottes
b2593133b5 poll: add API to watch for POLLPRI
Windows doesn't seem to have an equivalent of POLLPRI so disabled those
functions on this platform.

This API can be used, for example, to wait for video4linux events which
are using POLLPRI.

https://bugzilla.gnome.org/show_bug.cgi?id=794977
2018-06-08 11:53:55 -04:00
Guillaume Desmottes
1e321eb51f poll: stop treating on POLLPRI as 'read'
Current code was considering "can read" as having either POLLIN or POLLPRI being
set.
This may lead to client being awaken because of POLLPRI, starting a blocking
read and getting stuck because there is actually nothing to read.

This patch removes POLLPRI handling in read code and I'll add specific
API to wait for POLLPRI.

https://bugzilla.gnome.org/show_bug.cgi?id=794977
2018-06-08 11:53:55 -04:00
Edward Hervey
52d4ae7680 message: Only allow setting valid seqnum on messages
If we want to make sure we never end up with invalid seqnum on
messages let's forbid setting them.
2018-06-05 17:01:05 +02:00
Edward Hervey
14e849927d event: Only allow setting valid seqnum on events
If we want to make sure we never end up with invalid seqnum on
events let's forbid setting them.
2018-06-05 16:59:50 +02:00
Edward Hervey
5b0fe8d174 bin: Make sure we don't use invalid seqnums on messages
There is a possibility that the accumlation functions don't set
a seqnum. Make sure we only set/override the seqnum of the new
messages if we *have* a valid upstream seqnum to use
2018-06-05 16:58:21 +02:00
Edward Hervey
dea69f4c1e datetime: Update/fix documentation 2018-05-21 11:37:00 +02:00
Edward Hervey
438c1c116d sample: Update documentation 2018-05-21 11:36:42 +02:00
Edward Hervey
580f94ee97 gst: Add an example to GST_STATIC_PAD_TEMPLATE macro 2018-05-21 11:17:30 +02:00
Mark Nauwelaerts
a7456eec0d gst: add some GIR array annotations 2018-05-21 09:15:09 +02:00
Sebastian Dröge
13d5957fd7 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-11 18:54:55 +03:00
Edward Hervey
80dfb7bb3f 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.

https://bugzilla.gnome.org/show_bug.cgi?id=795756
2018-05-07 17:05:36 +02:00
Jan Schmidt
273d0a05e8 gstevent: Add some FIXME: 2.0 about removing the timestamp
The timestamp field isn't valuable or used well anywhere. We
should remove it for GStreamer 2.0

https://bugzilla.gnome.org/show_bug.cgi?id=761462
2018-05-07 01:33:16 +10:00
Nirbheek Chauhan
4fb02fc85b meson: Update option names to omit disable_ and with- prefixes
Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually.
2018-05-05 20:30:43 +05:30
Tim-Philipp Müller
a5ecb465a9 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:20:05 +02:00
Francisco Velazquez
554f604d37 debugutils: Update configure option in documentation
Update documentation on non existent option `gst-enable-gst-debug'.  Instead,
one has to make sure that the `--disable-gst-debug' option was not used when
compiling GStreamer (i.e., `./configure --disable-gst-debug').

https://bugzilla.gnome.org/show_bug.cgi?id=795801
2018-05-04 15:25:24 +03:00
luz.paz
98200ddd8d Source code typo fixes
https://bugzilla.gnome.org/show_bug.cgi?id=795610
2018-05-01 11:25:21 +01: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
Tim-Philipp Müller
0691278377 buffer: don't over-allocate internal GstMeta items
We would allocate space for two GstMeta structs even though
there is only one in the end (the one in GstMetaItem and in
GstFooMeta overlap).
2018-04-25 18:28:00 +01:00
Xavier Claessens
b00b1d5361 Meson: Use library() to build both static and shared libs
Meson supports building both static and shared libraries in a single
library() call. It has the advantage of reusing the same .o objects and
thus avoid double compilation.

https://bugzilla.gnome.org/show_bug.cgi?id=794627
2018-04-25 00:40:30 +01:00
Thibault Saunier
121cfe3575 Revert "docs: Minor fix in event_new_select_streams"
This reverts commit f218917d02.
2018-04-18 11:35:20 -03:00
Thibault Saunier
f218917d02 docs: Minor fix in event_new_select_streams 2018-04-17 20:03:37 -03:00
Thibault Saunier
b27ee943c2 caps: Add a macro based variant of gst_caps_copy
This way we do not hit the performance overhead of having the method
not inlined but still can use it from bindings.
2018-04-17 14:00:20 -03:00
Thibault Saunier
11e0f451eb pad: Handle changing sticky events in pad probes
In the case where the user sets a new padprobeinfo->data in a probe
where the data is a sticky event, the new sticky event should be automatically
sticked on the probed pad.

https://bugzilla.gnome.org/show_bug.cgi?id=795330
2018-04-17 13:36:26 -03:00
Thibault Saunier
588e054e6d debug: Make PADS debug background blue
Red on red was... suboptimal!

https://bugzilla.gnome.org/show_bug.cgi?id=795330
2018-04-17 13:36:26 -03:00
Thibault Saunier
d1b2d3429c gst: Stop inlining gst_caps_copy
This way it gets exposed to bindings through GObject Introspection.
2018-04-17 10:15:06 -03:00
Aurelien Jarno
8a156d1725 gstconfig.h.in: initial RISC-V support
RISC-V supports unaligned accesses, but these might run extremely slowly
depending on the implementation. Therefore set GST_HAVE_UNALIGNED_ACCESS
to 0 on this architecture.

https://bugzilla.gnome.org/show_bug.cgi?id=795271
2018-04-15 11:22:48 +03:00
Mathieu Duponchelle
ed5d888ba5 gstsample: new API
gst_sample_set_buffer
gst_sample_set_caps
gst_sample_set_segment
gst_sample_set_info
gst_sample_is_writable
gst_sample_make_writable

This commit makes it possible to reuse a sample object and avoid
unnecessary memory allocations, for example in appsink.

In addition, writability is now required to set the buffer list.

https://bugzilla.gnome.org/show_bug.cgi?id=795144
2018-04-13 23:44:54 +02:00
Mark Nauwelaerts
ea0f8ebce1 gst: add some GIR array annotations 2018-04-13 20:16:33 +02:00
Víctor Manuel Jáquez Leal
e141c85f96 debugutils: Add missing parameters documentation 2018-04-13 10:57:07 +02:00
Tim-Philipp Müller
ae612551fa 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:12:44 +01:00
Tim-Philipp Müller
629bd08e02 gsturi: include gstconfig.h earlier for GST_API define 2018-04-09 14:19:19 +01:00
Jan Alexander Steffens (heftig)
6436437d83 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 11:00:09 +01:00
Jan Alexander Steffens (heftig)
c4ff069864 gstinfo: Simplify gst_debug_reset_threshold() implementation
Replace the while+goto with a for+break and check walk to determine
whether we had a match. Move up the unlock to keep the locked section as
small as possible.

https://bugzilla.gnome.org/show_bug.cgi?id=794717
2018-04-05 10:52:13 +01:00
Jan Alexander Steffens (heftig)
b12df466f2 gstinfo: Reduce code duplication around level pattern matching
Move the match, logging and set_threshold to a new function.

The log levels are different, so choose the higher one (LOG). Having two
equivalent messages at two different levels seems like a bad idea
anyway.

https://bugzilla.gnome.org/show_bug.cgi?id=794717
2018-04-05 10:52:13 +01:00
Tim-Philipp Müller
8117a29408 streamcollection: embed GQueue into the private struct 2018-04-05 10:52:13 +01:00
Edward Hervey
f5b962cd0d gst: Documentation fixes
* Fix copy-paste error for GstParamSpecArray documentation
* Use proper field name for tracer utils documentation
2018-04-02 12:42:30 +02:00
Matthew Waters
f5f1fb5780 bin: fix deep-element-added signal debug log message
Adding the bin to the child element doesn't really make sense.
2018-03-29 12:36:11 +11:00
Tim-Philipp Müller
ccf7751613 meson: remove no longer needed core enumtypes template files 2018-03-22 12:50:55 +00:00
Alessandro Decina
145eca289a meson: use gnome.mkenums_simple() to generate core enumtypes 2018-03-22 12:50:30 +00:00
Petr Kulhavy
7d75d3ef41 gstbuffer: reset buffer to its original size if intact
Enhance default_reset_buffer() to resize the buffer to its full size if the
memory hasn't changed. This allows to reuse the buffer even if the offset has
changed or the size has shrunk, rather than freeing the buffer.

Change related to: https://bugzilla.gnome.org/show_bug.cgi?id=772841
2018-03-21 17:50:30 -04:00
Sebastian Dröge
bd116608de paramspecs: Set g-i annotation values for GST_PARAM_* constants 2018-03-21 10:13:44 +02:00
Sebastian Dröge
e884980666 elementfactory: GST_ELEMENT_FACTORY_TYPE_DECODABLE had DECRYPTOR added, update g-i annotation value 2018-03-21 10:11:30 +02:00
Sebastian Dröge
70c86bc998 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-20 16:11:01 +02: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
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
a1bf0f0e6a gst: Add some more (type filename) annotations 2018-03-04 10:25:08 +02:00
Mathieu Duponchelle
d67623c7a9 meson: enable more warnings
Modeled on the autotools build, -W flags are only
added if the compiler supports them.

https://bugzilla.gnome.org/show_bug.cgi?id=793958
2018-03-01 17:20:48 +01:00
Mathieu Duponchelle
609adc0609 ghostpad: ensure we build a ghost pad ..
When we construct from a custom GType
2018-03-01 01:12:07 +01:00
Mathieu Duponchelle
60fae518b0 pad: fix mixed declarations 2018-03-01 01:09:48 +01:00
Mathieu Duponchelle
7847e69ef8 pad, ghostpad: use the template gtype if specified
Also make sure the GType passed to the with_gtype versions
of the template constructors is_a GstPad

https://bugzilla.gnome.org/show_bug.cgi?id=793933
2018-03-01 00:39:08 +01:00
Mark Nauwelaerts
9fb56a32f5 gst: fix some GIR annotations
Mostly related to out parameters and their transfer
2018-02-18 12:16:36 +01:00
Tim-Philipp Müller
ea402c7034 gstconfig.h: want deprecation warnings if GST_DISABLE_DEPRECATED is *set*
Fix inverted logic. If GST_DISABLE_DEPRECATED is undefined,
we don't want warnings about deprecated API, and if it's
defined we do want warnings.
2018-02-15 12:11:41 +00:00
Tim-Philipp Müller
ffa4dc4dce autotools: use -fno-strict-aliasing where supported
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-02-03 17:56:04 +01:00
Tim-Philipp Müller
08dab770d6 buffer: fix gtk-doc warning regarding _get_n_meta() declaration 2018-02-03 17:55:29 +01:00
Matthew Waters
442aca430a gstpromise: add since 1.14 markers 2018-02-02 15:06:36 +11:00
Mathieu Duponchelle
8451a2ab04 gstbuffer.h: move FLAG_LAST documentation back to the bottom 2018-01-31 14:01:36 +01:00
Mathieu Duponchelle
ebcdfd2e9c gstbuffer: add GST_BUFFER_FLAG_NON_DROPPABLE
This can be used to identify buffers for which a higher percentage
of redundancy should be allocated when performing forward error
correction, or to prevent still video frames from being dropped by
elements due to QoS.

https://bugzilla.gnome.org/show_bug.cgi?id=793008
2018-01-31 13:34:13 +01:00
Tim-Philipp Müller
cd10f14726 buffer: add gst_buffer_get_n_meta() convenience function
Counts how many metas there are for a certain api type.

https://bugzilla.gnome.org/show_bug.cgi?id=791918
2018-01-27 11:18:19 +00:00
Arun Raghavan
b5028383ab gst: Fix up a bunch of GIR annotations
This is mostly on nullable return values, and some other minor ones that
I ran across.

https://bugzilla.gnome.org/show_bug.cgi?id=789319
2018-01-27 10:41:24 +00:00
Arun Raghavan
41a59cddb6 devicemonitor: Return NULL instead of FALSE
Same effect, meaning is clearer.

https://bugzilla.gnome.org/show_bug.cgi?id=789319
2018-01-27 10:29:18 +00:00
François Laignel
46b1a6e505 message: Add gst_message_writable_structure()
Add gst_message_writable_structure() to be able to add extra fields to
messages (and be on par with GstEvent).

https://bugzilla.gnome.org/show_bug.cgi?id=792928
2018-01-26 16:09:10 +02:00
Tim-Philipp Müller
db1d99db76 childproxy: gracefully handle methods being NULL
Do this for all method invoke functions for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=750154
2018-01-20 15:30:53 +00:00
Sebastian Dröge
e8bae061f1 padtemplate: And add missing GST_EXPORT to gst_pad_template_new_with_gtype() 2018-01-18 19:16:12 +02:00
Sebastian Dröge
6b1df25441 padtemplate: Add missing Since: 1.14 marker to gst_pad_template_new_with_gtype() 2018-01-18 19:15:09 +02:00
Sebastian Dröge
50433576b5 padtemplate: Add gst_pad_template_new_with_gtype()
For being able to create a pad template with GType without having a
static pad template.
2018-01-18 19:09:46 +02:00
Sebastian Dröge
645840676c padtemplate: Add Since: 1.14 marker to gst_pad_template_new_from_static_pad_template_with_gtype() 2018-01-18 19:09:46 +02:00
Edward Hervey
31383e4413 gstpad: Avoid stream-dead-lock on deactivation
The following case can happen when two thread try to activate and
deactivate a pad at the same time:
T1: starts to deactivate, calls pre_activate(), sets in_activation
    to TRUE and carries on
T2: starts to activate, calls pre_activate(), in_activation is TRUE
    so it waits on the GCond
T1: calls post_activate(), tries to acquire the streaming lock ..
    but can't because T2 is currently holding it

With this patch, the deadlock will no longer happen but does not
solve the problem that:
T2: will resume activation of the pad, set the pad mode to the target
   one (PUSH or PULL) and eventually the streaming lock gets released.
T1: is able to finish calling post_activate() ... but ... the pad
   wasn't deactivated (T2 was the last one to "activate" the pad.

https://bugzilla.gnome.org/show_bug.cgi?id=792341
2018-01-16 10:29:18 +01:00
Edward Hervey
6cd783b9fc gstpad: Release pending g_cond_wait() when stopping/pausing task
Otherwise we would deadlock waiting forever for the streaming lock
to be released

https://bugzilla.gnome.org/show_bug.cgi?id=792341
2018-01-15 18:19:48 +01:00
Tim-Philipp Müller
968dd651c2 docs: explicit refer to GObject docs for floating refs
https://bugzilla.gnome.org/show_bug.cgi?id=788477
2018-01-12 18:47:17 +00:00
Tim-Philipp Müller
d7a9b08268 utils: use g_get_monotonic_time() as fallback in gst_utils_get_timestamp()
This is a better fit given that the function docs say this
should (only) be used for interval measurements, but also
this seems to give much better granularity on Windows
systems, where before this change there would often be
10-20 lines of debug log with the same timestamp up front.
2018-01-11 18:44:50 +00:00
Tim-Philipp Müller
5feff26624 plugin: plugin_load() must return a ref even if it was loaded already
Fix refcounting issue when plugin was loaded already.
gst_plugin_load() is supposed to return a ref, so it
must always return a ref.

This also fixes the gstplugin unit test on windows where
fork is not available and where test_load_coreelements()
would unref a plugin ref it didn't get and then mess up
the internal registry plugin list state for the next test,
in case where the test registry does not exist yet.
2018-01-11 17:10:45 +00:00
Tim-Philipp Müller
3aa5ff37cd info: reset default threshold to LEVEL_DEFAULT not 0
in set_threshold_from_string().
2018-01-11 11:36:53 +00:00
Sebastian Dröge
e32d89d6c9 streams: GstStreamType/GstStream are available since 1.10
Annotate them as such.
2017-12-26 18:10:25 +01:00
Stefan Sauer
c96901d4d9 segment: add a FIXME-2.0 for the format parameters
Capture the somewhat not ordinary use of the extra format parameter in a
comment.
See https://bugzilla.gnome.org/show_bug.cgi?id=788979
2017-12-26 11:29:39 +01:00
Tim-Philipp Müller
252ce5a093 Skip gst_deinit() if gstreamer was not initialized properly
Can happen if an error occurs during option parsing, for example.

https://bugzilla.gnome.org/show_bug.cgi?id=781914
2017-12-24 16:21:38 +01:00
Sebastian Dröge
70104857b0 systemclock: set_default() clock parameter can be NULL 2017-12-20 18:56:23 +02:00
Sebastian Dröge
1a5a5709ad element: Annotate set_clock() clock parameter with allow-none 2017-12-20 18:11:48 +02:00
Sebastian Dröge
e16e55ed04 element: Annotate set_bus() bus parameter as allow-none
It's possible to replace the bus with NULL/None
2017-12-20 18:09:28 +02:00
Sebastian Dröge
f85e93d004 plugin: Annotate add_dependency() arguments as NULL-terminated arrays 2017-12-17 14:19:14 +02:00
Umang Jain
52d2891fe3 docs: GstBus: Provide more information for ref/unref during bus watch.
https://bugzilla.gnome.org/show_bug.cgi?id=791588
2017-12-14 09:34:59 +00:00
Matthew Waters
a0400a0d28 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
2017-12-14 14:46:46 +11:00
Tim-Philipp Müller
f05bd2a016 docs: Fix a few gtk-doc warnings
Broken links mostly.
2017-12-07 12:16:57 +00:00
Edward Hervey
0afc114629 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
2017-12-06 17:23:05 +01:00
Sebastian Dröge
adf304d5af event/query/message: Annotate get_structure() return value as nullable 2017-12-06 13:40:46 +02:00
Sebastian Dröge
c813b1c276 query: Add an empty structure in writable_structure() if there is none yet
This is consistent with how it works for GstEvent already.
2017-12-06 13:36:30 +02:00
Edward Hervey
62ebee096b docs: Misc addition/fixes
And also add the "Since" API sections for 1.12 and 1.14
2017-12-05 18:48:56 +01:00
Edward Hervey
eb6ba249c4 docs: Add documentation for GST_SEQNUM_INVALID
And link to it
2017-12-05 18:20:34 +01:00
Edward Hervey
e5c15f6b96 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
2017-12-05 18:19:32 +01:00
Tim-Philipp Müller
bcc5e5bcd5 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.
2017-12-05 15:18:29 +00:00
Nirbheek Chauhan
3c5edc76e5 meson: Use new find_program fallback syntax
We use this syntax in libs/gst/helpers/meson.build already.
2017-12-05 12:26:44 +05:30
Sebastian Dröge
16de48ae03 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.
2017-12-04 18:10:23 +02:00
Jan Alexander Steffens (heftig)
d9b20492f3 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
2017-12-04 10:56:44 +00:00
Sebastian Dröge
464f840a23 gst: Annotate various strings as type filename if they represent a path/filename 2017-12-03 14:48:54 +02:00
Tim-Philipp Müller
9b944f7fd0 info: always check match patterns for new debug categories
Not only if a match pattern was set originally via GST_DEBUG.
Patterns might be set programmatically as well after all.
2017-12-02 12:51:17 +00:00
Tim-Philipp Müller
67e9d13950 info: fix performance issue with registering categories after gst_init()
When registering a new debug category after gst_init(), simply check
the existing patterns against that new category.

No need to iterate over all categories and recheck them all against
the existing patterns.

Also, no need to re-parse the existing pattern string set via GST_DEBUG
and add the same set of match patterns all over again to the existing
list of match patterns every time we register a new debug category.

Combined with iterating all debug categories on a change this would
make adding debug categories after gst_init() very very very slow.
2017-12-02 12:51:17 +00:00