Release 1.16.3

This commit is contained in:
Tim-Philipp Müller 2020-10-21 14:41:22 +01:00
parent 0922975a02
commit 570736df65
6 changed files with 788 additions and 61 deletions

413
ChangeLog
View file

@ -1,3 +1,416 @@
=== release 1.16.3 ===
2020-10-21 14:41:22 +0100 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
* NEWS:
* RELEASE:
* configure.ac:
* gstreamer.doap:
* meson.build:
Release 1.16.3
2020-10-21 14:41:22 +0100 Tim-Philipp Müller <tim@centricular.com>
* docs/plugins/inspect/plugin-coreelements.xml:
* docs/plugins/inspect/plugin-coretracers.xml:
Update docs
2020-10-21 14:41:20 +0100 Tim-Philipp Müller <tim@centricular.com>
* po/fr.po:
* po/pt_BR.po:
* po/ro.po:
* po/sr.po:
Update translations
2020-10-20 15:09:52 +0100 Tim-Philipp Müller <tim@centricular.com>
* README:
* common:
Automatic update of common submodule
From 59cb678 to a825d27
2020-10-13 01:19:47 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* gst/gstvalue.c:
gstvalue: don't write to const char *
Our various deserializing functions require NULL terminators
to not over consume substrings (eg fields of an array). Instead
of writing a NULL terminator to the passed-in string, which may
result in segfaults, make a copy of the substring we're interested
in.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/446
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/674>
2020-10-09 12:13:15 +1100 Matthew Waters <matthew@centricular.com>
* meson.build:
build: use cpu_family for arch checks
e.g. on 32-bit arm, we may have armv6, armv7l, armv7hf, etc which all
generally have the same layouts. cpu_family() groups all of these into
just 'arm' that the ABI check table is expecting.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/671>
2020-04-01 15:41:49 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* tools/gst-launch.c:
gst-launch: go back down to GST_STATE_NULL in one step.
Going through each state on the way back down to GST_STATE_NULL
can cause deadlocks, for example:
gst-launch-1.0 audiotestsrc ! valve drop=true ! autoaudiosink
ctrl + C
Hangs forever when going to PAUSED, because the "final" state is
ASYNC, and the sink blocks waiting for a preroll buffer.
Going straight to NULL addresses this issue, and also helps
making teardown faster when piping sparse streams to a
sync sink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/519>
2020-06-18 15:52:40 +0700 Roman Shpuntov <roman.shpuntov@gmail.com>
* gst/gstsystemclock.c:
systemclock: Fix clock time conversion on Windows/xbox
The returned ratio can be bigger than GST_SECOND, in which case we would
forever return 0 for the system clock time. Even in other cases if it's
close to GST_SECOND it would result in accuracy loss.
Instead of doing the division by GST_CLOCK_TIME_NONE during
initialization once, do it every time the clock time is requested.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/575
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/635>
2020-03-09 21:31:48 +0200 Sebastian Dröge <sebastian@centricular.com>
* plugins/elements/gstidentity.c:
identity: Use g_cond_signal() instead of g_cond_broadcast()
There can only be a single waiter: on the streaming thread.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/397>
2020-03-09 20:27:58 +0200 Sebastian Dröge <sebastian@centricular.com>
* plugins/elements/gstidentity.c:
identity: Unblock condition variable on FLUSH_START
... and immediately return FLUSHING from the streaming thread instead of
waiting potentially forever.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/516
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/397>
2020-07-08 05:15:28 +0900 Seungha Yang <seungha@centricular.com>
* libs/gst/check/gstcheck.h:
check: Use g_thread_yield instead of g_usleep(1)
Since the commit
https://gitlab.gnome.org/GNOME/glib/-/commit/01c02ac08b682de622930b1278c9c14d0ffe6c49,
g_usleep(1) will be translated to Sleep(1) on Windows which means
sleep in 1 millisecond. But GLib provides g_thread_yield() API
which is exactly what we required here for thread context switching.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/644>
2020-09-16 02:16:52 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* gst/gstmeta.c:
gstmeta: intern registered impl string
Subsequent lookups in the hashtable are probably better done
on memory we're confident is allocated to us :)
It was easy to trigger invalid reads by calling gst_meta_register
with dynamically allocated memory, freeing that memory, then
calling gst_meta_get_info()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/647>
2020-08-04 11:13:51 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* libs/gst/base/gstaggregator.c:
aggregator: fix iteration direction in skip_buffers
Subclasses use the pad segment to determine whether a buffer
should be skipped, we thus don't want to check if a buffer
needs to be skipped before processing the segment it's part
of.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/646>
2020-07-14 12:15:34 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst/gstbuffer.c:
buffer: improve seqnum fallback warning message
Print target CPU we're building for.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/645>
2020-07-14 12:11:57 +0100 Tim-Philipp Müller <tim@centricular.com>
* gst/gstbuffer.c:
buffer: fix meta sequence number fallback on rpi
The global seqnum variable wasn't actually increased in
the fallback code path, leading to all buffers getting
a seqnum of 0. Which also made the unit test fail.
This affects platforms/toolchains that don't have
64-bit atomic ops such as when compiling for armv7 rpi.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/645>
2018-05-02 13:05:21 +0200 Christoph Reiter <reiter.christoph@gmail.com>
* gst/gstelementfactory.c:
gstelementfactory: Fix missing features in case a feature moves to another filename
In case a plugin filename was renamed with the plugin being in the registry cache
the features were not loaded after the rename:
1) Cache of old/gone filename was loaded, features added
2) New filename was loaded, features where not added because
they were already found in the registry.
3) In the end stale cache entries for files which are no longer there
are removed, including the wanted features.
4) The cache gets updated without the features.
Fix this by also checking at (2) that the found feature is from the loaded plugin
and not from some stale cache entry.
This affected directsoundsink where libgstdirectsoundsink.dll was renamed
to libgstdirectsound.dll, losing the directsoundsink element in the process.
Fixes #290
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/643>
2020-07-02 11:21:27 +0300 Sebastian Dröge <sebastian@centricular.com>
* gst/gstelement.c:
element: When removing a ghost pad also unset its target
Otherwise the proxy pad of the ghost pad still stays linked to some
element inside the bin, which is not allowed anymore according to the
topology.
In 2.0 this should be fixed more generically from inside GstGhostPad but
currently there is no way to get notified that the ghost pad is
unparented.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/642>
2020-06-12 15:07:42 +0200 Edward Hervey <edward@centricular.com>
* gst/gstelement.c:
* gst/gsttask.c:
gst: Delay creation of threadpools
Since glib 2.64, gthreadpool will start waiting on a GCond immediately upon
creation. This can cause issues if we fork *before* actually using the
threadpool since we will then be signalling that GCond ... from another process
and that will never work.
Instead, delay creationg of thread pools until the very first time we need
them. This introduces a minor (un-noticeable) delay when needing a new thread
but fixes the issues for all users of GSTreamer that will call gst_init, then
fork and actually start pipelines.
See https://gitlab.gnome.org/GNOME/glib/-/issues/2131 for more context.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/634>
2020-06-04 17:50:01 +0200 Camilo Celis Guzman <camilo@pexip.com>
* plugins/elements/gstqueue.c:
queue: protect against lost wakeups for iterm_del condition
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/633>
2020-06-23 05:18:11 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* gst/gstregistrychunks.c:
registry: Print the pointer when printing features
This is what we do everywhere else too, useful for debugging.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/636>
2020-06-23 03:43:53 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* gst/gstregistry.c:
registry: Use a toolchain-specific registry file on Windows
If we load a plugin registry for MinGW plugins when running with MSVC,
we will have to write out the whole cache again, and vice-versa. Just
use separate cache files so that the cache is actually useful.
Closes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/427
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/636>
2020-06-24 22:51:48 +0900 Seungha Yang <seungha@centricular.com>
* tools/gst-inspect.c:
gst-inspect: Use gst_info_strdup_vprintf to print string
g_vprintf() will write a string binary to stdout directly using fwrite().
So, depending on character in the string, fwrite to stdout can
print broken one but printf family might not cause the issue.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/637>
2020-06-04 11:21:45 +0200 Edward Hervey <edward@centricular.com>
* plugins/elements/gstqueue2.c:
queue2: Avoid races when posting buffering messages
When posting a buffering message succesfully:
* Remember the *actual* percentage value that was posted
* Make sure we only reset the percent_changed variable if the value we just
posted is indeed different from the current value
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/632>
2020-05-20 17:32:48 +0200 Mathieu Duponchelle <mathieu@centricular.com>
* plugins/elements/gstqueue2.c:
* tests/check/elements/queue2.c:
queue2: don't post unnecessary buffering message, refine locking
This is a follow up to review comments in !297
+ The posting of the buffering message in READY_TO_PAUSED isn't
needed, removing it made the test fail, but the correct fix
was simply to link elements together
+ Move code to relock the queue and set last_posted_buffering_percent
and percent_changed inside the buffering_post_lock in create_write().
This makes locking consistent with post_buffering()
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/297>
2019-10-04 16:57:29 +0200 Carlos Rafael Giani <crg7475@mailbox.org>
* plugins/elements/gstqueue2.c:
* tests/check/elements/queue2.c:
queue2: Fix missing/dropped buffering messages at startup
This fixes a bug that occurs when an attempt is made to post a buffering
message before the queue2 was assigned a bus. One common situation where
this happens is when the use-buffering property is set to TRUE before the
queue2 was added to a bin.
If the result of gst_element_post_message() is not checked, and the
aforementioned situation occurs, then last_posted_buffering_percent and
percent_changed will still be updated, as if posting the message succeeded.
Later attempts to post again will not do anything because the code then
assumes that a message with the same percentage was previously posted
successfully and posting again is redundant.
Updating these variables only if posting succeed and explicitely
posting a buffering message in the READY->PAUSED state change ensure that
a buffering message is posted as early as possible.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/297>
2020-02-15 22:20:18 +0530 dhilshad <mohddhilshadm@gmail.com>
* plugins/elements/gstsparsefile.c:
sparsefile: fix possible crash when seeking
In gst_sparse_file_clear function we were closing a file and
reopening it using closed file descriptor.
Fix: Removed closing and reopening of file.
Fixes #512
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/372>
2020-04-12 20:33:43 -0400 Thibault Saunier <tsaunier@igalia.com>
* gst/gstvalue.c:
* tests/check/gst/gstvalue.c:
value: Fix segfault comparing empty GValueArrays
Adding a test
2020-04-01 02:36:40 +1100 Jan Schmidt <jan@centricular.com>
* libs/gst/base/gstbaseparse.c:
* tests/check/libs/baseparse.c:
baseparse: Fix upstream read caching
When running in pull mode (for e.g. mp3 reading),
baseparse currently reads 64KB from upstream, then mp3parse
consumes typically around 417/418 bytes of it. Then
on the next loop, it will read a full fresh 64KB again,
which is a big waste.
Fix the read loop to use the available cache buffer first
before going for more data, until the cache drops to < 1KB.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/518
2020-04-01 02:46:52 +1100 Jan Schmidt <jan@centricular.com>
* libs/gst/base/gstbaseparse.c:
baseparse: Fix typo
2020-03-22 09:47:35 +0100 Ondřej Hruška <ondra@ondrovo.com>
* gst/gstdatetime.c:
* tests/check/gst/gstdatetime.c:
gstdatetime: Add missing NULL check to gst_date_time_new_local_time
Also add a unit test for this.
Fixes #524
2020-03-03 15:36:26 +0100 Miguel Paris <mparisdiaz@gmail.com>
* gst/gstbufferlist.c:
* tests/check/gst/gstbufferlist.c:
bufferlist: foreach: always remove as parent if buffer is changed
In case the buffer is not writable, the parent (the BufferList) is not
removed before calling func. So if it is changed, the parent (the BufferList)
of the previous buffer should be removed after calling func.
2020-03-13 12:14:08 +0100 Stéphane Cerveau <scerveau@collabora.com>
* plugins/elements/gstidentity.c:
identity: Fix a minor leak using meta_str
2020-03-11 22:39:35 +1100 Matthew Waters <matthew@centricular.com>
* libs/gst/base/gstbasetransform.c:
basetransform: allow not passthrough if generate_output is implemented
This allows an element to not require implementing transform or
transform_ip.
2020-03-03 18:49:36 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tools/gst-launch.c:
gst-launch: Follow up to missing s/g_print/gst_print/g
Required to avoid broken log string on Windows but missed
in the commit of 493a3261a9757b5ade7aec289eb07221966f9eed
2020-02-26 22:29:43 +0900 Seungha Yang <seungha.yang@navercorp.com>
* tools/gst-inspect.c:
gst-inspect: Add define guard for g_log_writer_supports_color()
g_log_writer_supports_color() was introduced since GLib 2.50.0
which is slightly higher version than our minimum required GLib version.
2019-12-19 11:28:13 +0100 Matus Gajdos <matuszpd@gmail.com>
* libs/gst/base/gstbaseparse.c:
baseparse: fix memory leak
A buffer to be skipped wasn't unref'd in gst_base_parse_chain().
Fixes #406
2020-02-10 16:35:06 -0600 Zebediah Figura <z.figura12@gmail.com>
* libs/gst/base/gstbaseparse.c:
baseparse: Set the private duration before posting a duration-changed message
Otherwise an application cannot rely on a subsequent call to e.g. gst_pad_query_duration() succeeding.
2020-02-12 12:32:05 +0200 Sebastian Dröge <sebastian@centricular.com>
* gst/gstbus.c:
bus: Make setting/replacing/clearing the sync handler thread-safe
Previously we would use the object lock only for storing the sync
handler and its user_data in a local variable, then unlock it and only
then call the sync handler. Between unlocking and calling the sync
handler it might be unset and the user_data be freed, causing it to be
called with a freed pointer.
To prevent this add a refcounting wrapper struct around the sync
handler, hold the object lock while retrieving it and increasing the
reference count and only actually free it once the reference count
reaches zero.
As a side-effect we can now also allow to actually replace the sync
handler. Previously it was only allowed to clear it after initially
setting it according to the docs, but the code still allowed to clear it
and then set a different one.
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/506
2019-04-30 17:24:50 -0400 Thibault Saunier <tsaunier@igalia.com>
* gst/gstdevicemonitor.c:
device-monitor: list hidden providers before listing devices
The way it was implemented could make the list updated after the
list of device was filled with supposdely hidden devices
2020-01-09 20:07:06 +0100 Jan Alexander Steffens (heftig) <jsteffens@make.tv>
* gst/gstbin.c:
bin: Fix deep-element-removed log message
child and bin were switched.
https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/354
2019-12-05 09:47:38 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* gst/gstelementfactory.c:
Revert "element: Enforce that elements created by gst_element_factory_create/make() are floating"
See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/333
The reference we receive when calling g_object_new should be
floating, but we can't force it at our level.
This reverts commit ce43de86902c4e9c8ed4e9682602664cb9bce2ee.
2019-12-05 09:47:30 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* gst/gstdevice.c:
Revert "device: Enforce that elements created by gst_device_create_element() are floating"
See https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/333
The reference we receive when calling g_object_new should be
floating, but we can't force it at our level.
This reverts commit cc6342d853f4252c5d5cf09fff9d3379ad467fbc.
=== release 1.16.2 ===
2019-12-03 10:57:30 +0000 Tim-Philipp Müller <tim@centricular.com>

416
NEWS
View file

@ -1,18 +1,17 @@
GSTREAMER 1.16 RELEASE NOTES
GStreamer 1.16 Release Notes
GStreamer 1.16.0 was originally released on 19 April 2019.
The latest bug-fix release in the 1.16 series is 1.16.2 and was released
on 3 December 2019.
The latest bug-fix release in the 1.16 series is 1.16.3 and was released
on 21 October 2020.
1.16.3 will likely be the last release in the 1.16 release series which
has now been superseded by the 1.18 release series.
See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
version of this document.
_Last updated: Tuesday 03 December 2019, 08:00 UTC (log)_
Last updated: Tuesday 20 October 2020, 00:30 UTC (log)
Introduction
@ -23,7 +22,6 @@ framework!
As always, this release is again packed with many new features, bug
fixes and other improvements.
Highlights
- GStreamer WebRTC stack gained support for data channels for
@ -78,7 +76,6 @@ Highlights
- Many performance improvements
Major new features and changes
Noteworthy new API
@ -519,7 +516,6 @@ The following plugins have been removed from gst-plugins-bad:
these in our cerbero-built Windows packages, so its unlikely that
theyll be missed.
Miscellaneous API additions
- GstBitwriter: new generic bit writer API to complement the existing
@ -611,7 +607,6 @@ Miscellaneous API additions
for the Rate-Control and Frames RTSP headers was added to the RTSP
library.
Miscellaneous performance and memory optimisations
As always there have been many performance and memory usage improvements
@ -649,7 +644,6 @@ GstPlayer
- API was added to fine-tune the synchronisation offset between
subtitles and video
Miscellaneous changes
- As a result of moving to newer FFmpeg APIs, encoder and decoder
@ -689,22 +683,22 @@ OpenGL integration
performance optimization to not require performing multiple
expensive glGet*() function calls per frame. This affects any
application or plugin use of the following functions and objects:
- glcolorconvert library object (not the element)
- glviewconvert library object (not the element)
- gst_gl_framebuffer_draw_to_texture()
- custom GstGLWindow implementations
Tracing framework and debugging improvements
- There is now a GDB PRETTY PRINTER FOR VARIOUS GSTREAMER TYPES: For
- There is now a gdb pretty printer for various GStreamer types: For
GstObject pointers the type and name is added, e.g.
0x5555557e4110 [GstDecodeBin|decodebin0]. For GstMiniObject pointers
the object type is added, e.g. 0x7fffe001fc50 [GstBuffer]. For
GstClockTime and GstClockTimeDiff the time is also printed in human
readable form, e.g. 150116219955 [+0:02:30.116219955].
- GDB EXTENSION WITH TWO CUSTOM GDB COMMANDS gst-dot AND gst-print:
- gdb extension with two custom gdb commands gst-dot and gst-print:
- gst-dot creates dot files that a very close to what
GST_DEBUG_BIN_TO_DOT_FILE() produces, but object properties and
@ -721,7 +715,6 @@ Tracing framework and debugging improvements
objects. Such object pointer values will never be deserialised
however.
Tools
- gst-inspect-1.0 has coloured output now and will automatically use a
@ -731,7 +724,6 @@ Tools
them by setting the GST_INSPECT_NO_COLORS=1 environment variable or
passing the --no-color command line option.
GStreamer RTSP server
- Improved backlog handling when using TCP interleaved for data
@ -752,7 +744,6 @@ GStreamer RTSP server
- rtsp-auth: Add support for parsing .htdigest files
GStreamer VAAPI
- Support Waylands display for context sharing, so the application
@ -785,7 +776,6 @@ GStreamer VAAPI
- More specification adherence in H264 and H265 encoders.
GStreamer OMX
- Add support of NV16 format to video encoders input.
@ -803,12 +793,12 @@ GStreamer OMX
inform OMX about it rather than doing a full format reset.
- Various Zynq UltraScale+ specific improvements:
- Video encoders are now able to import dmabuf from upstream.
- Support for HEVC range extension profiles and more AVC profiles.
- We can now request video encoders to generate an IDR using the
force key unit event.
GStreamer Editing Services and NLE
- Added a gesdemux element, it is an auto pluggable element that
@ -857,10 +847,9 @@ GStreamer Editing Services and NLE
- Deprecate ges_timeline_load_from_uri as loading the timeline should
be done through a project now
- MANY leaks have been plugged and the unit testsuite is now “leak
- Many leaks have been plugged and the unit testsuite is now “leak
free”
GStreamer validate
- Added an action type to verify the checksum of the sink last-sample
@ -917,7 +906,6 @@ GStreamer validate
- Add a way to output html log files
GStreamer Python Bindings
- add binding for gst_pad_set_caps()
@ -927,12 +915,10 @@ GStreamer Python Bindings
- new audiotestsrc, audioplot, and mixer plugin examples, and a
dynamic pipeline example
GStreamer C# Bindings
- bindings for the GstWebRTC library
GStreamer Rust Bindings
The GStreamer Rust bindings are now officially part of the GStreamer
@ -948,7 +934,7 @@ generally taken by Rust projects, e.g.:
1) 0.12.X will be completely API compatible with all other 0.12.Y
versions.
2) 0.12.X+1 will contain bugfixes and compatible new feature additions.
3) 0.13.0 will _not_ be backwards compatible with 0.12.X but projects
3) 0.13.0 will not be backwards compatible with 0.12.X but projects
will be able to stay at 0.12.X without any problems as long as they
dont need newer features.
@ -980,16 +966,23 @@ Fixed
Added
- Bindings for GStreamer Editing Services
- Bindings for GStreamer Check testing library
- Bindings for the encoding profile API (encodebin)
- VideoFrame, VideoInfo, AudioInfo, StructureRef implements Send and
Sync now
- VideoFrame has a function to get the raw FFI pointer
- From impls from the Error/Success enums to the combined enums like
FlowReturn
- Bin-to-dot file functions were added to the Bin trait
- gst_base::Adapter implements SendUnique now
- More complete bindings for the gst_video::VideoOverlay interface,
especially
gst_video::is_video_overlay_prepare_window_handle_message()
@ -1015,9 +1008,12 @@ Added
Take a look at the gst-plugins-rs crate for various examples.
- Bindings for CapsFeatures and Meta
- Bindings for
ParentBufferMeta,VideoMetaandVideoOverlayCompositionMeta`
- Bindings for VideoOverlayComposition and VideoOverlayRectangle
- Bindings for VideoTimeCode
- UniqueFlowCombiner and UniqueAdapter wrappers that make use of the
@ -1025,28 +1021,34 @@ Added
way, and as a side-effect implement Sync and Send now
- More complete bindings for Allocation Query
- pbutils functions for codec descriptions
- TagList::iter() for iterating over all tags while getting a single
value per tag. The old ::iter_tag_list() function was renamed to
::iter_generic() and still provides access to each value for a tag
- Bus::iter() and Bus::iter_timed() iterators around the corresponding
::pop\*() functions
- serde serialization of Value can also handle Buffer now
- Extensive comments to all examples with explanations
- Transmuxing example showing how to use typefind, multiqueue and
dynamic pads
- basic-tutorial-12 was ported and added
Changed
- Rust 1.31 is the minimum supported Rust version now
- Update to latest gir code generator and glib bindings
- Functions returning e.g. gst::FlowReturn or other “combined” enums
were changed to return split enums like
Result<gst::FlowSuccess, gst::FlowError> to allow usage of the
Result<gst::FlowSuccess, gst::FlowError> to allow usage of the
standard Rust error handling.
- MiniObject subclasses are now newtype wrappers around the underlying
@ -1062,7 +1064,6 @@ Changed
- Various clippy warnings
GStreamer Rust Plugins
Like the GStreamer Rust bindings, the Rust plugins are now officially
@ -1114,20 +1115,23 @@ Changes in git master for 0.4
- togglerecord: Switch to parking_lot crate for mutexes/condition
variables for lower overhead
- Merge threadshare plugin here
- New closedcaption plugin with mccparse and mccenc elements
- New identity element for the tutorials plugin
- Register plugins statically in tests instead of relying on the
plugin loader to find the shared library in a specific place
- Update to the latest API changes in the GLib and GStreamer bindings
- Update to the latest versions of all crates
- Update to the latest versions of all crates
Build and Dependencies
- The MESON BUILD SYSTEM BUILD IS NOW FEATURE-COMPLETE (*) and it is
- The Meson build system build is now feature-complete (*) and it is
now the recommended build system on all platforms and also used by
Cerbero to build GStreamer on all platforms. The Autotools build is
scheduled to be removed in the next cycle. Developers who currently
@ -1153,7 +1157,7 @@ Build and Dependencies
that it is no longer possible to build this module against an older
system-provided FFmpeg 3.x version. Use the internal FFmpeg 4.x copy
instead if you build using autotools, or use gst-libav 1.14.x
instead which targets the FFmpeg 3.x API and _should_ work fine in
instead which targets the FFmpeg 3.x API and should work fine in
combination with a newer GStreamer. Its difficult for us to support
both old and new FFmpeg APIs at the same time, apologies for any
inconvenience caused.
@ -1236,7 +1240,6 @@ Cerbero has seen a number of improvements:
- A new -t / --timestamp command line switch makes commands print
timestamps
Platform-specific changes and improvements
Android
@ -1297,7 +1300,6 @@ Windows
- dshowsrc now implements the GstDeviceMonitor interface
Contributors
Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț,
@ -1349,7 +1351,6 @@ Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali,
… and many others who have contributed bug reports, translations, sent
suggestions or helped testing.
Stable 1.16 branch
After the 1.16.0 release there will be several 1.16.x bug-fix releases
@ -1367,8 +1368,8 @@ the git 1.16 branch, which is a stable branch.
The first 1.16 bug-fix release (1.16.1) was released on 23 September
2019.
This release only contains bugfixes and it _should_ be safe to update
from 1.16.0.
This release only contains bugfixes and it should be safe to update from
1.16.0.
Highlighted bugfixes in 1.16.1
@ -1704,15 +1705,14 @@ List of merge requests and issues fixed in 1.16.1
The second 1.16 bug-fix release (1.16.2) was released on 03 December
2019.
This release only contains bugfixes and it _should_ be safe to update
from 1.16.1.
This release only contains bugfixes and it should be safe to update from
1.16.1.
Highlighted bugfixes in 1.16.2
- Interlaced video scaling fixes
- CineForm video support in AVI
- audioresample: avoid glitches due to rounding errors after changing
rate
- audiorate: avoid glitches due to rounding errors after changing rate
- Command line tool output printing improvements on Windows
- various performance improvements, memory leak fixes and security
fixes
@ -1875,6 +1875,319 @@ List of merge requests and issues fixed in 1.16.2
- List of Merge Requests applied in 1.16
- List of Issues fixed in 1.16.2
1.16.3
The third (and likely last) 1.16 bug-fix release (1.16.3) was released
on 20 October 2020.
This release only contains bugfixes and it should be safe to update from
1.16.2.
Highlighted bugfixes in 1.16.3
- important security fixes
- bug fixes, memory leak fixes and various stability and reliability
improvements
gstreamer
- delay creation of threadpools
- bin: Fix deep-element-removed log message
- buffer: fix meta sequence number fallback on rpi
- bufferlist: foreach: always remove as parent if buffer is changed
- bus: Make setting/replacing/clearing the sync handler thread-safe
- elementfactory: Fix missing features in case a feature moves to
another filename
- element: When removing a ghost pad also unset its target
- meta: intern registered impl string
- registry: Use a toolchain-specific registry file on Windows
- systemclock: Invalid internal time calculation causes non-increasing
clock time on Windows
- value: dont write to const char *
- value: Fix segfault comparing empty GValueArrays
- Revert floating enforcing
- aggregator: fix iteration direction in skip_buffers
- sparsefile: fix possible crash when seeking
- baseparse: cache fix
- baseparse: fix memory leak when subclass skips whole input buffer
- baseparse: Set the private duration before posting a
duration-changed message
- basetransform: allow not passthrough if generate_output is
implemented
- identity: Fix a minor leak using meta_str
- queue: protect against lost wakeups for iterm_del condition
- queue2: Avoid races when posting buffering messages
- queue2: Fix missing/dropped buffering messages at startup
- identity: Unblock condition variable on FLUSH_START
- check: Use g_thread_yield() instead of g_usleep(1)
- tests: use cpu_family for arch checks
- gst-launch: Follow up to missing s/g_print/gst_print/g
- gst-inspect: Add define guard for g_log_writer_supports_color()
- gst-launch: go back down to GST_STATE_NULL in one step.
- device-monitor: list hidden providers before listing devices
gst-plugins-base
- audioaggregator: Check all downstream allowed caps structures if
they support the upstream rate
- audioaggregator: Fix negotiation with downstream if there is no peer
yet
- audioencoder: fix segment event leak
- discoverer: Fix caps handling in pad-added signal handler
- discoverer: Start discovering next URI from right thread
- fft: Update our kiss fft version, fixes thread-safety and
concurrency issues and misc other things
- gl: numerous memory fixes (use-after-free, leaks, missing NULL-ify)
- gl/display/egl: ensure debug category is initialized
- gstglwindow_x11: fix resize
- pbutils: Add latest H.264 level values
- rtpbuffer: fix header extension length validation
- video: Fix NV12_64Z32 number of component
- video-format: RGB16/15 are not 16 bit per component but only 5.333
and 5
- video: fix top/bottom field flags
- videodecoder: dont copy interlace-mode from reference state
- appsrc/appsink: Make setting/replacing callbacks thread-safe
- compositor: Fix checkerboard filling for BGRx/RGBx and
UYVY/YUY2/YVYU
- decodebin3: only force streams-selected seqnum after a
select-streams
- glupload: Fix fallback from direct dmabuf to dmabuf upload method
- glvideomixer: perform _get_highest_precision() on the GL thread
- libvisual: use gst_element_class_set_metadata() when passing dynamic
strings
- oggstream: Workaround for broken PAR in VP8 BOS
- subparse: accept WebVTT timestamps without an hour component
- playbin: Handle error message with redirection indication
- textrender: Fix AYUV output.
- typefind: Consider MPEG-PS PSM to be a PES type
- uridecodebin3: default to non-0 buffer-size and buffer-duration,
otherwise it could potentially cause big memory allocations over
time
- videoaggregator: Dont configure NULL chroma-site/colorimetry
- videorate/videoscale/audioresample: Ensure that the caps returned
from…
- build: Replace bashisms in configure for Wayland and GLES3
gst-plugins-good
- deinterlace: on-the-fly renegotiation
- flacenc: Pass audio info from set_format() to query_total_samples()
explicitly
- flacparse: fix broken reordering of flac metadata
- jack: Use jack_free(3) to release ports
- jpegdec: check buffer size before dereferencing
- pulse: fix discovery of newly added devices
- qtdemux fuzzing fixes
- qtdemux: Add mp3 fourcc that VLC seems to produce now
- qtdemux: Specify REDIRECT information in error message
- rtpbin: fix shutdown crash in rtpbin
- rtpsession: rename RTCP thread
- rtpvp8pay, rtpvp9pay: fix caps leak in set_caps()
- rtpjpegdepay: outputs framed jpeg
- rtpjitterbuffer: Properly free internal packets queue in finalize()
- rtspsrc: Dont return TRUE for unhandled query
- rtspsrc: Avoid stack overflow recursing waiting for response
- rtspsrc: Use the correct type for storing the max-rtcp-rtp-time-diff
property
- rtspsrc: Error out when failling to receive message response
- rtspsrc: Fix for segmentation fault when handling set/get_parameter
requests
- speex: Fix crash on Windows caused by cross-CRT issue
- speexdec: Crash when stopping the pipeline
- splitmuxsrc: Properly stop the loop if no part reader is present
- use gst_element_class_set_metadata when passing dynamic strings
- v4l2videodec: Increase internal bitstream pool size
- v4l2: fix crash when handling unsupported video format
- videocrop: allow properties to be animated by GstController
- videomixer: Dont leak peer caps
- vp8enc/vp8enc: set 1 for the default value of
VP8E_SET_STATIC_THRESHOLD
- wavenc: Fix writing of the channel mask with >2 channels
gst-plugins-bad
- amcvideodec: fix sync meta copying not taking a reference
- audiobuffersplit: Perform discont tracking on running time
- audiobuffersplit: Specify in the template caps that only interleaved
audio is supported
- audiobuffersplit: Unset DISCONT flag if not discontinuous
- autoconvert: Fix lock-less exchange or free condition
- autoconvert: fix compiler warnings with g_atomic on recent GLib
versions
- avfvideosrc: element requests camera permissions even with
capture-screen property is true
- codecparsers: h264parser: guard against ref_pic_markings overflow
- dtlsconnection: Avoid segmentation fault when no srtp capabilities
are negotiated
- dtls/connection: fix EOF handling with openssl 1.1.1e
- fdkaacdec: add support for mpegversion=2
- hls: Check nettle version to ensure AES128 support
- ipcpipeline: Rework compiler checks
- interlace: Increment phase_index before checking if were at the end
of the phase
- lv2: Make it build with -fno-common
- h264parser: Do not allocate too large size of memory for registered
user data SEI
- ladspa: fix unbounded integer properties
- modplug: avoid division by zero
- msdkdec: Fix GstMsdkContext leak
- msdkenc: fix leaks on windows
- musepackdec: Dont fail all queries if no sample rate is known yet
- openslessink: Allow openslessink to handle 48kHz streams.
- opencv: allow compilation against 4.2.x
- proxysink: event_function needs to handle the event when it is
disconnecetd from proxysrc
- vulkan: Drop use of VK_RESULT_BEGIN_RANGE
- wasapi: added missing lock release in case of error in
gst_wasapi_xxx_reset
- wasapi: Fix possible deadlock while downwards state change
- waylandsink: Clear window when pipeline is stopped
- webrtc: Support non-trickle ICE candidates in the SDP
- webrtc: Unmap all non-binary buffers received via the datachannel
- meson: build with neon 0.31
gst-plugins-ugly
- x264enc: corrected em_data value in CEA-708 CC SEI message
gst-libav
- avaudenc/avvidenc: Reopen encoding session if its required
- avauddec/audenc/videnc: Dont return GST_FLOW_EOS when draining
- avauddec/avviddec: Avoid dropping non-OK flow return
- avviddec: Limit default number of decoder threads
- avauddec: fix buffer leak when send packet failed
- Ensure drain even if codec has not delay capabilities
gst-rtsp-server
- rtsp-stream: explicitly set caps on udpsrc elements
- rtsp-stream: use mcast_udpsink[0] last-sample if available for
rtpinfo
- rtspclientsink: Set async-handling=false for the internal bins
- rtsp-auth: Fix NULL pointer dereference when handling an invalid
basic Authorization header
- rtsp-latency-bin: replace G_TYPE_INSTANCE_GET_PRIVATE as its been
deprecated
- rtsp-auth: fix default token leak
gstreamer-vaapi
- display: drm: use g_strcmp0 to be null safe
- vaapipluginutil: Use GST_VAAPI_DISPLAY_TYPE_DRM for Mesa3D GBM
- vaapivideobufferpool: force video meta if sizes are different
- Fix negotiate lock
- decoder: h265: parser state after update dependent slice
- h265enc: Set VA_PICTURE_HEVC_INVALID flag for invalid picture
- vaapivideobufferpool: Log messages in proper category.
- vaapih264enc: fix log message
- display: fix a resource leak in X11 pixmap format.
- decoder: h264, h265: fix g_return_val_if_fail() missuse
- utils: guard the VAEntrypointFEI symbol
- h265dec: remove limitation of get iq matrix
- videopool: fix undocumented behavior and counting
- Remove last negotiated video info if caps are the same
- encoder: increase bitrate prop max value
- misc backports into 1.16
gstreamer-sharp
- Bind gst_buffer_new_wrapped() manually
- Declare GstVideoOverlayComposition/Rectangle as opaque type and
subclasses of Gst.MiniObject
- Fix gst_promise_new_with_change_func
gst-python
- Add exampleTransform.py from the master branch, modified to work on
1.16
- Fix build with Python 3.8 by also checking for python-3.X-embed.pc
gst-editing-services
- ges-launch fixes: enhance error message when no clip duration is
set, avoid setting invalid clip duration
gst-integration-testsuites
- Yesterday.flac.media_info: Update for changed flacparse behavior
- flow-expectations: Rename colon to short dash
gst-build
- subprojects: ffmpeg: bump to 4.1.5
- git-update: Use force when checking out manifest
- gst-env: Use meson-uninstalled pkgconfig files if available
- Fixate wrap versions in 1.16
- Update android cross file
- Use gstreamer mirror as primary source for win-nasm and
win-flex-bison
- fetch wrap patches from github
- env: preprend gst-build/prefix/etc/xdg to XDG_CONFIG_DIRS
- Backport various gst uninstalled bug fixes into 1.16
- gst-env: Automatically set the prompt for zsh too
- gst-env: Dont put helper binaries in PATH
- fish: ignore SIGINT and set prompt correctly
Cerbero build tool and packaging changes in 1.16.3
- meson: Ensure large file support for MinGW build
- ci: Temporarily change remote and branch for ci template
- cerbero: Run download tool outside of the build env
- cache: Re-implememt cache on top of our external storage
- cerbero: Ship plugin .pc files for all modules
- cerbero: Define a custom user agent while downloading
- Fix for fetching tags using git
- Fix gettext download error and improve download failure exception
usability
- cerbero: Disable debian packaging for now
- Fix misc windows bugs, and explicitly enable GL sub-options
- Prepend $CERBERO_PREFIX/lib path in LD_LIBRARY_PATH
- meson.recipe: Ignore programs in the WindowsApps directory
- meson.recipe: Write out DLL/EXE checksums with MSVC
- gst-plugins-bad: We can build ipcpipeline on Windows
- Fix Python 3.8 compat on Windows
- Fix malformed gendef output on x86
- utils: fix python 3.8 compatibility on linux
- Use the new artifact server for 1.16 too
- GnuTLS: patch to handle certificate chain expiration
- fontconfig: Fix EXC_BAD_ACCESS crash on iOS ARM64
- glib: fix G_GNUC_INTERNAL on macOS/iOS
- gnutls: Update to 3.5.19
- nettle: add -std=c99 to CFLAGS
- openh264: fix recipe for text relocation issues on Android >= 5.0
x86 builds
- openssl: Dont build/package for native linux
- x264: Use relative paths in pkgconfig file
- Backport various commits into 1.16 for the 1.16.3 release
Contributors to 1.16.3
Alexander Lapajne, Alicia Boya García, Andrew Wesie, Camilo Celis
Guzman, Carlos Rafael Giani, Chris Lord, Chris Mayo, Christoph Reiter,
Daniel Molkentin, David Bender, Debarshi Ray, dhilshad, Dimitrios
Katsaros, Dmitry Shusharin, Edward Hervey, François Laignel, Guillaume
Desmottes, Guillermo Rodríguez, Haihao Xiang, Havard Graff, He Junyan,
Jan Alexander Steffens (heftig), Jan Schmidt, Jennifer Berringer, Jérôme
Laheurte, Jonas Holmberg, Jonathan Matthew, Jordan Petridis, Jose
Quaresma, Julien Isorce, Justin Chadwell, Levente Révész, Matej Knopp,
Mathieu Duponchelle, Matthew Read, Matthew Waters, Matus Gajdos, Michael
Olbrich, Miguel Paris, Nicola Murino, Nicolas Dufresne, Nicolas Pernas
Maradei, Nirbheek Chauhan, okuoku, Olivier Crête, Ondřej Hruška,
Philippe Normand, Roman Shpuntov, Sebastian Dröge, Seungha Yang, Silvio
Lazzeretti, Stéphane Cerveau, Stian Selnes, Thibault Saunier,
Tim-Philipp Müller, U. Artie Eoff, Víctor Manuel Jáquez Leal, Wangfei,
Wang Zhanjun, Will Miller, worldofpeace, Xu Guangxin, Yeongjin Jeong,
Zebediah Figura,
… and many others who have contributed bug reports, translations, sent
suggestions or helped testing. Thank you all!
List of merge requests and issues fixed in 1.16.3
- List of Merge Requests applied in 1.16.3
- List of Issues fixed in 1.16.3
Known Issues
@ -1890,24 +2203,15 @@ Known Issues
g_io_gnutls_load(gpointer data). See Android/iOS sections above for
further details.
Schedule for 1.18
Our next major feature release will be 1.18, and 1.17 will be the
unstable development version leading up to the stable 1.18 release. The
development of 1.17/1.18 will happen in the git master branch.
The plan for the 1.18 development cycle is yet to be confirmed, but it
is now expected that feature freeze will take place in December 2019,
with the first 1.18 stable release ready in late January or February.
1.18 will be backwards-compatible to the stable 1.16, 1.14, 1.12, 1.10,
1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.18.0 was released on 8 September 2020: GStreamer 1.18
release notes
------------------------------------------------------------------------
_These release notes have been prepared by Tim-Philipp Müller with_
_contributions from Sebastian Dröge, Guillaume Desmottes, Matthew
Waters, _ _Thibault Saunier, and Víctor Manuel Jáquez Leal._
These release notes have been prepared by Tim-Philipp Müller with
contributions from Sebastian Dröge, Guillaume Desmottes, Matthew Waters,
Thibault Saunier, and Víctor Manuel Jáquez Leal.
_License: CC BY-SA 4.0_
License: CC BY-SA 4.0

View file

@ -1,4 +1,4 @@
This is GStreamer core 1.16.2.
This is GStreamer core 1.16.3.
The GStreamer team is pleased to announce another bug-fix release in the
stable 1.x API series of your favourite cross-platform multimedia framework!
@ -7,7 +7,7 @@ The 1.16 release series adds new features on top of the 1.14 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
Full release notes will one day be found at:
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.16/

View file

@ -4,7 +4,7 @@ dnl initialize autoconf
dnl when going to/from release please set the nano (fourth number) right !
dnl releases only do Wall, git and prerelease does Werror too
dnl
AC_INIT([GStreamer],[1.16.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
AC_INIT([GStreamer],[1.16.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gstreamer])
AG_GST_INIT
dnl initialize automake (we require GNU make)
@ -62,7 +62,7 @@ dnl 1.2.5 => 205
dnl 1.10.9 (who knows) => 1009
dnl
dnl sets GST_LT_LDFLAGS
AS_LIBTOOL(GST, 1602, 0, 1602)
AS_LIBTOOL(GST, 1603, 0, 1603)
dnl *** autotools stuff ****

View file

@ -38,6 +38,16 @@ hierarchy, and a set of media-agnostic core elements.
</GitRepository>
</repository>
<release>
<Version>
<revision>1.16.3</revision>
<branch>1.16</branch>
<name></name>
<created>2020-10-21</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.16.3.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.16.2</revision>

View file

@ -1,5 +1,5 @@
project('gstreamer', 'c',
version : '1.16.2',
version : '1.16.3',
meson_version : '>= 0.47',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])