X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=subprojects%2Fgstreamer%2FChangeLog;h=58b65824391baade8f70430c23fc649c885ebe76;hb=9eb081ea0a8afcfbcb78a04068897e79022d5161;hp=f904bda62681d38363f1046eb3085a72eb6b634c;hpb=31b5243e1dde294a413c30fd026a93140f78cbee;p=platform%2Fupstream%2Fgstreamer.git diff --git a/subprojects/gstreamer/ChangeLog b/subprojects/gstreamer/ChangeLog index f904bda..58b6582 100644 --- a/subprojects/gstreamer/ChangeLog +++ b/subprojects/gstreamer/ChangeLog @@ -1,7 +1,1750 @@ +=== release 1.21.2 === + +2022-11-07 23:53:59 +0000 Tim-Philipp Müller + + * NEWS: + * RELEASE: + * gstreamer.doap: + * meson.build: + Release 1.21.2 + +2022-11-07 23:53:57 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.21.2 + +2022-11-07 09:27:09 -0500 Xavier Claessens + + * docs/meson.build: + hotdoc: gst-hotdoc-plugins-scanner is not needed for libraries + Meson >= 0.64.0 does not allow any more to add executables into + hotdoc.generate_doc(..., dependencies: ...) and it should not be needed + any way. + Part-of: + +2020-09-01 16:01:08 +0200 Jan Alexander Steffens (heftig) + + * tests/check/gst/gstinfo.c: + tests: gstinfo: Test set_threshold_from_string's new reset behavior + Part-of: + +2020-08-22 23:42:40 +0200 Jan Alexander Steffens (heftig) + + * tests/check/gst/gstinfo.c: + tests: gstinfo: Make logging tests pass when GST_DEBUG is set + Use gst_debug_set_threshold_from_string's new reset behavior to undo + GST_DEBUG and ensure the logging tests have a known configuration. + `gst_debug_set_threshold_from_string ("LOG", TRUE)` has the same effect + as `gst_debug_set_threshold_from_string ("", TRUE)` followed by + `gst_debug_set_default_threshold (GST_LEVEL_LOG)`. + Don't bother remembering the default log level set when the test + started. It will get reset by the next test, anyway. + Part-of: + +2020-08-22 22:41:15 +0200 Jan Alexander Steffens (heftig) + + * gst/gstinfo.c: + info: Reset patterns with set_threshold_from_string + TLDR: Make `gst_set_threshold_from_string ("", TRUE)` reset *all* + threshold settings, including those set by previous invocations of + `gst_debug_set_threshold_from_string`. + The docs say: + @reset: %TRUE to clear all previously-set debug levels before setting + new thresholds + What actually happens is it sets the default threshold to `ERROR`, + leaves the patterns in place and calls + `gst_debug_category_reset_threshold` on each category. + In effect, any category that is matched by a pattern gets reset to that + threshold if the app changed it by directly invoking + `gst_debug_category_set_threshold`. All other categories are reset to + `ERROR`. + In my opinion this parameter currently has little value, as the same + effect can be achieved by including `ERROR` (without a pattern) in the + string, as in `"foo*:WARNING,*bar:INFO,ERROR"`. + What I actually expect it to do is reset *all* threshold settings, + including those set by previous invocations of + `gst_debug_set_threshold_from_string`, starting off with a clean slate + for the patterns provided with the call. + Otherwise there is no API to do this, besides: + - Painfully removing patterns one-by-one via + `gst_debug_unset_threshold_for_name` *if* you know what the patterns + are. + - Adding a `*:FOO` pattern to affect all categories, which makes the + default threshold useless and practically leaks all the old + patterns. + In my opinion this also makes it fit better into the layers of threshold + config, which is: + 1. Temporary: + - `gst_debug_category_set_threshold` + - `gst_debug_category_reset_threshold` + 2. Patterns: + - `gst_debug_set_threshold_for_name` + - `gst_debug_unset_threshold_for_name` + - `gst_debug_set_threshold_from_string` + - `GST_DEBUG` + 3. Default: + - `gst_debug_set_default_threshold` + Part-of: + +2022-09-21 10:05:05 +0200 Edward Hervey + + * gst/gstpad.c: + gstpad: Avoid race in (un)setting EOS flag on sinkpads + The scenario is the following: + * Thread 1 is pushing an EOS event on a sinkpad + * Thread 2 is pushing a STREAM_START event on the same sinkpad before Thread 1 + returns. Note : It starts pushing the event after Thread 1 took the object lock. + There is a potential race between: + * The moment Thread 1 sets the EOS flag once it has finished sending the + event (via store_sticky_event). When it does that it has both the STREAM and + OBJECT lock + * The moment Thread 2 sends the STREAM_START event (Which should release that + EOS status), but removing the EOS flag is only done while holding the OBJECT + lock and not the STREAM_LOCK, which means it could be re-set by Thread 1 before + it then checks again the EOS flag (without the STREAM lock taken). + The EOS flag unsetting by STREAM_START should be done with the STREAM lock + taken, otherwise it will be racy. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1452 + Part-of: + +2022-11-06 18:10:44 +0000 Tim-Philipp Müller + + * tools/gst-inspect.c: + gst-inspect: print doc urls for Rust plugins + We have documentation for them now after all. + Part-of: + +2022-11-05 00:06:25 +0000 Tim-Philipp Müller + + * plugins/elements/gstidentity.c: + identity: fix "handoff" signal docs + The docs list an extra pad argument, which doesn't + match the actual signal function signature. Probably + a copy'n'paste mistake when copying things from fakesink. + Fixes #1546 + Part-of: + +2022-10-24 12:13:14 +0200 Edward Hervey + + * gst/gstpad.c: + gstpad: Fix non-serialized sticky event push + With non-serialized sticky events, such as GST_EVENT_INSTANT_RATE, we both want + to store the event (for later re-linking) *AND* push the event in a non-blocking + way. + We therefore must *not* propagate pending sticky events if the event is "sticky + or serialized" but only if it's "serialized" + Part-of: + +2022-08-17 22:34:35 -0600 Michael Gruner + + * gst/parse/grammar.y.in: + parse: do delayed set only if the target child was not found and fail otherwise + When using the child proxy notation (child::property=value) it may + happen that the target child does not exist at the time of parsing + (i.e: decodebin creates the encoder according to the contents of the + stream). On this cases, we want to delay the setting of the property + to later, when new elements are added. Previous logic performed a + delayed set even if the target child was found but the property + was not found in it. This should be treated as a failure because, + unlike missing elements, properties should not appear dynamically. + By not failing, typos in property names may go unnoticed to the end + user. + Part-of: + +2022-10-18 18:15:12 +0200 Michael Gruner + + * gst/gstchildproxy.c: + * gst/gstchildproxy.h: + childproxy: Implement a new ::get_child_by_name_recurse() API + Part-of: + +2022-10-27 15:13:36 +0300 Sebastian Dröge + + * libs/gst/base/gstaggregator.c: + * libs/gst/base/gstbaseparse.c: + core/base: Only post latency messages if the latency values have actually changed + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1525 + Part-of: + +2022-10-27 11:18:24 +0200 Edward Hervey + + * plugins/elements/gstconcat.c: + concat: Properly propagate EOS seqnum + Part-of: + +2022-10-25 09:39:07 +0300 Sebastian Dröge + + * gst/gsturi.c: + * libs/gst/net/gstnettimepacket.c: + * libs/gst/net/gstntppacket.c: + Fix various warnings from gobject-introspection + Part-of: + +2022-10-22 01:43:22 +0900 Seungha Yang + + * tools/gst-inspect.c: + gst-inspect: Hide GST_PARAM_DOC_SHOW_DEFAULT flag + It's known flag but only for documentation purpose. Don't show + its (and user cannot understand) value 0x2000 + Part-of: + +2022-10-22 18:34:14 +0300 Sebastian Dröge + + * libs/gst/net/gstnetclientclock.c: + net: Add missing nullable annotation on the name parameter in the net/NTP clock constructors + Part-of: + +2022-10-22 22:04:57 +0900 Seungha Yang + + * gst/gstpadtemplate.c: + padtemplate: Fix annotations + gst_caps_replace() does not take ownership of the new caps + Part-of: + +2022-10-22 05:29:59 +0900 Seungha Yang + + * tools/gst-inspect.c: + gst-inspect: Don't print link to doc if it's known to be unavailable + "gst_element_factory_get_skip_documentation() == true" means + documentation was intentionally skipped for the element feature + Part-of: + +2022-10-21 11:47:11 +0200 François Laignel + + * gst/gstquery.c: + gst: uri query: fix inconsistent `uri` nullability assertion + Functions `gst_query_set_uri` and `gst_query_set_uri_redirection` + can both set a `NULL` `uri`, as annotated in the documentation. + However the functions bodies reject `NULL` `uri`s. + See [1] for a discussion on that matter. + [1]: https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/1134#note_1600988 + Part-of: + +2022-10-21 11:11:13 +0200 Thibault Saunier + + * docs/gst-hotdoc-plugins-scanner.c: + docs: plugins-scanner: Handle interface used for plugin API properties + Part-of: + +2022-10-18 03:08:44 +0900 Seungha Yang + + * docs/gst-hotdoc-plugins-scanner.c: + docs: plugin-scanner: Stop updating "long-name" metadata + The "long-name" value can be environment dependent, and it's not + actually used by our documentation. + Part-of: + +2022-10-19 22:30:38 +0900 Seungha Yang + + * gst/parse/grammar.y.in: + parse: Adjust debug log level + That's not an error case at all + Part-of: + +2022-10-19 13:34:28 +0300 Sebastian Dröge + + * gst/gstdeviceproviderfactory.c: + * gst/gstelementfactory.c: + {element,deviceprovider}factory: g_object_new() can't ever return NULL + So treat it as the assertion it is. + Part-of: + +2022-10-19 13:33:39 +0300 Sebastian Dröge + + * gst/gstelementfactory.c: + elementfactory: Handle element factory loading failure in gst_element_factory_create_valist() not as assertion + In gst_element_factory_create_with_properties() it is a normal error + path so let's keep this consistent. + Part-of: + +2022-10-19 13:28:06 +0300 Sebastian Dröge + + * gst/gstdeviceproviderfactory.c: + * gst/gstelementfactory.c: + * gst/gstmeta.c: + * gst/gstregistry.c: + * gst/gsttaglist.c: + * gst/gstvalue.c: + gst: Use G_TYPE_INVALID instead of 0 for GTypes + Part-of: + +2022-09-15 00:06:49 +0200 Mathieu Duponchelle + + * tests/check/pipelines/parse-launch.c: + tests: parse-launch: remove assignment order tests + These tests relied on setting the name of an element twice to verify + that the last one set took precedence, however name is a CONSTRUCT property + and the parser now errors out when such properties are set twice, in + g_object_new_with_properties . + Part-of: + +2022-09-13 23:16:08 +0200 Mathieu Duponchelle + + * gst/parse/grammar.y.in: + * gst/parse/types.h: + * tests/check/pipelines/parse-launch.c: + parse: refactor to make use of gst_element_factory_make_with_properties + Instead of creating the element first, then setting properties and + presets, we gather those and construct the element with the properties. + This means users of gst_parse_launch can now set construct-only + properties. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1380 + Part-of: + +2022-10-18 16:41:36 +0200 Bunio_FH + + * gst/gstminiobject.c: + gstminiobject: shares capacity increase + during the MSE (WebKit) tests from Apple suite: + https://hls-streaming.cdn-apple.com/hls_conformance/dist/v1.1/index.html?pretty=true&whitelist=MSE%20Suite + webkit attempts to add a single audio buffer containing ~35.5k frames. + when corresponding GstSamples are pulled buffer is being referenced + more than object capacity allows: 2^15-1. since the case could be considered + malformed a surgical patch is applied to increase the capacity. + Part-of: + +2022-10-15 12:31:17 +0300 Sebastian Dröge + + * gst/gstatomicqueue.c: + * gst/gstbuffer.c: + * gst/gstbufferpool.c: + * gst/gstbufferpool.h: + * gst/gstelement.c: + * gst/gstevent.c: + * gst/gstinfo.c: + * gst/gstmessage.c: + * gst/gstobject.c: + * gst/gstparse.c: + * gst/gstpipeline.c: + * gst/gstquery.c: + * gst/gststructure.c: + * gst/gsttaglist.c: + * gst/gsttoc.c: + * gst/gsturi.c: + * gst/gstutils.c: + core: Add/fix various annotations + And fix memory leaks/null pointer dereferences in GstUri in error cases. + Part-of: + +2022-10-15 12:24:46 +0300 Sebastian Dröge + + * libs/gst/check/gstharness.c: + check: Add/fix various annotations + Part-of: + +2022-10-15 12:20:08 +0300 Sebastian Dröge + + * libs/gst/net/gstnetaddressmeta.c: + * libs/gst/net/gstnettimepacket.c: + * libs/gst/net/gstnettimeprovider.c: + * libs/gst/net/gstntppacket.c: + net: Add/fix various annotations + Part-of: + +2022-10-15 12:18:28 +0300 Sebastian Dröge + + * libs/gst/base/gstqueuearray.c: + base: Add/fix annotations in GstQueueArray + Part-of: + +2022-10-14 23:48:09 +0300 Sebastian Dröge + + * libs/gst/controller/gsttimedvaluecontrolsource.c: + controller: Add/fix various annotations + Part-of: + +2022-10-07 14:39:47 +0200 Guillaume Desmottes + + * libs/gst/base/gstaggregator.c: + aggregator: fix input buffering + We need to be able to buffer at least the aggregator latency + + upstream latency, which is the value used to compute the aggregator + deadline. + Part-of: + +2022-10-01 04:58:04 +1000 Jan Schmidt + + * gst/gstbin.c: + gstbin: Use g_queue_clear_full() + Use g_queue_clear_full() to release the child list + instead of iterating over the list twice. + Part-of: + +2022-10-01 04:55:49 +1000 Jan Schmidt + + * gst/gstbin.c: + gstbin: Fix a potential leak in gst_bin_do_deep_add_remove() + If a child element of a bin is unparented while + gst_bin_do_deep_add_remove() is iterating the children, + don't leak a ref to it. + Part-of: + +2022-10-01 04:54:20 +1000 Jan Schmidt + + * gst/gstiterator.c: + gstiterator: Don't use gst_object_unref() for a GObject + The owner of a GstIterator is a plain GObject. Don't unref it + with gst_object_unref(), or it will be logged in tracer + info incorrectly. + Part-of: + +2022-10-04 03:57:31 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +=== release 1.21.1 === + +2022-10-04 01:14:01 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gstreamer.doap: + * meson.build: + Release 1.21.1 + +2022-10-04 01:13:59 +0100 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.21.1 + +2022-10-03 11:16:25 +0200 Edward Hervey + + * plugins/elements/gstqueue2.c: + queue2: Hold the lock when modifying sinkresult + As it's done elsewhere. Avoids a potential race of the field being modified in + the meantime. + Part-of: + +2018-03-28 17:54:15 +0200 Philipp Zabel + + * gst/gstbuffer.c: + * gst/gstmeta.c: + * gst/gstmeta.h: + * libs/gst/base/gstadapter.c: + * libs/gst/base/gstbasetransform.c: + buffer: drop parent meta in deep copy/foreach_metadata + The purpose of a deep buffer copy is to be able to release the source + buffer and all its dependencies. Attaching the parent buffer meta to + the newly created deep copy needlessly keeps holding a reference to the + parent buffer. + The issue this solves is the fact you need to allocate more + buffers, as you have free buffers being held for no reason. In the good + cases it will use more memory, in the bad case it will stall your + pipeline (since codecs often need a minimum number of buffers to + actually work). + Fixes #283 + Part-of: + +2022-09-26 14:17:18 +0300 Sebastian Dröge + + * gst/gsturi.c: + gsturi: When setting the same string again do nothing + Otherwise code like gst_uri_set_host(uri, gst_uri_get_host(uri)) would + first free the string, then create a copy of the freed string and then + assigned that. + Part-of: + +2022-09-15 16:22:23 +0200 Edward Hervey + + * libs/gst/base/gstbasetransform.c: + basetransform: Avoid useless codepath + If QoS is disabled, skip the whole computation (avoids calculating values which + won't be needed) + Part-of: + +2022-09-21 19:19:45 +0530 Nirbheek Chauhan + + * meson.build: + meson: Use implicit builtin dirs in pkgconfig generation + Starting with Meson 0.62, meson automatically populates the variables + list in the pkgconfig file if you reference builtin directories in the + pkgconfig file (whether via a custom pkgconfig variable or elsewhere). + We need this, because ${prefix}/libexec is a hard-coded value which is + incorrect on, for example, Debian. + Bump requirement to 0.62, and remove version compares that retained + support for older Meson versions. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1245 + Part-of: + +2022-09-12 09:46:43 -0400 Xavier Claessens + + * data/bash-completion/helpers/meson.build: + * data/meson.build: + * libs/gst/helpers/meson.build: + * tests/validate/meson.build: + * tools/meson.build: + meson: Set install_tag on some targets + Trying to follow recommendation from Meson documentation: + https://mesonbuild.com/Installing.html#installation-tags + Move tools into 'bin' or 'bin-devel' categories to keep only libs and + plugins in the default 'runtime' category. This simplifies distribution + of GStreamer application skipping parts that are not needed, similarly + to what Cerbero does by hardcoding huge list of files. + Part-of: + +2022-08-31 18:08:08 +0200 Paweł Stawicki + + * plugins/elements/gstqueue2.c: + queue2: Fix deadlock when deactivate is called in pull mode + check is flush was called before waiting on condition + Part-of: + +2022-09-15 16:23:16 +0200 Edward Hervey + + * libs/gst/base/gstbaseparse.c: + baseparse: If available, return average bitrate upstream + Helps improve queue2 buffering for single stream playback (ex: FLAC or mp3) + Part-of: + +2022-08-26 08:43:34 -0400 Thibault Saunier + + * gst/gstelement.c: + Build documentation for rust plugins + - Update the docker image we use, starting using the standard one adding + `gtk4-doc` as required by rust plugins + - Update the plugins_doc_caches as required, some more plugins are built + with the new image + - Install ninja from pip as the version from F31 is too old + - Avoid buildings all GSreamer plugins when building the doc as it takes + time and resources for no good reason + - Stop linking to `GInstanceInitFunc` as it is not present in latest GLib + documentation, leading to warnings in hotdoc. + Part-of: + +2022-08-26 08:39:16 -0400 Thibault Saunier + + * docs/gst-hotdoc-plugins-scanner.c: + docs: plugin-scanner: Minor debug enhancement + Part-of: + +2021-01-28 08:40:56 +0200 Jordan Petridis + + * gst/gst_private.h: + * gst/gstelement.c: + * gst/gstinfo.c: + gstinfo: remove the vasprintf fallback + We are always building our printf implementation, even when + GST_DEBUG is disabled, since we are exposing api (gst_print*) + that's dependant on our printf behavior. + We don't need to keep __gst_info_fallback_vasprintf around anymore. + Close #640 + Part-of: + +2021-03-24 14:20:18 -0500 Zebediah Figura + + * meson.build: + meson: Build with -Wl,-z,nodelete to prevent unloading of dynamic libraries and plugins + GLib made the unfortunate decision to prevent libgobject from ever being + unloaded, which means that now any library which registers a static type + can't ever be unloaded either (and any library that depends on those, + ad nauseam). + Part-of: + +2021-04-19 10:49:42 -0400 Doug Nazar + + * gst/gstregistry.c: + registry: skip integration testsuite directory during plugin scan + When using an uninstalled development environment and running the + validation tests, the number of log files can grow substantially, + slowing down startup. + Part-of: + +2022-08-30 10:48:18 -0400 Xavier Claessens + + * gst/gstbufferpool.c: + doc: Clarify that gst_buffer_pool_acquire_buffer() blocks by default + Part-of: + +2022-09-01 15:11:31 -0400 Thibault Saunier + + * meson.build: + * plugins/elements/meson.build: + * plugins/tracers/meson.build: + meson: Call pkgconfig.generate in the loop where we declare plugins dependencies + Removing some copy pasted code + Part-of: + +2022-09-01 11:51:48 -0400 Thibault Saunier + + * docs/meson.build: + * gst/meson.build: + * libs/gst/base/meson.build: + * libs/gst/check/meson.build: + * libs/gst/controller/meson.build: + * libs/gst/net/meson.build: + * meson.build: + meson: Namespace the plugins_doc_dep/libraries variables + Part-of: + +2022-08-31 18:44:14 -0400 Thibault Saunier + + * meson.build: + meson: Rename plugins list and make them "dependency" objects + Part-of: + +2022-08-31 14:23:59 +0200 Martin Dørum + + * gst/gstpluginloader.c: + gstpluginloader: Don't hang on short reads/writes + If read_one or write_one was called but the stream closed before it could + read/write a whole packet, read_one/write_one would hang indefinitely, + consuming 100% CPU. This commit fixes that by treating a short read/write + as an error. + Part-of: + +2022-08-31 09:15:08 -0400 Xavier Claessens + + * gst/gst.c: + gst_init: Initialize static plugins just before dynamic plugins + All plugins needs to be initialized after `gst_initialized = TRUE;` + otherwise they could complain that gst_init() has not been called. + Part-of: + +2022-05-31 15:18:03 +0200 Stéphane Cerveau + + * docs/meson.build: + docs: disable in static build + Following gst-plugins-base, disable docs if static_build + in: + - gstreamer + - gst-plugins-good + - gst-plugins-ugly + - gst-libav + - gstreamer-vaapi + Part-of: + +2022-08-24 12:42:12 -0400 Olivier Crête + + * gst/gstvalue.c: + value: Use g_critical() when trying to serialize things that can't be + Part-of: + +2022-08-01 14:00:20 -0400 Olivier Crête + + * gst/gstvalue.c: + * tests/check/gst/gstvalue.c: + gstvalue: Don't loop forever when serializing invalid flag + The serialization code would loop forever if an invalid flag was sent into it. + With unit test for this corner case. + Part-of: + +2022-08-23 19:40:54 +0300 Sebastian Dröge + + * gst/gstbin.c: + bin: Don't propagate state change errors of elements in locked state + Theoretically having elements in locked state should not have any effect + at all when the surrounding bin is doing state changes. However + previously a state change error of a locked element would cause the + bin's state change to also fail, which is clearly not intended. + State change failures of locked elements are to be handled by whoever + set the element to locked state. By always returning them here it is + impossible for the owner of the element to handle state change failures + gracefully without potentially affecting the whole pipeline's state + changes. + Non-failure returns are still returned as-is as the distinction between + ASYNC/NO_PREROLL/SUCCESS has big consequences on the state changes of + the bin and overall pipeline. Theoretically SUCCESS should also be + returned in all cases but I can't estimate the effects this would have + on the overall pipeline. + Part-of: + +2022-08-17 16:27:36 +0300 Sebastian Dröge + + * libs/gst/base/gstaggregator.c: + aggregator: Improve debug output to better understand why pads are not ready or can't accept more data + Part-of: + +2022-08-15 20:07:09 +0530 Nirbheek Chauhan + + * gst/gstmeta.c: + * gst/gstmeta.h: + * tests/check/gst/gstmeta.c: + meta: Set the parent refcount of the GstStructure correctly + The parent refcount is of the *transformed* buffer, not the input + buffer. + Also update the docs to clarify that @transbuf is the transformed + buffer, and not the buffer on which a transformation is being + performed. + Due to this bug, modifying the structure of a meta that has been + copied to another buffer fails with: + gst_structure_set: assertion 'IS_MUTABLE (structure) || field == NULL' failed + Add a test for the same. + Part-of: + +2022-07-09 17:04:07 +0300 Sebastian Dröge + + * gst/gst.c: + gst: Protect initialization state with a recursive mutex. + Otherwise a gst_init() call from a plugin would deadlock if the plugin + is loaded as part of registry updating. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/940 + Part-of: + +2022-07-09 17:02:26 +0300 Sebastian Dröge + + * gst/gstregistry.c: + registry: Remove dead code + Initialization/updating of the registry can't possible fail and all code + paths always returned TRUE. + Part-of: + +2022-07-09 16:50:54 +0300 Sebastian Dröge + + * gst/gst.c: + gst: Don't fail gst_init() if updating the registry fails + Everything is already marked as initialized at that point and by failing + no tracers would be loaded or plugin feature rank overrides would be + applied. + Part-of: + +2022-08-03 12:32:24 +0100 Tim-Philipp Müller + + * plugins/tracers/gstleaks.c: + tracers: leaks: delay type name lookup + Micro optimisation: Store the quark of the type name when tracking + objects and only do the quark to string conversion (hashtable lookup) + later when we actually need the string. + Part-of: + +2022-08-03 12:10:02 +0100 Corentin Damman + + * plugins/tracers/gstleaks.c: + tracers: leaks: fix potentially invalid memory access when trying to detect object type + The is_gst_mini_object_check would sometimes detect a proper GObject + as a mini object, and then bad things happen. + We know whether a pointer is a proper GObject or a MiniObject here + though, so just pass that information to the right code paths and + avoid the heuristics altogether. + Eliminates all remaining uses of object_is_gst_mini_object(). + Fixes #1334 + Part-of: + +2022-08-03 12:10:02 +0100 Tim-Philipp Müller + + * plugins/tracers/gstleaks.c: + tracers: leaks: fix potentially invalid memory access when trying to detect object type + The is_gst_mini_object_check would sometimes detect a proper GObject + as a mini object, and then bad things happen. + We know whether a pointer is a proper GObject or a MiniObject here + though, so just pass that information to the right code paths and + avoid the heuristics altogether. + There are probably more cases where the check should be eliminated. + Fixes #1334, maybe + Part-of: + +2022-07-28 19:44:20 +0000 Rafael Sobral + + * libs/gst/base/gstaggregator.c: + aggregator: fix reversed active/flushing arguments in debug log output + Part-of: + +2022-05-26 15:26:40 +0100 Philippe Normand + + * gst/gstversion.h.in: + GST_CHECK_VERSION: Fix unexpected "git = next version" assumption + 1.21.0.1 should not satisfy a check for 1.22.0. + If someone needs more control they should do a feature check for + the symbol in the headers or lib. + Based on a similar patch by Tim-Philipp Müller for libnice. + Part-of: + +2022-07-19 04:05:55 +0900 Seungha Yang + + * gst/gststructure.c: + * gst/gststructure.h: + * tests/check/gst/gststructure.c: + gststructure: Add gst_structure_get_flags method + We don't prevent setting G_TYPE_FLAGS on GstStructure + but no helper method for getting the value. + Add a method similar to gst_structure_get_enum() + Part-of: + +2022-07-18 15:46:21 +0300 Sebastian Dröge + + * libs/gst/base/gstaggregator.c: + aggregator: Reset EOS flag after receiving a stream-start event + And also don't assert that there are no buffers queued up when handling + an EOS event. The pad's streaming thread might've already received a new + stream-start event and queued up a buffer in the meantime. + This still leaves a race condition where the srcpad task sees all pads + in EOS state and finishes the stream, while shortly afterwards a pad + might receive a stream-start event again, but this doesn't seem to be + solveable with the current aggregator design. + Part-of: + +2022-07-12 10:49:27 +0000 Corentin Damman + + * plugins/tracers/gstleaks.c: + tracers: leaks: fix object-refings.class flags + Part-of: + +2022-07-09 18:05:58 +0300 Sebastian Dröge + + * gst/gstdevicemonitor.c: + devicemonitor: Use a sync bus handler for the provider to avoid accumulating all messages until the provider is stopped + Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/981 + Part-of: + +2022-07-08 16:37:51 +0200 Jan Alexander Steffens (heftig) + + * gst/gstinfo.c: + gstinfo: Parse "NONE" as a valid level name + This allows using `NONE` in `GST_DEBUG`, + `gst_debug_set_threshold_from_string`, etc. It was accessible before, + but only via the integer `0`. + Part-of: + +2022-06-29 08:57:42 +0300 Sebastian Dröge + + * gst/gstpad.c: + * gst/gsttracerutils.c: + * gst/gsttracerutils.h: + tracing: add hooks for gst_pad_chain() / gst_pad_chain_list() + This allows tracing buffers when they arrive in a pad instead of just + when they are pushed out of a pad. + Part-of: + +2022-06-29 10:55:13 +0100 Tim-Philipp Müller + + * gst/gst.c: + * meson.build: + coding style: allow declarations after statement + See https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1243/ + and https://gitlab.freedesktop.org/gstreamer/gstreamer-project/-/issues/78 + Part-of: + +2022-06-22 09:43:02 +0200 Jonas Danielsson + + * gst/gst.c: + gst: add missing define guard + If compiled with -Dgstreamer:gst_debug=false and we have + GST_REMOVE_DISABLED defined we will get the following compiler error: + ``` + [...]/libgstreamer-1.0.so.0.2100.0.p/gst.c.o: in function `gst_deinit': + [...]/gst/gst.c:1258: undefined reference to `_priv_gst_debug_cleanup' + [...] hidden symbol `_priv_gst_debug_cleanup' isn't defined + ``` + Add the missing define guard to avoid this. + Part-of: + +2022-06-21 11:51:35 +0300 Sebastian Dröge + + * tests/check/gst/gstbin.c: + bin: Fix race conditions in tests + The latency messages are non-deterministic and can arrive before/after + async-done or during state-changes as they are posted by e.g. sinks from + their streaming thread but bins are finishing asynchronous state changes + from a secondary helper thread. + To solve this, expect latency messages at any time and assert that we + receive one at some point during the test. + Part-of: + +2022-06-20 16:45:19 +0300 Sebastian Dröge + + * gst/gstelement.c: + * tests/check/gst/gstelement.c: + element: Fix requesting of pads with string templates + Previously it was only possible to request them with the exact template + name, e.g. 'src_%s', but not with "instantiated" names that would match + this template, e.g.'src_foo_bar'. + This is now possible and a test was added for this, in addition to + fixing a previously invalid test. + Part-of: + +2022-05-17 10:18:28 -0700 Xavier Claessens + + * gst/gstbuffer.h: + * gst/gstmemory.h: + Add GstMemoryMapInfo to be used with g_auto() + Part-of: + +2022-05-13 11:51:09 -0400 Xavier Claessens + + * gst/gstbuffer.c: + * gst/gstbuffer.h: + * tests/check/gst/gstbuffer.c: + Add GstBufferMapInfo to be used with g_auto() + We need a separate typedef for this feature because GstMapInfo itself + can be initialized by gst_memory_map() in which case info.memory should + not be unreffed. + Part-of: + +2022-06-20 15:29:21 +0100 Philippe Normand + + * tools/gst-inspect.c: + gst-inspect: Fix inspection of third-party plugins + Since commit de57657de1d1916503b4ad451ac13a3e191465f8 inspecting a third-party + plugin would trigger a segfault (Address boundary error) due to the missing + sentinel in the list of GStreamer modules. + Part-of: + +2022-06-14 16:30:08 +0100 Tim-Philipp Müller + + * docs/meson.build: + * docs/plugins/coretracers/index.md: + * docs/plugins/coretracers/sitemap.txt: + docs: ensure coretracers plugin index page is index.html + And not blank.html + Part-of: + +2022-06-12 23:28:21 +0100 Tim-Philipp Müller + + * tools/gst-inspect.c: + gst-inspect: print link to documentation for gstreamer elements + Part-of: + +2022-05-19 04:59:58 +0000 Adam Doupe + + * libs/gst/base/gstqueuearray.c: + queuearray: Fix potential heap overflow when expanding GstQueueArray + Check that elt_size*newsize doesn't overflow when expanding a + GstQueueArray, which has the potential for a heap overwrite. + Co-authored-by: Sebastian Dröge + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1232 + Part-of: + +2022-06-15 12:56:13 +0200 Víctor Manuel Jáquez Leal + + * libs/gst/check/gstharness.c: + docs: harness: Fix example + Part-of: + +2022-06-14 17:29:31 +0100 Tim-Philipp Müller + + * plugins/elements/gstmultiqueue.c: + multiqueue: fix potential crash on shutdown + The mq we get out of the weak ref might be NULL if we're + shutting down, which could cause assertion failures or + crashes. + It might also cause miscompilations where the compiler just + optimises away the NULL check because it jumps to a code path + that then dereferences the pointer which clearly isn't going + to work. Seems like something like this happens with gcc 11. + Fixes #1262 + Co-authored-by: Doug Nazar + Co-authored-by: Sebastian Dröge + Part-of: + +2022-06-14 03:29:41 -0600 James Hilliard + + * plugins/elements/gstmultiqueue.c: + multiqueue: fix warning: ‘is_query’ may be used uninitialized in this function + Fixes: + ../plugins/elements/gstmultiqueue.c: In function ‘gst_multi_queue_loop’: + ../plugins/elements/gstmultiqueue.c:2394:19: warning: ‘is_query’ may be used uninitialized in this function [-Wmaybe-uninitialized] + 2394 | if (object && !is_query) + | ^~~~~~~~~ + Part-of: + +2022-06-10 11:40:18 +0100 Tim-Philipp Müller + + * docs/random/moving-plugins: + docs: update technical howto in moving-plugins + Part-of: + +2022-06-08 11:33:22 +0530 Nirbheek Chauhan + + * gst/gst_private.h: + * gst/gstclock.c: + clock: Use g_atomic_rc_box for refcounting entry clocks + g_atomic_rc_box was added in GLib 2.58, and we require 2.62 now, so we + can fix the FIXME and use this. + Part-of: + +2022-04-06 12:56:30 +0100 Tim-Philipp Müller + + * gst/gstdevicemonitor.c: + * meson.build: + * tests/check/gst/gsturi.c: + Bump GLib requirement to >= 2.62 + Can't require 2.64 yet because of + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/323 + Part-of: + +2022-06-01 09:25:29 +0200 Guillaume Desmottes + + * libs/gst/base/gstbasetransform.c: + basetransform: handle gst_base_transform_query_caps() returning NULL + If gst_base_transform_transform_caps() returns NULL, gst_base_transform_query_caps() + will return NULL as well. + Part-of: + +2022-05-18 17:03:27 +0200 Jan Alexander Steffens (heftig) + + * gst/gst_private.h: + * gst/gstclock.c: + clock: Avoid creating a weakref with every entry + Creating and destroying weakrefs takes a write lock on a global + `GRWLock`. This makes for a very contended lock when the pipeline has + many synchronizing elements. + Part-of: + +2022-05-31 14:27:51 +0200 Guillaume Desmottes + + * libs/gst/base/gstbasetransform.c: + basetransform: fix critical if transform_caps() returned NULL + klass->transform_caps() may return NULL, which was raising this + critical: + GStreamer-CRITICAL **: 12:23:56.243: gst_caps_is_subset: assertion 'subset != NULL' failed + Part-of: + +2022-05-29 20:38:38 +1000 tom schuring + + * gst/gstplugin.c: + plugin: add Apache 2 license to known licenses + the licence in gstreamer/subprojects/gstreamer/gst/gstplugin.c + currently is defined to be one of: + LGPL GPL QPL GPL/QPL MPL BSD MIT/X11 0BSD Proprietary + The open source project for the kinesis plugin is using an + Apache 2.0 license. Because "Apache 2.0" is not one of the + supported licenses it automatically falls back to Proprietary. + Part-of: + +2022-01-21 20:31:27 -0300 Thibault Saunier + + * gst/gst_private.h: + * gst/gststructure.c: + * gst/gstvalue.c: + * tests/check/gst/gststructure.c: + structure: Fix serializing with new format inside arrays/lists + Part-of: + +2022-05-18 10:04:08 +0800 WANG Xuerui + + * gst/gstconfig.h.in: + gstreamer/gst/gstconfig.h.in: Add support for LoongArch + While current and future LoongArch machines that are supposed to run + GStreamer all support unaligned accesses, there might be future + lower-end cores (e.g. the embedded product line) without such support, + and we may not want to penalize these use cases. + So, mark LoongArch as not supporting unaligned accesses for now, and + hope the compilers do a good job optimizing them. We can always flip + switch later. + Suggested-by: CHEN Tao + Part-of: + +2022-05-12 20:15:44 +0300 Sebastian Dröge + + * gst/gstelement.c: + element: Add sanity check with a critical warning if a pad is requested for a pad template that is not installed on the element class + Various elements are assuming that the pointer matches a pad template + they know about, and also randomly created pad templates might be + missing some important information that is necessary to create a valid + pad. + For example, creating a new pad template for audiomixer's sinkpad + without providing the correct GType would cause audiomixer to create a + GstAggregatorPad. That will then later fail spectacularly because it + assumes that it got a GstAudioAggregatorPad. + Passing a pad template that does not belong to the element class in here + will easily lead to undefined behaviour. + Part-of: + +2022-04-25 11:03:35 +0200 Stéphane Cerveau + + * tests/check/gst/gstcaps.c: + tests: test fixed caps + Add a test entry to check wether a caps is fixed + or not. + Part-of: + +2022-04-25 10:59:21 +0200 Stéphane Cerveau + + * gst/gstcaps.c: + * tests/check/pipelines/seek.c: + caps: warn with wrong mediatype in gst_caps_new_empty_simple + If passing ANY/EMPTY to gst_caps_new_empty_simple + as a mediatype, a warning will be displayed to alert + on this misuse of the API. + Part-of: + +2022-05-05 20:39:52 +0300 Sebastian Dröge + + * libs/gst/base/gstaggregator.c: + aggregator: Don't send multiple caps events with the same caps + Every time aggregator is reconfiguring it will try to negotiate new + caps. If these resulting caps are the same as the previously negotiated + caps then don't send a new caps event with the same caps again. + Part-of: + +2022-05-05 15:05:43 +0300 Sebastian Dröge + + * libs/gst/base/gstaggregator.c: + aggregator: Only send events up to CAPS event from gst_aggregator_set_src_caps() + Otherwise setting the srcpad caps based on the sinkpad caps event will + already push a segment event downstream before the upstream segment is + known. + If the upstream segments are just forwarded when the upstream segment + event arrives this would result in two segment events being sent + downstream, of which the first one will usually be simply wrong. + Part-of: + +2022-05-05 09:00:17 +0200 Edward Hervey + + * plugins/elements/gstmultiqueue.c: + multiqueue: Increase initial interleave growth rate + In the case where not all streams have received any data, growing the interleave + by only 100ms is too restrictive and would cause some (valid) mpeg-ts streams to + hang. + Bump up the interleave growth rate for those use-cases to 500ms per input (still + up to the limit of 5s). + Part-of: + +2022-05-02 11:41:52 +0100 Tim-Philipp Müller + + * plugins/elements/gstfilesink.c: + filesink: fix handling of non-existing paths with musl + Fixes #1194 + Part-of: + +2022-04-09 21:07:43 +0100 Tim-Philipp Müller + + * gst/gstregistry.c: + registry: skip Rust dep builddirs when searching for plugins recursively + These artefacts confuse the plugin scanner and may cause noisy warnings + (and slow down things). + Fixes https://gitlab.freedesktop.org/gstreamer/gst-build/-/issues/68 + Part-of: + +2020-11-26 18:11:12 +0100 Mathieu Duponchelle + + * libs/gst/base/gstaggregator.c: + aggregator: forward gap event information to gap buffer + When the GAP event was flagged with MISSING_DATA, subclasses + may want to adopt a different behaviour, for example by repeating + the last buffer. + As we turn these gap events into gap buffers, we need to flag + those, we do so with a new custom meta. + Part-of: + +2022-02-25 16:54:37 -0500 Xavier Claessens + + * libs/gst/helpers/meson.build: + meson: Add PYTHONPATH to load GDB helper module + Meson generates a gdbinit file that will automatically load gstreamer + script. However that script uses a helper python module that needs + PYTHONPATH to be pointing into the right location in the source + tree to be able to find gst_gdb.py. + Part-of: + +2022-04-20 09:38:16 +0200 Guillaume Desmottes + + * plugins/tracers/gstleaks.c: + gstleaks: log the number of alive objects + Can help checking if the number of alive objects is growing over time or stays stable. + Part-of: + +2022-04-19 14:05:16 +0300 Sebastian Dröge + + * gst/gstbuffer.h: + gstreamer: Document various caps for the reference timestamp meta + Part-of: + +2022-03-25 10:18:34 -0400 Xavier Claessens + + * docs/random/i18n: + Always define ENABLE_NLS + GLib guarantees libintl API is always available, provided by + proxy-libintl as last resort. GLib itself unconditionally define + ENABLE_NLS. + Part-of: + +2022-03-25 10:20:24 -0400 Xavier Claessens + + * docs/meson.build: + * gst/gettext.h: + * gst/gst-i18n-app.h: + * gst/gst-i18n-lib.h: + Delete unused i18n headers + Part-of: + +2022-03-25 09:59:23 -0400 Xavier Claessens + + * docs/gst-hotdoc-plugins-scanner.c: + * gst/gst.c: + * gst/gstelement.c: + * gst/gsterror.c: + * gst/gstpipeline.c: + * gst/gstregistry.c: + * gst/gsttaglist.c: + * gst/gsturi.c: + * gst/gstutils.c: + * gst/parse/grammar.y.in: + * libs/gst/base/gstbasesink.c: + * libs/gst/base/gstbasesrc.c: + * libs/gst/base/gstbasetransform.c: + * plugins/elements/gstcapsfilter.c: + * plugins/elements/gstdownloadbuffer.c: + * plugins/elements/gstfdsink.c: + * plugins/elements/gstfilesink.c: + * plugins/elements/gstfilesrc.c: + * plugins/elements/gstidentity.c: + * plugins/elements/gstqueue.c: + * plugins/elements/gstqueue2.c: + * plugins/elements/gsttypefindelement.c: + * tools/tools.h: + Replace gst-i18n-*.h with gi18n-lib.h + GLib guarantees libintl is always present, using proxy-libintl as + last resort. There is no need to mock gettex API any more. + This fix static build on Windows because G_INTL_STATIC_COMPILATION must + be defined before including libintl.h, and glib does it for us as part + as including glib.h. + Part-of: + +2022-04-18 15:44:47 +0530 Nirbheek Chauhan + + * gst/meson.build: + * meson.build: + meson: Add -Wl,-rpath,${libdir} on macOS + We made the gstreamer installation prefix relocatable by picking up + plugins relative to the location of libgstreamer-1.0.dylib, similar to + how it's done for Windows: + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1627 + This had a lot of side-effects: + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1051 + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/363 + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/371 + https://gitlab.freedesktop.org/gstreamer/cerbero/-/issues/362 + A partial fix for the cerbero side of these was: + https://gitlab.freedesktop.org/gstreamer/cerbero/-/merge_requests/807 + However, this relied on the consumers knowing that they need to add + `LC_RPATH` entries to the libdir of the prefix. This is done + automatically by build systems like Meson, but not by others, such as + Autotools, CMake, Cargo, XCode, etc. For those, we need to add the + RPATH entries to the gstreamer-1.0.pc file. + This also has the side-effect of fixing the loading of gstreamer rust + plugins on macOS: + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1159 + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1149 + Part-of: + +2021-11-12 20:13:10 +0100 Ruben Gonzalez + + * gst/gstplugin.c: + gst_plugin_load_file: force plugin reload if diff filename + If a file includes a new version of a plugin that exits in the + registry, the output of gst-inspect is incorrect. The output has the + correct version but incorrect filename, and element description. + This seems to have also fixed some documentation issues. + Part-of: + +2020-05-29 11:29:56 -0300 Tulio Beloqui + + * gst/gstdevicemonitor.c: + gstdevicemonitor: added cleanup of signal handlers and hidden providers list + Part-of: + +2022-04-15 17:00:24 +0200 Guillaume Desmottes + + * plugins/tracers/gstleaks.c: + gstleaks: fix pthread_atfork return value check + pthread_atfork() returns 0 on success. + Part-of: + +2022-04-13 16:59:50 +0300 Sebastian Dröge + + * libs/gst/net/gstptpclock.c: + ptpclock: Fix wrong condition order from last commit + Part-of: + +2022-04-12 19:22:51 +0300 Sebastian Dröge + + * libs/gst/net/gstptpclock.c: + ptpclock: Allow at least 100ms delay between Sync/Follow_Up and Delay_Req/Delay_Resp messages + It doesn't matter for measurement purposes whether receiving them takes + a while and various PTP servers are not prioritizing to send them, + causing them to be dropped unnecessarily and preventing proper + synchronization with such servers. + This is especially a problem if the RTTs in the network are very low + compared to the additional delay imposed by the server. + Part-of: + +2022-04-12 01:01:23 +0900 Seungha Yang + + * tools/gst-launch.c: + * tools/meson.build: + win32: Enable high-resolution timer for MinGW build + timeapi.h is missing in our MinGW toolchain. Include mmsystem.h + header instead, which defines struct and APIs in case of our MinGW + toolchain. Note that in case of native Windows10 SDK (MSVC build), + mmsystem.h will include timeapi.h + Part-of: + +2022-04-08 13:44:53 +1000 Matthew Waters + + * gst/gst.c: + gst: remove custom logger for critical/warnings/fatals + It's not really needed anymore (only calls out to + g_log_default_handler() and interferes with applications using + g_log_set_default_handler(). + Part-of: + +2022-04-01 21:47:59 +0800 Haihua Hu + + * tools/gst-launch.c: + ximagesink/xvimagesink: use GST_XINITTHREADS to ensure call to XInitThreads + Part-of: + +2022-04-02 00:16:29 +1100 Jan Schmidt + + * libs/gst/base/gstaggregator.c: + aggregator: Improve debugging of arriving buffers + Log some details about the buffers that are arriving and + being enqueued on each sink pad. + Part-of: + +2022-04-02 00:46:21 +1100 Jan Schmidt + + * gst/gstpad.c: + gstreamer: Remove GST_DATAFLOW debug category + Nothing has logged anything to this category since event and + buffer dataflow was de-unified in 2005. + Part-of: + +2022-03-30 11:06:02 -0400 Xavier Claessens + + * meson.build: + Use gmodule-no-export-2.0 + We don't need `-Wl,--export-dynamic`, that's used only for executables + that needs to export an API to be used by plugins they load. + Part-of: + +2022-03-25 15:00:20 -0400 Xavier Claessens + + * docs/meson.build: + * libs/gst/base/meson.build: + * libs/gst/check/meson.build: + * libs/gst/controller/meson.build: + * libs/gst/helpers/meson.build: + * meson.build: + * plugins/elements/meson.build: + * tests/benchmarks/meson.build: + * tests/check/meson.build: + * tests/examples/adapter/meson.build: + * tests/examples/controller/meson.build: + * tests/examples/helloworld/meson.build: + * tests/examples/memory/meson.build: + * tests/examples/netclock/meson.build: + * tests/examples/ptp/meson.build: + * tests/examples/stepping/meson.build: + * tests/examples/streamiddemux/meson.build: + * tests/examples/streams/meson.build: + Remove glib and gobject dependencies everywhere + They are part of gst_dep already and we have to make sure to always have + gst_dep. The order in dependencies matters, because it is also the order + in which Meson will set -I args. We want gstreamer's config.h to take + precedence over glib's private config.h when it's a subproject. + While at it, remove useless fallback args for gmodule/gio dependencies, + only gstreamer core needs it. + Part-of: + +2022-03-24 14:15:00 -0400 Xavier Claessens + + * meson.build: + Fix cross build with mingw32 + At least on Ubuntu 20.04 the x86_64-w64-mingw32-gcc toolchain defaults + to WinXP. We require at least Vista for FILE_STANDARD_INFO. + Part-of: + +2020-09-04 20:52:47 -0400 Xavier Claessens + + * data/android/GStreamer.java: + * data/meson.build: + * gst/gstandroid.c: + * gst/meson.build: + Android: Implement JNI_OnLoad() + When building for Android, chances are that gstreamer is going to be + loaded from Java using System.loadLibrary(). In that case we can + initialize GStreamer (including static plugins), redirect log functions, + etc. + This code is copied from cerbero because it can be used with + gstreamer-full-1.0 too. Cerbero needs to be adapted to drop that code + and generate gst_init_static_plugins() function. + Part-of: + +2021-09-11 12:17:56 -0300 Thibault Saunier + + * meson.build: + * tools/meson.build: + tools: Add support for building gstreamer tools against gst-full + Part-of: + +2022-03-30 10:01:33 +0200 Edward Hervey + + * gst/gstquark.c: + * gst/gstquark.h: + * gst/gstquery.c: + * gst/gstquery.h: + query: Add a new stream selection query + This new API allows querying whether elements can handle stream selection + themselves or not. + Part-of: + +2022-03-18 13:42:27 +0530 Nirbheek Chauhan + + * meson.build: + meson: Bump all meson requirements to 0.60 + Lots of new warnings ever since + https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1934 + Part-of: + +2022-01-05 19:33:06 +0100 Vivienne Watermeier + + * libs/gst/base/gstaggregator.c: + compositor: send translated navigation events to the relevant sink pads + Fixes #888 + Part-of: + +2022-02-23 17:39:18 +0100 Vivienne Watermeier + + * gst/gstevent.c: + * gst/gstmessage.c: + documentation: improve misleading wording + The documentation for several gst_*_writable_structure functions stated + that they would never return NULL, without making clear that the passed + object is required to be writable. This changes the wording in those + cases to make that requirement more clear. + Part-of: + +2022-03-10 18:22:49 +0000 Philippe Normand + + * gst/gsturi.c: + uri: Build doubly-linked list by prepending items + As outlined in the API documentation, g_list_append() iterates over the whole + list, which can quickly introduce performance issues when the list becomes very + big, such as for data URIs for instance. + Part-of: + +2022-03-08 12:04:41 +0000 Philippe Normand + + * plugins/elements/gsttypefindelement.c: + typefind: Skip parsing of data URIs + Commit a46ab2ced20d757e0e770d4de1edc3a152cc4f2f introduced a regression, + breaking typefinding for media content muxed in mp4 container and serialized to + data URIs. For this case it doesn't make sense to look for a file extension, so + skip URI parsing. + Part-of: + +2022-03-15 14:00:06 +0100 Corentin Noël + + * libs/gst/base/gstbasesink.h: + basesink: Fix annotations + We should annotate the Class and not the object itself. + Part-of: + +2022-03-11 18:08:14 -0500 Xavier Claessens + + * data/bash-completion/helpers/meson.build: + * data/meson.build: + * libs/gst/helpers/meson.build: + Meson: Set install_tag on some files + Meson tries to guess the tag (runtime, devel, etc) for every installed + file, but it cannot guess them all. There is a list at the end of + meson-log.txt of files we need to tag manually. + See https://mesonbuild.com/Installing.html#installation-tags. + Part-of: + +2022-03-02 17:07:37 +0100 Edward Hervey + + * plugins/elements/gstmultiqueue.c: + multiqueue: Fix interleave calculation for data before segment start + This commit modifies the interleave calculation to allow growing when incoming + data is before the segment start. + The rationale is that there is no requirement whatsoever for data before the + segment start to be "coherent" on all streams. + For example, a demuxer could rightfully send data from the video stream from the + previous keyframe (potentially quite a bit before the segment start) and the + audio from just before the segment start. + This will activate the same logic as growing the interleave when some streams + haven't received buffers yet. + Part-of: + +2021-08-06 08:30:39 +0200 Edward Hervey + + * plugins/elements/gstmultiqueue.c: + * plugins/elements/gstmultiqueue.h: + multiqueue: Improve interleave calculation at startup and EOS + * When a stream receives EOS, it will no longer change, we shouldn't take that + stream into account for interleave calculation. + * When streams (re)appear, we do not want to grow the initial interleave values + to excessive values. Instead of setting it to a default of 5s, progressively + grow it to that maximum. + * When the status of input streams change (i.e. going to/from "some haven't + received data yet" and "all have received data"), update the interleave + immediately instead of waiting for (potentially) 5s of data before updating + it. + Part-of: + +2021-12-20 17:31:17 +0100 sergei.kovalev + + * tests/check/gstreamer.supp: + check: Fix valgrind suppression for debug function list + Fix suppression to support release and debug builds. + Here is the debug build call stack: + ``` + ==10707== by 0x48B5520: g_malloc (gmem.c:106) + ==10707== by 0x48D19DC: g_slice_alloc (gslice.c:1069) + ==10707== by 0x48D3947: g_slist_copy_deep (gslist.c:619) + ==10707== by 0x48D38B8: g_slist_copy (gslist.c:567) + ==10707== by 0x4ADC90B: gst_debug_remove_with_compare_func (gstinfo.c:1504) + ``` + In release build `g_slist_copy (gslist.c:567)` got inlined: + ``` + ==15419== by 0x48963E0: g_malloc (gmem.c:106) + ==15419== by 0x48AA382: g_slice_alloc (gslice.c:1069) + ==15419== by 0x48AB732: g_slist_copy_deep (gslist.c:619) + ==15419== by 0x4A39B8F: gst_debug_remove_with_compare_func (gstinfo.c:1504) + ``` + Part-of: + +2022-02-21 10:49:15 +0100 Sebastian Fricke + + * docs/gst/running.md: + * docs/index.md: + * gst/gstregistry.c: + Remove the uninstalled term + Remove the symbolic link `gst-uninstalled` which points to `gst-env`. + The `uninstalled` is the old name and the project should stick to a + single name for the procedure. + Remove the term from all the files, exceptions are variables from + dependencies like `uninstalled_variables` from pkgconfig and + `meson-uninstalled`. + Adjust mentions of the script in the documentation and README. + Part-of: + +2022-02-23 11:10:11 +0100 Sebastian Fricke + + * README.md: + Maintain build instructions at a single location + Do not maintain similar build instructions within each gst-plugins-* + subproject and the subproject/gstreamer subproject. Use the build + instructions from the mono-repository and link to them via hyperlink. + Part-of: + +2022-02-23 10:13:54 +0200 Sebastian Dröge + + * gst/gstbuffer.h: + buffer: Clarify that the MARKER flag maps to the corresponding RTP header flag + Part-of: + +2022-02-27 13:17:40 +0200 Sebastian Dröge + + * gst/gstregistry.c: + registry: Fix multi-line `#warning` compiler warning + subprojects/gstreamer/gst/gstregistry.c:1593: unexpected character `"' + Part-of: + +2022-02-21 11:37:26 -0500 Xavier Claessens + + * libs/gst/helpers/meson.build: + devenv: Add some missing GStreamer specific env variables + This should make "meson devenv" closer to what "gst-env.py" sets. + - GST_VALIDATE_SCENARIOS_PATH + - GST_VALIDATE_APPS_DIR + - GST_OMX_CONFIG_DIR + - GST_ENCODING_TARGET_PATH + - GST_PRESET_PATH + - GST_PLUGIN_SCANNER + - GST_PTP_HELPER + - _GI_OVERRIDES_PATH + Part-of: + +2021-11-03 17:05:07 +1100 Matthew Waters + + * libs/gst/check/gsttestclock.c: + tests/clock: avoid a race cranking + Scenario: + - Source 1 requesting and waiting a clock id + - Source 2 requesting and waiting on a clock id + - Test attempting to crank both sources in the same GstHarness + gst_test_clock_crank() originally dropped locks between the retrieving + of the next clock id and advancing to the next clock id. This would + mean that both sources would race each other attempting to complete + their clock waits. Sometimes the operations would be performed in the + correct order, other times they would not and a FALSE return value would + be produced. + This would lead to an assertion in gst_harness_push_from_src() expecting + that all clock cranks to succeed. + Fix by ensuring that the clock wait produced is dealt with before + processing the next by not dropping the relevant locks after retrieving + the next clock id. + Part-of: + +2021-11-02 15:58:49 -0400 Nicolas Dufresne + + doc: Fix doc comment for GstChildProxy + This removes warning like: + ../subprojects/gstreamer/gst/gstchildproxy.h:57: Error: Gst: identifier not found on the first line: + * #GstChildProxyInterface::get_child_by_name: + ^ + Part-of: + +2022-02-06 22:54:42 +0900 Seungha Yang + + * gst/gstinfo.c: + * libs/gst/check/libcheck/libcompat/libcompat.h: + * libs/gst/net/gstptpclock.c: + gstinfo,ptpclock,libcheck: Use GetCurrentProcessId() instead of getpid() on Windows + getpid() shouldn't be used in case of UWP. Use GetCurrentProcessId() + instead which provides exactly the same functionality and can be + used with UWP as well. + Part-of: + +2022-02-07 02:49:15 +0900 Seungha Yang + + * meson.build: + * tests/check/elements/fdsrc.c: + * tests/check/gst/gstpoll.c: + check: Disable some tests if pipe() is unavailable for UWP build + pipe() and _pipe() are not allowed on UWP + Part-of: + +2021-10-01 20:27:28 +0900 Seungha Yang + + * meson.build: + * tests/check/gst/gstmeta.c: + * tests/check/gst/gstpoll.c: + * tools/gst-inspect.c: + meson: Do hard build error for some MSVC warnings + Handle various MSVC warnings as errors for development version. + Part-of: + +2022-02-08 23:30:00 +0900 Seungha Yang + + * libs/gst/check/libcheck/libcompat/libcompat.h: + Remove some trailing white spaces + Part-of: + +2022-01-31 13:01:10 +0100 Vivienne Watermeier + + * gst/gstevent.c: + navigation: add more constructors for navigation events + Part-of: + +2022-02-08 12:58:52 +1100 Matthew Waters + + * gst/gstregistry.c: + registry: enable relocatable builds for anywhere with dladdr() + Such as Linux/BSD's. + Matches the Windows/macOS behaviour. + Part-of: + +2021-12-08 22:13:15 +0000 Jose Quaresma + + * gst/gstpluginloader.c: + gstpluginloader: show the reason when spawning of gst-plugin-scanner fail + This fix helps in cross compiling when the meson tests runs using a qemu wraper + Part-of: + +2021-10-22 18:40:07 -0300 Martin Reboredo + + * gst/gstvalue.c: + gstvalue: De/Serialization of GBytes + Part-of: + +2022-02-08 16:24:13 +1100 Sebastian Mueller + + * gst/gstcontext.c: + context: fix transfer annotation + Part-of: + +2020-02-17 21:50:54 -0600 Zebediah Figura + + * libs/gst/base/gstbaseparse.c: + * tests/check/libs/baseparse.c: + baseparse: Don't truncate the duration to milliseconds in gst_base_parse_convert_default(). + There's no need to do this, and it can make seeking far less accurate. + For a specific use case: I am working with a long (45-minute) MPEG-1 layer 3 file, which has a constant bit rate but no seeking tables. Trying to seek the pipeline immediately after pausing it, without the ACCURATE flag, to a location 41 minutes in, yields a location that is potentially over ten seconds ahead of where it should be. This patch improves that drastically. + Part-of: + +2022-02-07 19:33:31 -0600 Zebediah Figura + + * libs/gst/base/gstbaseparse.c: + baseparse: Trace time with GST_TIME_FORAMT in gst_base_parse_convert_default(). + Be consistent with how we trace time in general. + Part-of: + +2022-02-07 09:46:46 +0200 Sebastian Dröge + + * gst/gstbufferpool.c: + bufferpool: Deactivate pool and get rid of references to other objects from dispose instead of finalize + During dispose the pool will still have a reference count of 1 and all + API on it can still be safely called. + Subclasses will have already freed their own data before finalize is + called but would nonetheless be called into again via the pool + deactivation. + Part-of: + +2022-02-07 16:51:25 +1100 Matthew Waters + + * gst/gstpluginloader.c: + * meson.build: + pluginloader: support multiple subdirectories for GST_PLUGIN_SUBDIR (libdir) + i.e. if GST_PLUGIN_SUBDIR is 'some/lib/path', then the default plugin + loading assumed that there was only 'lib' as it only went up a single + directory to then find the plugin scanner. + Fix to support multiple subdirectories for GST_PLUGIN_SUBDIR (libdir). + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/995 + Part-of: + +2022-02-07 16:36:13 +1100 Matthew Waters + + * gst/gstregistry.c: + registry: check the value of dladdr() + info.dli_fname could be NULL. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/994 + Part-of: + +2022-02-07 16:33:03 +1100 Matthew Waters + + * gst/gstregistry.c: + registry: check the return value of g_win32_get_package_installation_directory_of_module() + g_win32_get_package_installation_directory_of_module() may return NULL + in some circumstances and we need to deal with that. + Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/996 + Part-of: + +2022-02-04 11:15:47 +0000 Tim-Philipp Müller + + * meson.build: + Back to development + Part-of: + +=== release 1.20.0 === + +2022-02-03 19:53:25 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * README: + * RELEASE: + * gstreamer.doap: + * meson.build: + Release 1.20.0 + +2022-02-03 19:53:18 +0000 Tim-Philipp Müller + + * ChangeLog: + Update ChangeLogs for 1.20.0 + +2022-02-02 18:06:49 +1100 Matthew Waters + + * gst/gst.c: + * gst/gst_private.h: + * gst/gstpluginloader.c: + * gst/gstregistry.c: + registry/macos: retrieve plugins relative to location of libgstreamer.dylib + Provides a relocatable directory structure for running GStreamer + applications as used in GStreamer.framework. + Part-of: + === release 1.19.90 === 2022-01-28 14:28:35 +0000 Tim-Philipp Müller + * ChangeLog: * NEWS: * RELEASE: * gstreamer.doap: