=== release 1.17.2 === 2020-07-03 00:22:34 +0100 Tim-Philipp Müller * ChangeLog: * NEWS: * RELEASE: * gstreamer.doap: * meson.build: Release 1.17.2 2020-07-01 20:20:16 +0300 Sebastian Dröge * gst/gststreams.c: stream: Don't use GST_FIXME_OBJECT() when generating a random stream id if the caller didn't provide one That would call into gst_info_describe_stream(), which takes the same mutex a second time and then deadlocks. Part-of: 2020-05-11 17:44:43 +0200 Mathieu Duponchelle * gst/gstutils.c: gstutils: fix link in parse_bin_from_description_full doc Part-of: 2020-06-26 00:50:44 +1000 Jan Schmidt * gst/gstbin.h: gstbin: Fix docs typo element-added-deep -> deep-element-added in the GstBin doc header Part-of: 2020-06-25 02:14:56 +0900 Seungha Yang * docs/gst-plugins-doc-cache-generator.py: docs: Specify UTF-8 encoding everywhere Otherwise some non-English character might be broken depending on OS and/or locale. Part-of: 2020-06-25 01:37:43 +0200 Mathieu Duponchelle * hooks/pre-commit.hook: hooks: add opt-in cache update hook CI now checks that plugin caches are up to date, for example when adding a new property to an element. This is something pretty easy to forget, and it can be checked in a pre-commit hook provided the cache generator generates no unnecessart diff on the developer's machine. This is now the case for me in core, -base and -good, and eventually all the repositories should behave appropriately, at least on my development machine. The new check in the pre-commit hook is only performed when the user is in the development environment (it checks $MESON_BUILD_ROOT to determine that), and when the developer has opted-in by setting `GST_CACHE_HOOK=enabled`. That is because the hook will actually rebuild the cache with ninja, and modify it in the source directory, that's not a behaviour we want to enable by default. Part-of: 2020-06-24 22:51:48 +0900 Seungha Yang * tools/gst-inspect.c: gst-inspect: Use gst_info_strdup_vprintf to print string g_vprintf() will write a string binary to stdout directly using fwrite(). So, depending on character in the string, fwrite to stdout can print broken one but printf family might not cause the issue. Part-of: 2020-06-24 07:54:42 +0200 Michael Olbrich * gst/gstbus.c: * tests/check/gst/gstbus.c: bus: clear bus->priv->signal_watch immediately when the source is removed There is a race-condition that can trigger the assertion in gst_bus_add_signal_watch_full(): If gst_bus_add_signal_watch_full() is called immediately after gst_bus_remove_signal_watch() then bus->priv->signal_watch may still be set because gst_bus_source_dispose() or gst_bus_source_finalize() was not yet called. This happens if the corresponding GMainContext has the source queued for dispatch. In this case, the following dispatch will only unref and delete the signal_watch because it was already destroyed. Any pending messages will remain until a new watch is installed. So bus->priv->signal_watch can be cleared immediately when the watch is removed. This avoid the race condition. Part-of: 2020-06-23 01:54:15 +0200 Mathieu Duponchelle * docs/gst-hotdoc-plugins-scanner.c: gst-hotdoc-plugins-scanner: serialize interfaces 2020-06-22 23:41:06 +0200 Mathieu Duponchelle * docs/gst-hotdoc-plugins-scanner.c: gst-hotdoc-plugins-scanner: don't instantiate base classes 2020-06-21 02:00:54 +0200 Mathieu Duponchelle * docs/gst-hotdoc-plugins-scanner.c: gst-hotdoc-plugins-scanner: serialize parents in hierarchy when needed 2020-06-22 09:11:07 -0400 Thibault Saunier * docs/gst-hotdoc-plugins-scanner.c: * docs/meson.build: docs: Document signals and properties only for current type 2020-06-19 22:52:01 -0400 Thibault Saunier * docs/plugins/gst_plugins_cache.json: doc: Stop documenting properties from parents 2020-06-23 05:18:11 +0530 Nirbheek Chauhan * gst/gstregistrychunks.c: registry: Print the pointer when printing features This is what we do everywhere else too, useful for debugging. Part-of: 2020-06-23 03:43:53 +0530 Nirbheek Chauhan * gst/gstregistry.c: registry: Use a toolchain-specific registry file on Windows If we load a plugin registry for MinGW plugins when running with MSVC, we will have to write out the whole cache again, and vice-versa. Just use separate cache files so that the cache is actually useful. Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/427 Part-of: 2020-06-22 12:26:46 +0300 Sebastian Dröge * gst/gstghostpad.c: * gst/gstghostpad.h: ghostpad: Deprecate gst_ghost_pad_construct() Instead do everything it did as part of GObject::constructed() and change the function to always return TRUE. gst_ghost_pad_construct() was meant to be called by subclasses right after construction of the object to finish construction as it can fail in theory. In practice it's impossible for it to fail, even more so if called directly from GObject::constructed(): The only failure condition is if the newly created proxy pad already has a parent, which is impossible at this point as nothing else can have a reference to it. Part-of: 2020-05-19 22:54:20 +0200 Thor Andreassen * tools/gst-inspect-1.0.1: * tools/gst-inspect.c: tools: gst-inspect, add option '--color' with short option '-C' Part-of: 2020-06-18 13:46:29 -0400 Thibault Saunier * gst/gstinfo.c: * gst/gstinfo.h: info: Add a printf extension for ClockTime/ClockTimeDiff pointers Using both GST_TIME_FORMAT+GST_TIME_ARGS and friend is cumbersome, this makes it sensibly more user friendly. Part-of: 2020-06-20 00:27:57 +0100 Tim-Philipp Müller * meson.build: Back to development