=== release 1.16.1 === 2019-09-23 11:01:50 +0100 Tim-Philipp Müller * ChangeLog: * NEWS: * RELEASE: * configure.ac: * gstreamer.doap: * meson.build: Release 1.16.1 2019-09-23 11:01:50 +0100 Tim-Philipp Müller * docs/plugins/inspect/plugin-coreelements.xml: * docs/plugins/inspect/plugin-coretracers.xml: Update docs 2019-09-23 11:01:47 +0100 Tim-Philipp Müller * po/bg.po: * po/de.po: * po/fr.po: * po/hr.po: * po/nb.po: * po/tr.po: Update translations 2019-09-12 10:09:18 +0300 Sebastian Dröge * gst/gstelementfactory.c: element: Enforce that elements created by gst_element_factory_create/make() are floating Bindings might have a hard time making sure that the reference is indeed still floating after returning here. See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/444 2019-09-12 10:08:39 +0300 Sebastian Dröge * gst/gstdevice.c: device: Enforce that elements created by gst_device_create_element() are floating Bindings might have a hard time making sure that the reference is indeed still floating after returning here. See https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/444 2019-09-12 10:03:08 +0300 Sebastian Dröge * gst/gstdevice.c: device: gst_device_create_element() is `transfer floating`, not `transfer full` Fixing the annotation fixes leaking of the created element in all bindings using GObject-Introspection. Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/444 2019-09-07 12:32:40 +0100 Jim Mason * plugins/elements/gstelements_private.c: consolidated IOV_MAX/UIO_MAXIOV handling per GLib + legacy behaviour for osx/ios 2019-09-06 19:23:01 +0100 Jim Mason * plugins/elements/gstelements_private.c: gst_writev: respect IOV_MAX for the writev iovec array #439 2019-09-03 10:38:13 +0200 David Svensson Fors * gst/gstminiobject.c: miniobject: free qdata array when the last qdata is removed In cases with many long-lived buffers that have qdata only very briefly, the memory overhead of keeping an array of 16 GstQData structs for each buffer can be significant. We free the array when the last qdata is removed, like it was done in 1.14. Fixes #436 2019-09-03 13:44:24 -0400 Nicolas Dufresne * gst/gstbin.c: bin: Fix minor race when adding to a bin This patch simply add a null check around a case where a child may have been unparented concurrently to the deep_add_remove operation. This was found by accident in the form of an "IS_GST_OBJECT" assertion, but had no other known side effect in that test. 2019-08-15 12:56:06 +0100 Tim-Philipp Müller * libs/gst/check/meson.build: meson: fix warning about configure_file() install kwarg The install kwarg on configure_file() was only added in Meson 0.50 but we're targetting older versions as well, which caused a warning. The install kwarg is not needed here as we specify install_dir, so we can just drop it. Fixes #379 2019-08-14 09:51:55 +0300 Sebastian Dröge * libs/gst/base/gstaggregator.c: aggregator: Actually handle NEED_DATA return from update_src_caps() The documentation says that this allows the subclass to signal that it needs more data before it can decide on caps, so let's actually implement it that way. 2019-08-13 19:57:08 +0300 Sebastian Dröge * libs/gst/base/gstaggregator.c: aggregator: Assert if the sink/src pad type that is to be used is not a GstAggregatorPad or subclass thereof 2019-08-13 19:55:59 +0300 Sebastian Dröge * libs/gst/base/gstaggregator.c: aggregator: Ensure that the source pad is created as a GstAggregatorPad if no type is given in the pad template Otherwise we would create a GstPad and that causes invalid memory accesses later. 2019-08-06 10:09:22 +0530 Guillaume Desmottes * plugins/tracers/gstlatency.c: latency: fix custom event leaks If the element before the sink needs $n buffers to produce one output buffer, we were reffing $n events and unreffing only one. Prevent this by using g_object_set_qdata_full() to handle the event unreffing so we're sure no ref will be lost. 2019-08-02 13:07:58 +0530 Guillaume Desmottes * plugins/tracers/gstlatency.c: * plugins/tracers/gstrusage.c: * plugins/tracers/gststats.c: tracers: set MAY_BE_LEAKED on tracer records The records are static and so appear as false positives when using those tracers with the leaks tracer as well. The leaks tracer was already setting this flag on its record so let's set it on the other ones as well. 2019-06-20 16:42:01 +0530 Guillaume Desmottes * plugins/tracers/gstlatency.c: latency: display event pointer in logs This is quite useful for debugging when tracer is reporting the wrong latency because of an element breaking the events/buffers ordering. 2019-07-22 15:06:20 +0000 Alicia Boya García * plugins/elements/gstdownloadbuffer.c: downloadbuffer: Check for flush after seek In gst_download_buffer_wait_for_data(), when a seek is made with perform_seek_to_offset() the `qlock` is released temporarily. Therefore, the flushing condition can be set during this period and should be checked. This was not being checked before, causing occasional deadlocks when GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() was called. GST_DOWNLOAD_BUFFER_WAIT_ADD_CHECK() assumes that the caller has already checked that we're not flushing before, since this is done when acquiring the lock; so if we release it temporarily somewhere, we need to check for flush again. Without that check, the function would keep waiting for the condition variable to be notified before checking for flushing condition again, and that may very well never happen. This was reproduced when during pad deactivation when running WebKit in gdb. 2019-08-08 13:49:07 +0300 Sebastian Dröge * configure.ac: * gst/gstregistry.c: * meson.build: registry: Use plugin directory from the build system for relocateable Windows builds Instead of guessing something based on preprocessor defines and magic. 2019-08-06 00:05:22 +0100 Tim-Philipp Müller * gst/gstmessage.h: message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED This was added in 1.16 and accidentally duplicated the value of the existing GST_MESSAGE_REDIRECT. As the only known user of this message is GStreamer core itself, and it is quite an obscure message, it seems best to just fix up the enum value even if that technically breaks API. Fixes #418 2019-07-30 21:40:47 -0400 Doug Nazar * gst/gstinfo.c: info: Fix deadlock in gst_ring_buffer_logger_log gst_ring_buffer_logger_log calls several functions while formatting the message which may in turn log a message while we already hold the mutex. Do all formatting first before acquiring the mutex to avoid this and reduce the time we hold the mutex. 2019-07-19 21:57:09 -0400 Nicolas Dufresne * plugins/elements/gstidentity.c: identity: Non-live upstream have no max latency sync=TRUE implementation changes the latency query of a non-live upstream into live, though it wrongly set the upstream max latency to 0. As non-live sources won't loose data if we wait longer, this should have been reported as have no max latency limite (-1). 2019-07-11 17:53:53 +0100 Philippe Normand * plugins/elements/gstidentity.c: identity: Fix the ts-offset property getter Previous code was a copy/paste from the property setter function. 2019-07-08 19:09:03 +0300 Sebastian Dröge * libs/gst/base/gstaggregator.c: aggregator: Make parsing of explicit sink pad names more robust When passing "sink_%d" twice to aggregator before it would create two pads called "sink_0", because it failed to parse "%d" as integer and used 0 instead then. Instead validate that parsing was actually successful and also don't even try to parse if the requested pad name contains a '%'. 2019-06-29 09:22:05 -0400 Nicolas Dufresne * gst/gstbufferpool.c: * tests/check/gst/gstbufferpool.c: bufferpool: Fix the buffer size reset code The offset in gst_buffer_resize() is additive. So to move back the offset to zero, we need to pass the opposite of the current offset. This was raised through the related unit test failingon 32bit as on 64bit the alignment padding was enough to hide the issue. The test was modified to also fail on 64bit. This patch will remove spurious assertions like: assertion 'bufmax >= bufoffs + offset + size' failed Fixes #316 2019-06-20 13:49:14 +0530 Guillaume Desmottes * plugins/elements/gstelements_private.c: gstelements_private: sync gst_buffer_get_flags_string() with new flags 2019-06-19 23:29:24 -0400 Thibault Saunier * plugins/elements/gstmultiqueue.c: multiqueue: never unref queries we do not own The `query` argument of gst_pad_query is "transfer none". Query objects are "borrowed" by the pad query handlers and those should never unref them. This was leading to double freed queries in a very racy way with nested GESTimelines. 2019-06-04 17:55:30 +0300 Sebastian Dröge * plugins/elements/gstconcat.c: concat: Reset last_stop on FLUSH_STOP too Otherwise when seeking backwards we would keep the last_stop at the last position we saw until playback passed the seek position again, and if switching to the next pad happens in the meantime we would set the wrong offset in the outgoing segment. 2019-06-04 17:56:30 +0300 Sebastian Dröge * plugins/elements/gstconcat.c: concat: Improve debug output a bit 2015-07-29 11:48:33 +0100 Tim-Philipp Müller * libs/gst/base/gstaggregator.c: aggregator: fix flow-return boolean return type mismatch Not that it matters, since we don't check the return value anyway. Unclear why the aggregator pad flush function should have a return value at all really, and perhaps it should be called reset anyway. Spotted by dv on irc. 2019-05-13 16:42:04 +0200 Edward Hervey * gst/gstpad.c: * tests/check/gst/gstpad.c: gstpad: Probes that return HANDLED can reset the data info field Before GST_PAD_PROBE_HANDLED was introduced, we had to handle the case where some probes would reset the probe info data field to NULL. This would be considered an invalid use-case. But with GST_PAD_PROBE_HANDLED it is totally fine to reset that, since the probe has "handled" it. 2019-05-13 13:24:42 +0530 Nirbheek Chauhan * gst/meson.build: meson: Link to objects instea of static helper library Otherwise the objects from that static helper library are not included in the gstreamer-1.0 static library. This was supposed to be fixed in Meson, but the pull request hasn't been merged yet: https://github.com/mesonbuild/meson/pull/3939 Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/398 2019-05-13 14:42:28 +0530 Nirbheek Chauhan * gst/meson.build: meson: Pass -DGST_STATIC_COMPILATION for static builds This is only needed on Windows when building with MSVC, but it is safe to pass it everywhere. Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/398 2019-05-11 18:21:19 +0200 Michael Olbrich * libs/gst/helpers/meson.build: meson: set correct install path for gdb helper The original version of the patch used glib-2.0 but that was later changed to gstreamer-1.0 for autotools. The meson file was forgotten. Fix the path to match the one used in libgstreamer-gdb.py.in. 2019-05-08 12:11:50 +0200 Niels De Graef * gst/gstpromise.h: gst: Add support for g_autoptr(GstPromise) 2019-05-01 15:46:56 +0200 Niklas Hambüchen * gst/parse/get_flex_version.py: Make get_flex_version.py script executable Like all other scripts in the same dir. It has a hashbang, so it should be executable. 2019-04-24 18:22:06 +0200 Andoni Morales Alastruey * tools/gst-inspect.c: gst-inspect: fix unused-const-variable error in windows ../tools/gst-inspect.c:44:20: error: 'DEFAULT_PAGER' defined but not used [-Werror=unused-const-variable=] 2019-04-23 17:33:34 +0300 Sebastian Dröge * libs/gst/base/base.h: base: Include gstbitwriter.h in the single-include header 2019-04-23 18:00:59 +0300 Sebastian Dröge * libs/gst/base/gstbitwriter.h: bitwriter: Fix inclusion of header in C++ code ../subprojects/gstreamer/libs/gst/base/gstbitwriter.h: In function 'gboolean _gst_bit_writer_check_remaining(GstBitWriter*, guint32)': ../subprojects/gstreamer/libs/gst/base/gstbitwriter.h:161:31: error: invalid conversion from 'gpointer' {aka 'void*'} to 'guint8*' {aka 'unsigned char*'} [-fpermissive] bitwriter->data = g_realloc (bitwriter->data, (new_bit_size >> 3)); ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2019-04-23 12:31:07 +0300 Sebastian Dröge * libs/gst/base/gstbitwriter.h: bitwriter: Mark the whole type as Since: 1.16 2019-04-23 14:39:48 +0300 Sebastian Dröge * gst/gstcaps.c: caps: Add Since: 1.16 marker to gst_caps_copy() 2019-04-23 14:54:03 +0300 Sebastian Dröge * libs/gst/base/gstaggregator.h: aggregator: Mark all public structs as Since: 1.14 2019-04-23 15:07:08 +0300 Sebastian Dröge * libs/gst/base/gstbaseparse.h: * libs/gst/base/gstbasetransform.h: * libs/gst/base/gstcollectpads.h: * libs/gst/controller/gstinterpolationcontrolsource.h: libs: Fix various Since markers 2019-04-23 15:08:18 +0300 Sebastian Dröge * gst/gstallocator.h: * gst/gstbin.h: * gst/gstbuffer.c: * gst/gstbuffer.h: * gst/gstbufferpool.h: * gst/gstclock.h: * gst/gstelement.h: * gst/gstelementfactory.h: * gst/gsterror.h: * gst/gstevent.h: * gst/gstmemory.h: * gst/gstmessage.h: * gst/gstminiobject.h: * gst/gstobject.h: * gst/gstpad.h: * gst/gstparse.h: * gst/gstplugin.h: * gst/gstsegment.h: * gst/gststructure.c: * gst/gstsystemclock.h: gst: Fix various Since markers 2019-05-02 12:35:17 +0100 Tim-Philipp Müller * .gitlab-ci.yml: ci: use template from 1.16 branch