From b4ca58df7624b005a33e182a511904d7cceea890 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Thu, 23 Sep 2021 01:32:32 +0100 Subject: [PATCH] Release 1.19.2 --- ChangeLog | 472 +++++++++++++++++++++++++++++++++++++++++++++++++ NEWS | 25 +-- RELEASE | 2 +- gstreamer.doap | 10 ++ meson.build | 2 +- 5 files changed, 498 insertions(+), 13 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3fb5a93764..34f23a6304 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,475 @@ +=== release 1.19.2 === + +2021-09-23 01:32:32 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * gstreamer.doap: + * meson.build: + Release 1.19.2 + +2021-06-23 16:41:20 +0300 Sebastian Dröge + + * plugins/elements/gstclocksync.c: + clocksync: Add some debug output to the clock waiting code + Part-of: + +2021-09-20 13:12:12 +0300 Sebastian Dröge + + * gst/gstevent.c: + * gst/gstmessage.c: + gst: Initialize optional event/message fields when parsing + These might not exist inside the structure and then we would potentially + keep around uninitialized memory from the caller in the out parameter. + Part-of: + +2021-09-19 21:01:21 +0800 He Junyan + + * tests/check/libs/bitwriter.c: + test: bitwriter: Add a test for reset_and_get_data when not byte unaligned. + Part-of: + +2021-09-19 22:39:09 +0800 He Junyan + + * libs/gst/base/gstbitwriter.c: + bitwriter: Fix a memory leak in reset_and_get_buffer. + We should record the ownership of the data before we reset the bitwriter. + Or we will always dup the buffer data and leak the memory. + Part-of: + +2021-09-19 00:19:43 +0800 He Junyan + + * libs/gst/base/gstbitwriter.c: + bitwriter: Fix the trailing bits lost when getting its data. + In reset_and_get_data and reset_and_get_buffer, it fails to include + the trailing bits less than 8. So, when the bit_size is not byte + aligned, the trailing bits are lost in the return buffer. + Part-of: + +2021-09-10 01:43:18 +0200 Mathieu Duponchelle + + * plugins/elements/gstmultiqueue.c: + multiqueue: fix obsolete comment re initial flow status + The initial single queue srcresult is OK, it hasn't been + NOT_LINKED since 2007. + Part-of: + +2021-09-09 20:25:25 +0200 Mathieu Duponchelle + + * plugins/elements/gstmultiqueue.c: + multiqueue: never consider a queue that is not waiting + .. when computing the high id. + After a flush for instance, sq->srcresult is reset to OK, + yet it doesn't make sense to pick a non-existing position + id as the high id when a queue doesn't contain any items + in that situation either. + It is in any case completely OK to let the not-linked stream + get consumed without throttling at this stage, as any + first packet arriving on other single queues will get assigned + a higher position id. + Part-of: + +2021-09-09 04:08:22 +0000 Andika Triwidada + + * tools/gst-inspect.c: + add missing space + Part-of: + +2021-09-06 01:43:57 +1000 Jan Schmidt + + * plugins/elements/gstmultiqueue.c: + multiqueue: Use running time of gap events for wakeups. + Use gap events to update the next_time of a queue the same + as buffers or segment events. Fixes problems where a group + consisting only of sparse streams primarily driven by + gap events would stall with a full multiqueue because + unlinked streams in the group were not being woken to + push data. + Part-of: + +2021-08-27 13:51:07 +1000 Matthew Waters + + * gst/gstelement.c: + element: NULL the lists of contexts in dispose() + If dispose() is called more than once, we may double unref the list of + GstContext's. + Part-of: + +2021-08-24 14:53:30 +0200 Jan Alexander Steffens (heftig) + + * gst/gstpad.c: + pad: Keep IDLE probe hook alive during immediate callback + When the probe returns GST_PAD_PROBE_REMOVE and gets called concurrently + from the streaming thread while we're in the callback here, the hook has + already been destroyed by the time we've reacquired the object lock. + Consequently, cleanup_hook gets passed an invalid pointer. + Keep another reference to the hook alive to avoid this situation. + Part-of: + +2021-08-20 16:34:16 +0200 Edward Hervey + + * plugins/elements/gstconcat.c: + concat: Properly propagate seqnum of segment events + Was broken by https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/819 + Part-of: + +2021-01-10 23:37:21 +0100 Théo MAILLART + + * tests/check/gst/gstelementfactory.c: + tests: elementfactory: add element creation tests + Part-of: + +2021-01-29 20:36:51 +0100 Théo MAILLART + + * gst/gstelementfactory.c: + * gst/gstelementfactory.h: + elementfactory: enable construct only property passing + Part-of: + +2021-03-31 18:36:00 -0400 Olivier Crête + + * docs/plugins/gst_plugins_cache.json: + * plugins/tracers/gstfactories.c: + * plugins/tracers/gstfactories.h: + * plugins/tracers/gsttracers.c: + * plugins/tracers/meson.build: + * tools/gst-stats.c: + tracer: Add new tracer to list loaded elements and other features + This new tracer will list loaded elements and plugins. This should + make it easier to generate minimal builds of GStreamer. + This also traces other features such as typefind functions, device + providers and dynamic types. + The format of the output of gst-stats should match the parameters + expected by the meson based gst-build system. + Part-of: + +2021-04-23 15:34:26 -0400 Olivier Crête + + * gst/gstpluginfeature.c: + * gst/gsttracerutils.c: + * gst/gsttracerutils.h: + tracers: Add tracepoint when a plugin feature it loaded + This makes it possible to trace which ones are loaded in a specific + program to make nice statistics. + Part-of: + +2021-08-18 10:23:38 +0200 Edward Hervey + + * gst/gstpad.c: + * tests/check/gst/gstpad.c: + pad: Ensure last flow return is set on sink pads in push mode + The last flow return field was never updated on sink pads in push mode. This + fixes it and makes it consistent. + Part-of: + +2021-08-13 19:21:41 +0530 Nirbheek Chauhan + + * gst/gstbuffer.c: + gstbuffer: Use g_memdup2 instead of g_memdup + This was added in !826 which was created after !803 (which changes + g_memdup -> g_memdup2), but merged before it, so it slipped through. + Part-of: + +2021-08-10 13:35:14 +0100 Tim-Philipp Müller + + * gst/gstplugin.c: + plugin: load plugins with unknown license strings + We shouldn't fail to load plugins just because we don't + recognise the license string. It's not our job to validate + licenses, and the license list is outdated and ambiguous + anyway. + Also add MPL-2.0 to the list, and fix some defunct license + URLs in the code comments. + Get rid of the hard-coded skip index, doesn't really buy us + much versus just skipping with a few strlens, and is harder + to maintain. + Part-of: + +2021-08-02 14:23:58 +0200 Stéphane Cerveau + + * plugins/elements/gstidentity.c: + identity: provide a log to check the buffers + In order to not rely only on app to display the + message from identity, display the message in the logs + too. + Part-of: + +2021-08-01 03:36:31 +0900 Seungha Yang + + * tests/examples/controller/controller-graph.c: + examples: controller-graph: Fix build with MSVC + To use macros in math.h, one needs to define _USE_MATH_DEFINES + before including the math.h file. Use glib's math define instead. + Part-of: + +2021-05-12 00:54:43 +0900 Seungha Yang + + * tools/gst-launch.c: + * tools/meson.build: + gst-launch: Enable Windows high-resolution clock + Default timer precision of Windows is dependent on system, but + usually it's known to be about 15ms in worst case. + That's not an enough precision for multimedia application. + Enable high-resolution clock in gst-launch to demonstrate + the usage of Windows high-precision clock for application developers. + Part-of: + +2021-07-23 16:20:20 +0200 Jan Alexander Steffens (heftig) + + * plugins/elements/gstinputselector.c: + input-selector: Use proper segments when cleaning cached buffers + We need to use the segment associated with the cached buffer, not the + current segment of the pad, otherwise we miscalculate the running time + of cached buffers from before a segment change. + Part-of: + +2021-07-20 09:51:04 +0200 Stéphane Cerveau + + * .gitlab/issue_templates/Bug.md: + gitlab: update bug template + Finetune the bug description. + Part-of: + +2021-05-09 11:45:49 +0800 Zhao, Gang + + * gst/gsturi.c: + gsturi: Set GError if uri is invalid + GError should be set if function call failed and the failed reason is + not a programmer error. + Fixed: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1380 + Part-of: + +2021-05-09 11:13:48 +0800 Zhao, Gang + + * gst/gsturi.c: + gsturi: Don't treat invalid format of uri as critical error + Normally uri is get from user input and invalid user input should not + be treated as critical error. Moved gst_uri_is_valid outside of + g_return_val_if_fail. + NULL uri is checked inside of gst_uri_is_valid and is correctly + treated as critical error, removed unneeded checks of NULL uri outside + of gst_uri_is_valid function. + Part-of: + +2021-07-20 16:52:12 +0900 Seungha Yang + + * gst/gstsystemclock.c: + systemclock: Restore default clock mode to monotonic for non-linux system + Before the MR https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/829 + Windows and macOS system clock used monotonic clock regardless of + selected clock mode. And because of clock resolution, we should prefer + monotonic over realtime unless realtime clock is selected explicitly. + Part-of: + +2021-07-07 20:11:13 +0900 Seungha Yang + + * libs/gst/base/gstbasesink.c: + basesink: Don't swap rstart/rstop when stepping + Step handling is implemented based on unmodified start/stop + segment running time, and basesink takes rate into account for + stepping. This commit is partially undoing new behavior introduced by + the commit of 39b9cc554c960fec8d41f8394c41390883cadeed when stepping. + Part-of: + +2021-07-19 20:04:16 +0530 Nirbheek Chauhan + + * libs/gst/net/gstptpclock.c: + gstptpclock: Don't leak the GList + 120 bytes in 5 blocks are definitely lost in loss record 7,615 of 9,510 + at 0x484486F: malloc (vg_replace_malloc.c:380) + by 0x58A2938: g_malloc (gmem.c:106) + by 0x58BA1F4: g_slice_alloc (gslice.c:1069) + by 0x588F059: g_list_prepend (glist.c:335) + by 0x5B9C5C0: select_best_master_clock (gstptpclock.c:756) + by 0x5B9CA8E: cleanup_cb (gstptpclock.c:1930) + by 0x589AD20: g_timeout_dispatch (gmain.c:4889) + by 0x589A4CE: UnknownInlinedFun (gmain.c:3337) + by 0x589A4CE: g_main_context_dispatch (gmain.c:4055) + by 0x58EE4E7: g_main_context_iterate.constprop.0 (gmain.c:4131) + by 0x5899A92: g_main_loop_run (gmain.c:4329) + by 0x5B9BA4C: ptp_helper_main (gstptpclock.c:1980) + by 0x58C8C31: g_thread_proxy (gthread.c:826) + 576 bytes in 24 blocks are definitely lost in loss record 8,782 of 9,510 + at 0x484486F: malloc (vg_replace_malloc.c:380) + by 0x58A2938: g_malloc (gmem.c:106) + by 0x58BA1F4: g_slice_alloc (gslice.c:1069) + by 0x588F059: g_list_prepend (glist.c:335) + by 0x5B9C5C0: select_best_master_clock (gstptpclock.c:756) + by 0x5B9EFA0: handle_announce_message (gstptpclock.c:934) + by 0x5B9EFA0: handle_ptp_message (gstptpclock.c:1765) + by 0x5B9EFA0: have_stdin_data_cb (gstptpclock.c:1851) + by 0x589A4CE: UnknownInlinedFun (gmain.c:3337) + by 0x589A4CE: g_main_context_dispatch (gmain.c:4055) + by 0x58EE4E7: g_main_context_iterate.constprop.0 (gmain.c:4131) + by 0x5899A92: g_main_loop_run (gmain.c:4329) + by 0x5B9BA4C: ptp_helper_main (gstptpclock.c:1980) + by 0x58C8C31: g_thread_proxy (gthread.c:826) + by 0x5DA4298: start_thread (pthread_create.c:481) + Part-of: + +2021-07-06 13:04:04 +0530 Nirbheek Chauhan + + * gst/gstpad.c: + gstpad: Don't spam INFO when default-chaining a buffer list + This is being logged for each buffer, so it should not use INFO. + Part-of: + +2021-06-15 10:23:33 +0200 Stéphane Cerveau + + * .gitlab/issue_templates/Bug.md: + gitlab: add bug template + To clarify what is expected in an issue description and avoid + issue which is just an usage issue, add a bug template in gitlab. + Part-of: + +2021-07-08 11:48:58 +0200 Kasper Steensig Jensen + + * meson_options.txt: + Add meson description for tracer_hooks + Part-of: + +2020-05-28 08:06:59 +0200 Edward Hervey + + * gst/gstinfo.c: + gstinfo: Improve usage of libdw for backtraces + When getting backtraces, we were always creating a new Dwfl context and then + discarding it. The problem with that is that it resulted in having to re-scan a + lot of information for every single backtrace. + In order to fix that issue, use a global on-demand Dwfl context and use it with + a lock. + Furthermore, we were scanning the mappings of the + process (dwfl_linux_proc_report) for *every single step* in the backtrace, and + that function is horrendously expensive (does sscanf on /proc/PID/maps + ...). While there is a possibility that new mappings might be available (new + plugins being loaded for example), we can limit ourselves to just do it once per + backtrace. + These two modifications speed up the elements_leaks unit test (which traces all + pads with full backtraces) by a factor of 6. + Partially fixes #567 + Part-of: + +2021-07-02 01:59:18 +1000 Jan Schmidt + + * gst/parse/grammar.y.in: + parse: Fix a critical when using the : operator. + Fix "has no handler with id" output criticals when the : + multilink operator is used. These were caused by disconnecting + a signal handler multiple times. + Part-of: + +2021-06-24 11:28:28 +0300 Sebastian Dröge + + * libs/gst/base/gstbasesink.c: + * tests/check/gst/gstbin.c: + * tests/check/pipelines/cleanup.c: + * tests/check/pipelines/simple-launch-lines.c: + basesink: Post a latency message whenever we're ready to answer the query + Usually the latency message is only posted whenever latency of an + element changes but that might be too early as the sinks might not be + able to query the latency at that point yet. + Similarly adding a new sink should cause latency reconfiguration once + that new sink is able to report its latency. + This fixes latency configuration in pipelines where webrtcbin is the + only "sink", i.e. it is used in a sendonly session. Before, the latency + would always be configured to 0. + Part-of: + +2021-06-24 10:00:28 +0300 Sebastian Dröge + + * libs/gst/base/gstbasesrc.c: + basesrc: Print segments with GST_SEGMENT_FORMAT and not GST_PTR_FORMAT + Part-of: + +2021-06-22 13:02:41 +0200 Víctor Manuel Jáquez Leal + + * gst/gstpreset.c: + * gst/gstregistry.c: + Fix GI annotations. + Part-of: + +2021-06-15 08:10:16 +0000 Corentin Damman + + * COPYING: + Update COPYING to LGPL 2.1 + Part-of: + +2021-06-09 02:35:00 +1000 Jan Schmidt + + * gst/parse/grammar.y.in: + parse: Don't do delayed property setting for top-level properties. + If a property is supplied to gst-launch-1.0 to set on a property that + implements GstChildProxy, it would always accept any property name + and try to set it later. This means that (for example) decodebin + will accept and not complain about property names that can never exist like: + gst-launch-1.0 videotestsrc ! decodebin NON-EXISTING_PROPERTY=adsfdasf ! fakesink + Instead, only try to do deferred property setting for property names + that contain the :: separator that indicates it's a setting on a child + that might appear later. + Part-of: + +2021-06-16 11:59:20 +0200 François Laignel + + * gst/gstclock.c: + * gst/gstcontrolbinding.c: + * gst/gstcontrolsource.c: + * gst/gstelement.c: + * gst/gstevent.c: + * gst/gstmessage.c: + * libs/gst/base/gstbaseparse.c: + * libs/gst/base/gstbasesink.c: + * libs/gst/base/gstbasetransform.c: + * libs/gst/check/gstharness.c: + Check mandatory ClockTime arguments + Part-of: + +2021-04-23 12:12:58 -0400 Doug Nazar + + * gst/glib-compat-private.h: + * gst/gstregistrychunks.c: + * libs/gst/base/gstbitwriter.c: + * libs/gst/base/gstbytereader.c: + * libs/gst/base/gstbytereader.h: + * libs/gst/base/gstbytewriter.c: + * libs/gst/base/gstindex.c: + * tests/check/libs/bitwriter.c: + * tests/check/libs/bytereader.c: + * tests/check/libs/bytewriter.c: + Use g_memdup2() where available and add fallback for older GLib versions + glib 2.68 deprecates g_memdup(). Replace with g_memdup2() and + add fallback if compiling against older versions, since we + want to avoid deprecation warnings. + Part-of: + +2021-06-07 09:29:58 +0000 Alba Mendez + + * libs/gst/base/gstbasetransform.h: + introspection: annotate ownership in more vfuncs + Part-of: + +2021-06-03 23:46:06 +0000 Alba Mendez + + * gst/gstbin.h: + introspection: annotate handle_message ownership + (fixup/improvement to !747) Correct the ownership + annotation for `message` in the `handle_message` vfunc, + and remove the equivalent phrase elsewhere (following + rules of !747. + Part-of: + +2021-05-25 13:26:11 +0200 Guillaume Desmottes + + * plugins/tracers/gstleaks.c: + tracers: leaks: log when tracer is exiting + Useful when debugging leaks to make sure that the tracer is properly + finalized (gst_deinit() being actually called, etc). + Part-of: + +2021-06-01 15:28:13 +0100 Tim-Philipp Müller + + * meson.build: + Back to development + === release 1.19.1 === 2021-06-01 00:07:53 +0100 Tim-Philipp Müller diff --git a/NEWS b/NEWS index cc6c3b4a8e..0e581c39b8 100644 --- a/NEWS +++ b/NEWS @@ -1,15 +1,15 @@ GStreamer 1.20 Release Notes GStreamer 1.20 has not been released yet. It is scheduled for release -around July 2021. +around October/November 2021. 1.19.x is the unstable development version that is being developed in -the git master branch and which will eventually result in 1.20, and -1.19.1 is the current development release in that series +the git main branch and which will eventually result in 1.20, and 1.19.2 +is the current development release in that series -It is expected that feature freeze will be around June/July 2021, -followed by several 1.19 pre-releases and the new 1.20 stable release -around July 2021. +It is expected that feature freeze will be in early October 2021, +followed by one or two 1.19.9x pre-releases and the new 1.20 stable +release around October/November 2021. 1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12, 1.10, 1.8, 1.6,, 1.4, 1.2 and 1.0 release series. @@ -17,7 +17,7 @@ around July 2021. See https://gstreamer.freedesktop.org/releases/1.20/ for the latest version of this document. -Last updated: Sunday 30 May 2021, 16:00 UTC (log) +Last updated: Wednesday 22 September 2021, 18:00 UTC (log) Introduction @@ -247,6 +247,10 @@ Documentation improvements Possibly Breaking Changes - this section will be filled in in due course +- MPEG-TS SCTE-35 API changes (FIXME: flesh out) +- gst_parse_launch() and friends now error out on non-existing + properties on top-level bins where they would silently fail and + ignore those before. Known Issues @@ -274,16 +278,15 @@ the git 1.20 branch, which will be a stable branch. 1.20.0 -1.20.0 is scheduled to be released around July 2021. +1.20.0 is scheduled to be released around October/November 2021. Schedule for 1.22 Our next major feature release will be 1.22, and 1.21 will be the unstable development version leading up to the stable 1.22 release. The -development of 1.21/1.22 will happen in the git master branch. +development of 1.21/1.22 will happen in the git main branch. -The plan for the 1.22 development cycle is yet to be confirmed, but it -is hoped that feature freeze will take place some time in December 2021. +The plan for the 1.22 development cycle is yet to be confirmed. 1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series. diff --git a/RELEASE b/RELEASE index 58207844f0..5afe9d777b 100644 --- a/RELEASE +++ b/RELEASE @@ -1,4 +1,4 @@ -This is GStreamer core 1.19.1. +This is GStreamer core 1.19.2. GStreamer 1.19 is the development branch leading up to the next major stable version which will be 1.20. diff --git a/gstreamer.doap b/gstreamer.doap index 7838a7b1e6..ddb7cf256c 100644 --- a/gstreamer.doap +++ b/gstreamer.doap @@ -38,6 +38,16 @@ hierarchy, and a set of media-agnostic core elements. + + + 1.19.2 + master + + 2021-09-23 + + + + 1.19.1 diff --git a/meson.build b/meson.build index 5b72ec4cb3..bed8c4e1aa 100644 --- a/meson.build +++ b/meson.build @@ -1,5 +1,5 @@ project('gstreamer', 'c', - version : '1.19.1.1', + version : '1.19.2', meson_version : '>= 0.54', default_options : [ 'warning_level=1', 'buildtype=debugoptimized' ])