tee: Check for the removed pad flag also in the slow pushing path
[platform/upstream/gstreamer.git] / NEWS
diff --git a/NEWS b/NEWS
index 1e860c4..c93be83 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -3,19 +3,15 @@
 GSTREAMER 1.16 RELEASE NOTES
 
 
-GStreamer 1.16 has not been released yet. It is scheduled for release in
-January/February 2019.
+GStreamer 1.16.0 was originally released on 19 April 2019.
 
-1.15.x is the unstable development version that is being developed in
-the git master branch and which will eventually result in 1.16.
-
-1.16 will be backwards-compatible to the stable 1.14, 1.12, 1.10, 1.8,
-1.6, 1.4, 1.2 and 1.0 release series.
+The latest bug-fix release in the 1.16 series is 1.16.1 and was released
+on 23 September 2019.
 
 See https://gstreamer.freedesktop.org/releases/1.16/ for the latest
 version of this document.
 
-_Last updated: Monday 14 January 2019, 13:00 UTC (log)_
+_Last updated: Sunday 22 September 2019, 21:00 UTC (log)_
 
 
 Introduction
@@ -24,8 +20,8 @@ The GStreamer team is proud to announce a new major feature release in
 the stable 1.x API series of your favourite cross-platform multimedia
 framework!
 
-As always, this release is again packed with new features, bug fixes and
-other improvements.
+As always, this release is again packed with many new features, bug
+fixes and other improvements.
 
 
 Highlights
@@ -40,7 +36,7 @@ Highlights
 
 -   Support for Closed Captions and other Ancillary Data in video
 
--   Spport for planar (non-interleaved) raw audio
+-   Support for planar (non-interleaved) raw audio
 
 -   GstVideoAggregator, compositor and OpenGL mixer elements are now in
     -base
@@ -76,6 +72,10 @@ Highlights
 -   The GStreamer Rust bindings and Rust plugins module are now
     officially part of upstream GStreamer.
 
+-   The GStreamer Editing Services gained a gesdemux element that allows
+    directly playing back serialized edit list with playbin or
+    (uri)decodebin
+
 -   Many performance improvements
 
 
@@ -98,14 +98,17 @@ Noteworthy new API
     to process the media in a live pipeline before it reaches the sink.
     This is on top of the systemic latency that is normally reported by
     the latency query. This defaults to 20ms and should make pipelines
-    such as “v4lsrc ! xvimagesink” not claim that all frames are late in
-    the QoS events. Ideally, this should replace max_lateness for most
-    applications.
+    such as v4l2src ! xvimagesink not claim that all frames are late in
+    the QoS events. Ideally, this should replace the "max-lateness"
+    property for most applications.
 
 -   RTCP Extended Reports (XR) parsing according to RFC 3611:
     Loss/Duplicate RLE, Packet Receipt Times, Receiver Reference Time,
     Delay since the last Receiver (DLRR), Statistics Summary, and VoIP
-    Metrics reports.
+    Metrics reports. This only provides the ability to parse such
+    packets, generation of XR packets is not supported yet and XR
+    packets are not automatically parsed by rtpbin / rtpsession but must
+    be actively handled by the application.
 
 -   a new mode for interlaced video was added where each buffer carries
     a single field of interlaced video, with buffer flags indicating
@@ -146,9 +149,10 @@ or planar arrangement in memory would look like
 |LEFT|LEFT|LEFT| and |RIGHT|RIGHT|RIGHT| residing in separate memory
 chunks or separated by some padding.
 
-GStreamer has always had signalling for non-interleaved audio, but it
-was never actually properly implemented in any elements. audioconvert
-would advertise support for it, but wasn’t actually able to handle it.
+GStreamer has always had signalling for non-interleaved audio since
+version 1.0, but it was never actually properly implemented in any
+elements. audioconvert would advertise support for it, but wasn’t
+actually able to handle it correctly.
 
 With this release we now have full support for non-interleaved audio as
 well, which means more efficient integration with external APIs that
@@ -177,18 +181,18 @@ The video support library has gained support for detecting and
 extracting Ancillary Data from videos as per the SMPTE S291M
 specification, including:
 
--   a VBI (Video Blanking Interval) parser that can detect and extract
-    Ancillary Data from Vertical Blanking Interval lines of component
-    signals. This is currently supported for videos in v210 and UYVY
-    format.
+-   a VBI (Vertical Blanking Interval) parser that can detect and
+    extract Ancillary Data from Vertical Blanking Interval lines of
+    component signals. This is currently supported for videos in v210
+    and UYVY format.
 
 -   a new GstMeta for closed captions: GstVideoCaptionMeta. This
     supports the two types of closed captions, CEA-608 and CEA-708,
     along with the four different ways they can be transported (other
     systems are a superset of those).
 
--   a VBI (Video Blanking Interval) encoder for writing ancillary data
-    to the Vertical Blanking Interval lines of component signals.
+-   a VBI (Vertical Blanking Interval) encoder for writing ancillary
+    data to the Vertical Blanking Interval lines of component signals.
 
 The new closedcaption plugin in gst-plugins-bad then makes use of all
 this new infrastructure and provides the following elements:
@@ -204,7 +208,8 @@ this new infrastructure and provides the following elements:
 -   ccconverter: a closed caption converter that can convert between
     different formats
 
--   line21decoder: extract line21 closed captions from SD video streams
+-   line21encoder, line21decoder: inject/extract line21 closed captions
+    to/from SD video streams
 
 -   cc708overlay: decodes CEA 608/708 captions and overlays them on
     video
@@ -214,7 +219,11 @@ support:
 
 -   qtdemux and qtmux support CEA 608/708 Closed Caption tracks
 
--   mpegvideoparse extracts Closed Captions from MPEG-2 video streams
+-   mpegvideoparse, h264parse extracts Closed Captions from MPEG-2/H.264
+    video streams
+
+-   avviddec, avvidenc, x264enc got support for extracting/injecting
+    Closed Captions
 
 -   decklinkvideosink can output closed captions and decklinkvideosrc
     can extract closed captions
@@ -222,6 +231,9 @@ support:
 -   playbin and playbin3 learned how to autoplug CEA 608/708 CC overlay
     elements
 
+-   the externally maintained ajavideosrc element for AJA capture cards
+    has support for extracting closed captions
+
 The rsclosedcaption plugin in the Rust plugins collection includes a
 MacCaption (MCC) file parser and encoder.
 
@@ -239,7 +251,7 @@ New Elements
 
 -   gloverlaycompositor: New OpenGL-based compositor element that
     flattens any overlays from GstVideoOverlayCompositionMetas into the
-    video stream.
+    video stream. This element is also always part of glimagesink.
 
 -   glalpha: New element that adds an alpha channel to a video stream.
     The values of the alpha channel can either be set to a constant or
@@ -248,7 +260,7 @@ New Elements
     done in floating point so results may not be identical to the output
     of the existing alpha element.
 
--   rtpfunnel funnels together rtp-streams into a single session. Use
+-   rtpfunnel funnels together RTP streams into a single session. Use
     cases include multiplexing and bundle. webrtcbin uses it to
     implement BUNDLE support.
 
@@ -258,16 +270,18 @@ New Elements
     or uridecodebin3 etc.
 
 -   New closed caption elements: cccombiner, ccextractor, ccconverter,
-    line21decoder and cc708overlay (see above)
+    line21encoder, line21decoder and cc708overlay (see above)
 
 -   wpesrc: new source element acting as a Web Browser based on WebKit
     WPE
 
 -   Two new OpenCV-based elements: cameracalibrate and cameraundistort
-    who can communicate to figure out distortion correction parameters
+    that can communicate to figure out distortion correction parameters
     for a camera and correct for the distortion.
 
--   new sctp plugin based on usrsctp with sctpenc and sctpdec elements
+-   New sctp plugin based on usrsctp with sctpenc and sctpdec elements.
+    These elements are used inside webrtcbin for implementing data
+    channels.
 
 New element features and additions
 
@@ -342,18 +356,18 @@ New element features and additions
 
 -   rtpjitterbuffer has improved end-of-stream handling
 
--   rtpmp4vpay will be prefered over rtpmp4gpay for MPEG-4 video in
+-   rtpmp4vpay will be preferred over rtpmp4gpay for MPEG-4 video in
     autoplugging scenarios now
 
 -   rtspsrc now allows applications to send RTSP SET_PARAMETER and
     GET_PARAMETER requests using action signals.
 
--   rtspsrc also has a small (100ms) configurable teardown delay by
-    default to try and make sure an RTSP TEARDOWN request gets sent out
-    when the source element shuts down. This will block the downward
-    PAUSED to READY state change for a short time, but can be unset
-    where it’s a problem. Some servers only allow a limited number of
-    concurren clients, so if no proper TEARDOWN is sent clients may have
+-   rtspsrc has a small (100ms) configurable teardown delay by default
+    to try and make sure an RTSP TEARDOWN request gets sent out when the
+    source element shuts down. This will block the downward PAUSED to
+    READY state change for a short time, but can be disabled where it’s
+    a problem. Some servers only allow a limited number of concurrent
+    clients, so if no proper TEARDOWN is sent new clients may have
     problems connecting to the server for a while.
 
 -   souphttpsrc behaves better with low bitrate streams now. Before it
@@ -364,6 +378,7 @@ New element features and additions
 
 -   filesink: do internal buffering to avoid performance regression with
     small writes since we bypass libc buffering by using writev()
+    instead of fwrite()
 
 -   identity: add "eos-after" property and fix "error-after" property
     when the element is reused
@@ -392,6 +407,9 @@ New element features and additions
 -   srtpdec, srtpenc: add support for MKIs which allow multiple keys to
     be used with a single SRTP stream
 
+-   srtpdec, srtpenc: add support for AES-GCM and also add support for
+    it in gst-rtsp-server and rtspsrc.
+
 -   The srt Secure Reliable Transport plugin has integrated server and
     client elements srt{client,server}{src,sink} into one (srtsrc and
     srtsink), since SRT connection mode can be changed by uri
@@ -405,9 +423,9 @@ New element features and additions
     relays (TURN servers).
 
 -   The removesilence element has received various new features and
-    properties, such as a
-    "threshold"1 property, detecting silence only after minimum   silence time/buffers, a“silent”property to control bus message   notifications as well as a“squash”`
-    property.
+    properties, such as a "threshold" property, detecting silence only
+    after minimum silence time/buffers, a "silent" property to control
+    bus message notifications as well as a "squash" property.
 
 -   AOMedia AV1 decoder gained support for 10/12bit decoding whilst the
     AV1 encoder supports more image formats and subsamplings now and
@@ -424,21 +442,38 @@ New element features and additions
     "connector-properties" can be used to pass custom properties to the
     DRM.
 
--   waylandsink has a "fullscreen" property now.
+-   waylandsink has a "fullscreen" property now and supports the
+    XDG-Shell protocol.
+
+-   decklinkvideosink, decklinkvideosrc support selecting between
+    half/full duplex
+
+-   The vulkan plugin gained support for macOS and iOS via MoltenVK in
+    addition to the existing support for X11 and Wayland
+
+-   imagefreeze has a new num-buffers property to limit the number of
+    buffers that are produced and to send an EOS event afterwards
+
+-   webrtcbin has a new, introspectable get-transceiver signal in
+    addition to the old get-transceivers signal that couldn’t be used
+    from bindings
+
+-   Support for per-element latency information was added to the latency
+    tracer
 
 Plugin and library moves
 
 -   The stereo element was moved from -bad into the existing audiofx
     plugin in -good. If you get duplicate type registration warnings
-    when upgrading, check that you don’t have a stale gststereo plugin
-    lying about somewhere.
+    when upgrading, check that you don’t have a stale stereoplugin lying
+    about somewhere.
 
 GstVideoAggregator, compositor, and OpenGL mixer elements moved from -bad to -base
 
 GstVideoAggregator is a new base class for raw video mixers and muxers
-and is based on [GstAggregator][aggregator]. It provides defined-latency
-mixing of raw video inputs and ensures that the pipeline won’t stall
-even if one of the input streams stops producing data.
+and is based on GstAggregator. It provides defined-latency mixing of raw
+video inputs and ensures that the pipeline won’t stall even if one of
+the input streams stops producing data.
 
 As part of the move to stabilise the API there were some last-minute API
 changes and clean-ups, but those should mostly affect internal elements.
@@ -456,14 +491,15 @@ would expected in most scenarios.
 The compositor element has gained support for per-pad blending mode
 operators (SOURCE, OVER, ADD) which determines what operator to use for
 blending this pad over the previous ones. This can be used to implement
-crossfading.
+crossfading and the available operators can be extended in the future as
+needed.
 
 A number of OpenGL-based video mixer elements (glvideomixer, glmixerbin,
 glvideomixerelement, glstereomix, glmosaic) which are built on top of
 GstVideoAggregator have also been moved from -bad to -base now. These
 elements have been merged into the existing OpenGL plugin, so if you get
 duplicate type registration warnings when upgrading, check that you
-don’t have a stale gstopenglmixers plugin lying about somewhere.
+don’t have a stale openglmixers plugin lying about somewhere.
 
 Plugin removals
 
@@ -477,11 +513,11 @@ The following plugins have been removed from gst-plugins-bad:
     plugin.
 
 -   The acmmp3dec and acmenc plugins for Windows have been removed. ACM
-    is an ancient legacy API and there was no point in keeping them
-    around for a licensed mp3 decoder now that mp3 patents have expired
-    and we have a decoder in -good. We also didn’t ship these in our
-    cerbero-built Windows packages, so it’s unlikely that they’ll be
-    missed.
+    is an ancient legacy API and there was no point in keeping the
+    plugins around for a licensed MP3 decoder now that the MP3 patents
+    have expired and we have a decoder in -good. We also didn’t ship
+    these in our cerbero-built Windows packages, so it’s unlikely that
+    they’ll be missed.
 
 
 Miscellaneous API additions
@@ -506,7 +542,8 @@ Miscellaneous API additions
     one might need to put such elements into READY state to test if the
     hardware is present in the system for example.
 
--   protection: Add a new definition for unspecified system protection
+-   protection: Add a new definition for unspecified system protection,
+    GST_PROTECTION_UNSPECIFIED_SYSTEM_ID
 
 -   take functions for various mini objects that didn’t have them yet:
     gst_query_take(), gst_message_take(), gst_tag_list_take(),
@@ -522,11 +559,18 @@ Miscellaneous API additions
     gst_clear_mini_object(), gst_clear_object()
 
 -   miniobject: new API gst_mini_object_add_parent() and
-    gst_mini_object_remove_parent()to set parent pointers on mini objects to ensure correct writability: Every container of miniobjects now needs to store itself as parent in the child object, and remove itself again later. A mini object is then only writable if there is at most one parent, that parent is writable itself, and the reference count of the mini object is 1.GstBuffer(for memories),GstBufferList(for buffers),GstSample(for caps, buffer, bufferlist), andGstVideoOverlayComposition`
-    were updated accordingly. Without this it was possible to have
-    e.g. a buffer list with a refcount of 2 used in two places at once
-    that both modify the same buffer with refcount 1 at the same time
-    wrongly thinking it is writable even though it’s really not.
+    gst_mini_object_remove_parent() to set parent pointers on mini
+    objects to ensure correct writability: Every container of
+    miniobjects now needs to store itself as parent in the child object,
+    and remove itself again later. A mini object is then only writable
+    if there is at most one parent, that parent is writable itself, and
+    the reference count of the mini object is 1. GstBuffer (for
+    memories), GstBufferList (for buffers), GstSample (for caps, buffer,
+    bufferlist), and GstVideoOverlayComposition were updated
+    accordingly. Without this it was possible to have e.g. a buffer list
+    with a refcount of 2 used in two places at once that both modify the
+    same buffer with refcount 1 at the same time wrongly thinking it is
+    writable even though it’s really not.
 
 -   poll: add API to watch for POLLPRI and stop treating POLLPRI as a
     read. This is useful to wait for video4linux events which are
@@ -555,6 +599,18 @@ Miscellaneous API additions
 -   gst_audio_buffer_truncate() convenience function to truncate a raw
     audio buffer
 
+-   GstDiscoverer has support for caching the results of discovery in
+    the default cache directory. This can be enabled with the use-cache
+    property and is disabled by default.
+
+-   GstMeta that are attached to GstBuffers are now always stored in the
+    order in which they were added.
+
+-   Additional support for signalling ONVIF specific features were
+    added: the SEEK event can store a trickmode-interval now and support
+    for the Rate-Control and Frames RTSP headers was added to the RTSP
+    library.
+
 
 Miscellaneous performance and memory optimisations
 
@@ -596,7 +652,7 @@ GstPlayer
 
 Miscellaneous changes
 
--   As a result of moving to different FFmpeg APIs, encoder and decoder
+-   As a result of moving to newer FFmpeg APIs, encoder and decoder
     elements exposed by the GStreamer FFmpeg wrapper plugin (gst-libav)
     may have seen possibly incompatible changes to property names and/or
     types, and not all properties exposed might be functional. We are
@@ -629,6 +685,15 @@ OpenGL integration
     import DMABUF FDs and also directly pass the pixel format, relying
     on the GPU to do the conversion.
 
+-   The OpenGL library no longer restores the OpenGL viewport. This is a
+    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
 
@@ -649,49 +714,6 @@ Tracing framework and debugging improvements
         object. This is currently limited to pads for GstElements and
         events for the pads. The output may look like this:
 
-                (gdb) gst-print pad.object.parent
-                GstMatroskaDemux (matroskademux0) {
-                    SinkPad (sink, pull) {
-                    }
-                    SrcPad (video_0, push) {
-                      events:
-                        stream-start:
-                          stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/001:1274058367
-                        caps: video/x-theora
-                          width: 1920
-                          height: 800
-                          pixel-aspect-ratio: 1/1
-                          framerate: 24/1
-                          streamheader: < 0x5555557c7d30 [GstBuffer], 0x5555557c7e40 [GstBuffer], 0x7fffe00141d0 [GstBuffer] >
-                        segment: time
-                          rate: 1
-                        tag: global
-                          container-format: Matroska
-                    }
-                    SrcPad (audio_0, push) {
-                      events:
-                        stream-start:
-                          stream-id: 0463ccb080d00b8689bf569a435c4ff84f9ff753545318ae2328ea0763fd0bec/002:1551204875
-                        caps: audio/mpeg
-                          mpegversion: 4
-                          framed: true
-                          stream-format: raw
-                          codec_data: 0x7fffe0014500 [GstBuffer]
-                          level: 2
-                          base-profile: lc
-                          profile: lc
-                          channels: 2
-                          rate: 44100
-                        segment: time
-                          rate: 1
-                        tag: global
-                          container-format: Matroska
-                        tag: stream
-                          audio-codec: MPEG-4 AAC audio
-                          language-code: en
-                    }
-                }
-
 -   gst_structure_to_string() now serialises the actual value of
     pointers when serialising GstStructures instead of claiming they’re
     NULL. This makes debug logging in various places less confusing,
@@ -704,10 +726,10 @@ Tools
 
 -   gst-inspect-1.0 has coloured output now and will automatically use a
     pager if the output does not fit on a page. This only works in a
-    unix environment and if the output is not piped. If you don’t like
-    the colours you can disable them by setting the
-    GST_INSPECT_NO_COLORS=1 environment variable or passing the
-    --no-colors command line option.
+    UNIX environment and if the output is not piped, and on Windows 10
+    build 16257 or newer. If you don’t like the colours you can disable
+    them by setting the GST_INSPECT_NO_COLORS=1 environment variable or
+    passing the --no-color command line option.
 
 
 GStreamer RTSP server
@@ -733,17 +755,167 @@ GStreamer RTSP server
 
 GStreamer VAAPI
 
--   this section will be filled in in due course
+-   Support Wayland’s display for context sharing, so the application
+    can pass its own wl_display in order to be used for the VAAPI
+    display creation.
+
+-   A lot of work to support new Intel hardware using media-driver as VA
+    backend.
+
+-   For non-x86 devices, VAAPI display can instantiate, through DRM,
+    with no PCI bus. This enables the usage of libva-v4l2-request
+    driver.
+
+-   Added support for XDG-shell protocol as wl_shell replacement which
+    is currently deprecated. This change add as dependency
+    wayland-protocol.
+
+-   GstVaapiFilter, GstVaapiWindow, and GstVaapiDecoder classes now
+    inherit from GstObject, gaining all the GStreamer’s instrumentation
+    support.
+
+-   The metadata now specifies the plugin as Hardware class.
+
+-   H264 decoder is more stable with problematic streams.
+
+-   In H265 decoder added support for profiles main-422-10 (P010_10LE),
+    main-444 (AYUV) and main-444-10 (Y410)
+
+-   JPEG decoder handles dynamic resolution changes.
+
+-   More specification adherence in H264 and H265 encoders.
+
+
+GStreamer OMX
+
+-   Add support of NV16 format to video encoders input.
+
+-   Video decoders now handle the ALLOCATION query to tell upstream
+    about the number of buffers they require. Video encoders will also
+    use this query to adjust their number of allocated buffers
+    preventing starvation when using dynamic buffer mode.
+
+-   The OMX_PERFORMANCE debug category has been renamed to OMX_API_TRACE
+    and can now be used to track a widder variety of interactions
+    between OMX and GStreamer.
+
+-   Video encoders will now detect frame rate only changes and will
+    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
 
--   this section will be filled in in due course
+-   Added a gesdemux element, it is an auto pluggable element that
+    allows decoding edit list like files supported by GES
+
+-   Added gessrc which wraps a GESTimeline as a standard source element
+    (implementing the ges protocol handler)
+
+-   Added basic support for videorate::rate property potentially
+    allowing changing playback speed
+
+-   Layer priority is now fully automatic and they should be moved with
+    the new ges_timeline_move_layer method, ges_layer_set_priority is
+    now deprecated.
+
+-   Added a ges_timeline_element_get_layer_priority so we can simply get
+    all information about GESTimelineElement position in the timeline
+
+-   GESVideoSource now auto orientates the images if it is defined in a
+    meta (overridable).
+
+-   Added some PyGObject overrides to make the API more pythonic
+
+-   The threading model has been made more explicit with safe guard to
+    make sure not thread safe APIs are not used from the wrong threads.
+    It is also now possible to properly handle in what thread the API
+    should be used.
+
+-   Optimized GESClip and GESTrackElement creation
+
+-   Added a way to compile out the old, unused and deprecated
+    GESPitiviFormatter
+
+-   Re implemented the timeline editing API making it faster and making
+    the code much more maintainable
+
+-   Simplified usage of nlecomposition outside GES by removing quirks in
+    it API usage and removing the need to treat it specially from an
+    application perspective.
+
+-   ges-launch-1.0:
+
+    -   Added support to add titles to the timeline
+    -   Enhance the help auto generating it from the code
+
+-   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
+    free”
 
 
 GStreamer validate
 
--   this section will be filled in in due course
+-   Added an action type to verify the checksum of the sink last-sample
+
+-   Added an include keyword to validate scenarios
+
+-   Added the notion of variable in scenarios, with the set-vars keyword
+
+-   Started adding support for “performance” like tests by allowing to
+    define the number of dropped buffers or the minimum buffer frequency
+    on a specific pad
+
+-   Added a validateflow plugin which allows defining the data flow to
+    be seen on a particular pad and verifying that following runs match
+    the expectations
+
+-   Added support for appsrc based test definition so we can instrument
+    the data pushed into the pipeline from scenarios
+
+-   Added a mockdecryptor allowing adding tests with on encrypted files,
+    the element will potentially be instrumented with a validate
+    scenario
+
+-   gst-validate-launcher:
+
+    -   Cleaned up output
+
+    -   Changed the default for “muting” tests as user doesn’t expect
+        hundreds of windows to show up when running the testsuite
+
+    -   Fixed the outputted xunit files to be compatible with GitLab
+
+    -   Added support to run tests on media files in push mode (using
+        pushfile://)
+
+    -   Added support for running inside gst-build
+
+    -   Added support for running ssim tests on rendered files
+
+    -   Added a way to simply define tests on pipelines through a simple
+        .json file
+
+    -   Added a python app to easily run python testsuite reusing all
+        the launcher features
+
+    -   Added flatpak knowledge so we can print backtrace even when
+        running from within flatpak
+
+    -   Added a way to automatically generated “known issues”
+        suppressions lines
+
+    -   Added a way to rerun tests to check if they are flaky and added
+        a way to tolerate tests known to be flaky
+
+    -   Add a way to output html log files
 
 
 GStreamer Python Bindings
@@ -858,7 +1030,7 @@ Added
     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
+    ::pop\*() functions
 
 -   serde serialization of Value can also handle Buffer now
 
@@ -995,11 +1167,84 @@ Build and Dependencies
 
 -   New sctp plugin based on usrsctp (for WebRTC data channels)
 
+Cerbero
+
+Cerbero is a meta build system used to build GStreamer plus dependencies
+on platforms where dependencies are not readily available, such as
+Windows, Android, iOS and macOS.
+
+Cerbero has seen a number of improvements:
+
+-   Cerbero has been ported to Python 3 and requires Python 3.5 or newer
+    now
+
+-   Source tarballs are now protected by checksums in the recipes to
+    guard against download errors and malicious takeover of projects or
+    websites. In addition, downloads are only allowed via secure
+    transports now and plain HTTP, FTP and git:// transports are not
+    allowed anymore.
+
+-   There is now a new fetch-bootstrap command which downloads sources
+    required for bootstrapping, with an optional --build-tools-only
+    argument to match the bootstrap --build-tools-only command.
+
+-   The bootstrap, build, package and bundle-source commands gained a
+    new --offline switch that ensures that only sources from the cache
+    are used and never downloaded via the network. This is useful in
+    combination with the fetch and fetch-bootstrap commands that acquire
+    sources ahead of time before any build steps are executed. This
+    allows more control over the sources used and when sources are
+    updated, and is particularly useful for build environments that
+    don’t have network access.
+
+-   bootstrap --assume-yes will automatically say ‘yes’ to any
+    interactive prompts during the bootstrap stage, such as those from
+    apt-get or yum.
+
+-   bootstrap --system-only will only bootstrap the system without build
+    tools.
+
+-   Manifest support: The build manifest can be used in continuous
+    integration (CI) systems to fixate the Git revision of certain
+    projects so that all builds of a pipeline are on the same reference.
+    This is used in GStreamer’s gitlab CI for example. It can also be
+    used in order to re-produce a specific build. To set a manifest, you
+    can set manifest = 'my_manifest.xml' in your configuration file, or
+    use the --manifest command line option. The command line option will
+    take precedence over anything specific in the configuration file.
+
+-   The new build-deps command can be used to build only the
+    dependencies of a recipe, without the recipe itself.
+
+-   new --list-variants command to list available variants
+
+-   variants can now be set on the command line via the -v option as a
+    comma-separated list. This overrides any variants set in any
+    configuration files.
+
+-   new qt5, intelmsdk and nvidia variants for enabling Qt5 and hardware
+    codec support. See the Enabling Optional Features with Variants
+    section in the Cerbero documentation for more details how to enable
+    and use these variants.
+
+-   When building on Windows, Cerbero can now build GStreamer recipes
+    and core dependencies such as glib with Visual Studio. This is
+    controlled by the visualstudio variant. Visual Studio 2015, 2017,
+    and 2019 are supported. Currently, only 64-bit x86 is supported due
+    to a known bug which will be fixed for the next release.
+
+-   A new -t / --timestamp command line switch makes commands print
+    timestamps
+
 
 Platform-specific changes and improvements
 
 Android
 
+-   toolchain: update compiler to clang and NDKr18. NDK r18 removed the
+    armv5 target and only has Android platforms that target at least
+    armv7 so the armv5 target is not useful anymore.
+
 -   The way that GIO modules are named has changed due to upstream GLib
     natively adding support for loading static GIO modules. This means
     that any GStreamer application using gnutls for SSL/TLS on the
@@ -1010,9 +1255,15 @@ Android
     library. Look at this commit for the necessary change in the
     examples.
 
+-   various build issues on Android have been fixed.
+
 macOS and iOS
 
--   macOS binaries should be fully relocatable now
+-   various build issues on iOS have been fixed.
+
+-   the minimum required iOS version is now 9.0. The difference in
+    adoption between 8.0 and 9.0 is 0.1% and the bump to 9.0 fixes some
+    build issues.
 
 -   The way that GIO modules are named has changed due to upstream GLib
     natively adding support for loading static GIO modules. This means
@@ -1049,66 +1300,56 @@ Windows
 
 Contributors
 
-Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț, Alex Ashley,
-Alexey Chernov, Alicia Boya García, Amit Pandya, Andoni Morales
-Alastruey, Andreas Frisch, Andre McCurdy, Andy Green, Anthony Violo,
-Antoine Jacoutot, Antonio Ospite, Arun Raghavan, Aurelien Jarno,
+Aaron Boxer, Aleix Conchillo Flaqué, Alessandro Decina, Alexandru Băluț,
+Alex Ashley, Alexey Chernov, Alicia Boya García, Amit Pandya, Andoni
+Morales Alastruey, Andreas Frisch, Andre McCurdy, Andy Green, Anthony
+Violo, Antoine Jacoutot, Antonio Ospite, Arun Raghavan, Aurelien Jarno,
 Aurélien Zanelli, ayaka, Bananahemic, Bastian Köcher, Branko Subasic,
-Brendan Shanks, Carlos Rafael Giani, Christoph Reiter, Corentin Noël,
-Daeseok Youn, Daniel Drake, Daniel Klamt, Dardo D Kleiner, David Ing,
-David Svensson Fors, Devarsh Thakkar, Dimitrios Katsaros, Edward Hervey,
-Emilio Pozuelo Monfort, Enrique Ocaña González, Ezequiel Garcia, Fabien
-Dessenne, Fabrizio Gennari, Florent Thiéry, Francisco Velazquez,
-Freyr666, Garima Gaur, Gary Bisson, George Kiagiadakis, Georg Lippitsch,
-Georg Ottinger, Geunsik Lim, Göran Jönsson, Guillaume Desmottes, H1Gdev,
-Haihao Xiang, Haihua Hu, Harshad Khedkar, Havard Graff, He Junyan,
-Hoonhee Lee, Hosang Lee, Hyunjun Ko, Ingo Randolf, Iñigo Huguet, James
-Stevenson, Jan Alexander Steffens, Jan Schmidt, Jerome Laheurte, Jimmy
-Ohn, Joakim Johansson, Jochen Henneberg, Johan Bjäreholt, John-Mark
-Bell, John Nikolaides, Jonathan Karlsson, Jonny Lamb, Jordan Petridis,
-Josep Torra, Joshua M. Doe, Jos van Egmond, Juan Navarro, Jun Xie,
+Brendan Shanks, Carlos Rafael Giani, Charlie Turner, Christoph Reiter,
+Corentin Noël, Daeseok Youn, Damian Vicino, Dan Kegel, Daniel Drake,
+Daniel Klamt, Danilo Spinella, Dardo D Kleiner, David Ing, David
+Svensson Fors, Devarsh Thakkar, Dimitrios Katsaros, Edward Hervey,
+Emilio Pozuelo Monfort, Enrique Ocaña González, Erlend Eriksen, Ezequiel
+Garcia, Fabien Dessenne, Fabrizio Gennari, Florent Thiéry, Francisco
+Velazquez, Freyr666, Garima Gaur, Gary Bisson, George Kiagiadakis, Georg
+Lippitsch, Georg Ottinger, Geunsik Lim, Göran Jönsson, Guillaume
+Desmottes, H1Gdev, Haihao Xiang, Haihua Hu, Harshad Khedkar, Havard
+Graff, He Junyan, Hoonhee Lee, Hosang Lee, Hyunjun Ko, Ilya Smelykh,
+Ingo Randolf, Iñigo Huguet, Jakub Adam, James Stevenson, Jan Alexander
+Steffens, Jan Schmidt, Jerome Laheurte, Jimmy Ohn, Joakim Johansson,
+Jochen Henneberg, Johan Bjäreholt, John-Mark Bell, John Bassett, John
+Nikolaides, Jonathan Karlsson, Jonny Lamb, Jordan Petridis, Josep Torra,
+Joshua M. Doe, Jos van Egmond, Juan Navarro, Julian Bouzas, Jun Xie,
 Junyan He, Justin Kim, Kai Kang, Kim Tae Soo, Kirill Marinushkin, Kyrylo
 Polezhaiev, Lars Petter Endresen, Linus Svensson, Louis-Francis
-Ratté-Boulianne, Luis de Bethencourt, Luz Paz, Lyon Wang, Maciej Wolny,
-Marc-André Lureau, Marc Leeman, Marcos Kintschner, Marian Mihailescu,
-Marinus Schraal, Mark Nauwelaerts, Marouen Ghodhbane, Martin Kelly,
-Matej Knopp, Mathieu Duponchelle, Matteo Valdina, Matthew Waters,
-Matthias Fend, memeka, Michael Drake, Michael Gruner, Michael Olbrich,
-Michael Tretter, Miguel Paris, Mike Wey, Mikhail Fludkov, Naveen
-Cherukuri, Nicola Murino, Nicolas Dufresne, Niels De Graef, Nirbheek
-Chauhan, Norbert Wesp, Ognyan Tonchev, Olivier Crête, Omar Akkila,
-Patricia Muscalu, Patrick Radizi, Patrik Nilsson, Paul Kocialkowski, Per
-Forlin, Peter Körner, Peter Seiderer, Petr Kulhavy, Philippe Normand,
-Philippe Renon, Philipp Zabel, Pierre Labastie, Roland Jon, Roman
-Sivriver, Rosen Penev, Russel Winder, Sam Gigliotti, Sean-Der, Sebastian
-Dröge, Seungha Yang, Sjoerd Simons, Snir Sheriber, Song Bing, Soon,
-Thean Siew, Sreerenj Balachandran, Stefan Ringel, Stephane Cerveau,
-Stian Selnes, Suhas Nayak, Takeshi Sato, Thiago Santos, Thibault
-Saunier, Thomas Bluemel, Tianhao Liu, Tim-Philipp Müller, Tomasz
-Andrzejak, Tomislav Tustonić, U. Artie Eoff, Ulf Olsson, Varunkumar
-Allagadapa, Víctor Guzmán, Víctor Manuel Jáquez Leal, Vincenzo Bono,
-Vineeth T M, Vivia Nikolaidou, Wang Fei, wangzq, Whoopie, Wim Taymans,
-Wind Yuan, Wonchul Lee, Xabier Rodriguez Calvar, Xavier Claessens,
-Haihao Xiang, Yacine Bandou, Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali,
+Ratté-Boulianne, Lucas Stach, Luis de Bethencourt, Luz Paz, Lyon Wang,
+Maciej Wolny, Marc-André Lureau, Marc Leeman, Marco Trevisan (Treviño),
+Marcos Kintschner, Marian Mihailescu, Marinus Schraal, Mark Nauwelaerts,
+Marouen Ghodhbane, Martin Kelly, Matej Knopp, Mathieu Duponchelle,
+Matteo Valdina, Matthew Waters, Matthias Fend, memeka, Michael Drake,
+Michael Gruner, Michael Olbrich, Michael Tretter, Miguel Paris, Mike
+Wey, Mikhail Fludkov, Naveen Cherukuri, Nicola Murino, Nicolas Dufresne,
+Niels De Graef, Nirbheek Chauhan, Norbert Wesp, Ognyan Tonchev, Olivier
+Crête, Omar Akkila, Pat DeSantis, Patricia Muscalu, Patrick Radizi,
+Patrik Nilsson, Paul Kocialkowski, Per Forlin, Peter Körner, Peter
+Seiderer, Petr Kulhavy, Philippe Normand, Philippe Renon, Philipp Zabel,
+Pierre Labastie, Piotr Drąg, Roland Jon, Roman Sivriver, Roman Shpuntov,
+Rosen Penev, Russel Winder, Sam Gigliotti, Santiago Carot-Nemesio,
+Sean-Der, Sebastian Dröge, Seungha Yang, Shi Yan, Sjoerd Simons, Snir
+Sheriber, Song Bing, Soon, Thean Siew, Sreerenj Balachandran, Stefan
+Ringel, Stephane Cerveau, Stian Selnes, Suhas Nayak, Takeshi Sato,
+Thiago Santos, Thibault Saunier, Thomas Bluemel, Tianhao Liu,
+Tim-Philipp Müller, Tobias Ronge, Tomasz Andrzejak, Tomislav Tustonić,
+U. Artie Eoff, Ulf Olsson, Varunkumar Allagadapa, Víctor Guzmán, Víctor
+Manuel Jáquez Leal, Vincenzo Bono, Vineeth T M, Vivia Nikolaidou, Wang
+Fei, wangzq, Whoopie, Wim Taymans, Wind Yuan, Wonchul Lee, Xabier
+Rodriguez Calvar, Xavier Claessens, Haihao Xiang, Yacine Bandou,
+Yeongjin Jeong, Yuji Kuwabara, Zeeshan Ali,
 
 … and many others who have contributed bug reports, translations, sent
 suggestions or helped testing.
 
 
-Bugs fixed in 1.16
-
--   this section will be filled in in due course
-
-More than XXX bugs have been fixed during the development of 1.16.
-
-This list does not include issues that have been cherry-picked into the
-stable 1.16 branch and fixed there as well, all fixes that ended up in
-the 1.16 branch are also included in 1.16.
-
-This list also does not include issues that have been fixed without a
-bug report in bugzilla, so the actual number of fixes is much higher.
-
-
 Stable 1.16 branch
 
 After the 1.16.0 release there will be several 1.16.x bug-fix releases
@@ -1119,7 +1360,343 @@ the git 1.16 branch, which is a stable branch.
 
 1.16.0
 
-1.16.0 is scheduled to be released around January/February 2019.
+1.16.0 was released on 19 April 2019.
+
+1.16.1
+
+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.
+
+Highlighted bugfixes in 1.16.1
+
+-   GStreamer-vaapi: fix green frames and decoding artefacts in some
+    cases
+-   OpenGL: fix wayland event source burning CPU in certain
+    circumstances
+-   Memory leak fixes and memory footprint improvements
+-   Performance improvements
+-   Stability and security fixes
+-   Fix enum for GST_MESSAGE_DEVICE_CHANGED which is technically an API
+    break, but this is only used internally in GStreamer and duplicated
+    another message enum
+-   hls: Make crypto dependency optional when hls-crypto is auto
+-   player: fix switching back and forth between forward and reverse
+    playback
+-   decklinkaudiosink: Drop late buffers
+-   openh264enc: Fix compilation with openh264 v2.0
+-   wasapisrc: fix segtotal value being always 2
+-   Fix issues on Android Q
+
+gstreamer core
+
+-   device: gst_device_create_element() is transfer floating, not
+    transfer full
+-   filesink, fdsink: respect IOV_MAX for the writev iovec array
+    (Solaris)
+-   miniobject: free qdata array when the last qdata is removed (reduces
+    memory footprint)
+-   bin: Fix minor race when adding to a bin
+-   aggregator: Actually handle NEED_DATA return from update_src_caps()
+-   aggregator: Ensure that the source pad is created as a
+    GstAggregatorPad if no type is given in the pad template
+-   latency: fix custom event leaks
+-   registry: Use plugin directory from the build system for
+    relocateable Windows builds
+-   message: fix up enum value for GST_MESSAGE_DEVICE_CHANGED
+-   info: Fix deadlock in gst_ring_buffer_logger_log()
+-   downloadbuffer: Check for flush after seek
+-   identity: Non-live upstream have no max latency
+-   identity: Fix the ts-offset property getter
+-   aggregator: Make parsing of explicit sink pad names more robust
+-   bufferpool: Fix the buffer size reset code
+-   fakesink, fakesrc, identity: sync gst_buffer_get_flags_string() with
+    new flags
+-   multiqueue: never unref queries we do not own
+-   concat: Reset last_stop on FLUSH_STOP too
+-   aggregator: fix flow-return boolean return type mismatch
+-   gstpad: Handle probes that reset the data field
+-   gst: Add support for g_autoptr(GstPromise)
+-   gst-inspect: fix unused-const-variable error in windows
+-   base: Include gstbitwriter.h in the single-include header
+-   Add various Since: 1.16 markers
+-   GST_MESSAGE_DEVICE_CHANGED duplicates GST_MESSAGE_REDIRECT
+-   Targetting wrong meson version
+-   meson: Make get_flex_version.py script executable
+-   meson: Link to objects instead of static helper library
+-   meson: set correct install path for gdb helper
+-   meson: fix warning about configure_file() install kwarg
+
+gst-plugins-base
+
+-   video-info: parse field-order for all interleaved formats
+-   tests: fix up valgrind suppressions for glibc getaddrinfo leaks
+-   meson: Reenable NEON support (in audio resampler)
+-   audio-resampler: Update NEON to handle remainders not multiples of 4
+-   eglimage: Fix memory leak
+-   audiodecoder: Set output caps with negotiated caps to avoid critical
+    info printed
+-   video-frame: Take TFF flag from the video info if it was set in
+    there
+-   glcolorconvert: Fix external-oes shader
+-   video-anc: Fix ADF detection when trying to extract data from vanc
+-   gl/wayland: fix wayland event source burning CPU
+-   configure: add used attribute in order to make NEON detection
+    working with -flto.
+-   audioaggregator: Return a valid rate range from caps query if
+    downstream supports a whole range
+-   rtspconnection: data-offset increase not set
+-   rtpsconnection: Fix number of n_vectors
+-   video-color: Add compile-time assert for ColorimetryInfo enum
+-   audiodecoder: Fix leak on failed audio gaps
+-   glupload: Keep track of cached EGLImage texture format
+-   playsink: Set ts-offset to text sink.
+-   meson.build: use join_paths() on prefix
+-   compositor: copy frames as-is when possible
+-   compositor: Skip background when a pad obscures it completely
+-   rtspconnection: Start CSeq at 1 (some servers don’t cope well with
+    seqnum 0)
+-   viv-fb: fix build break for GST_GL_API
+-   gl/tests: fix shader creation tests part 2
+-   gl/tests: fix shader creation tests
+-   wayland: set the event queue also for the xdg_wm_base object
+-   video: Added GI annotation for gstvideoaffinetransformationmeta
+    apply_matrix
+-   compositor: Remove unneeded left shift for ARGB/AYUV SOURCE operator
+-   Colorimetry fixes
+-   alsasrc: Don’t use driver timestamp if it’s zero
+-   gloverlaycompositor: fix crash if buffer doesn’t have video meta
+-   meson: Don’t try to find gio-unix on Windows
+-   glshader: fix default external-oes shaders
+-   subparse: fix pushing WebVTT cue with no newline at the end
+-   meson: Missing “android” choice in gl_winsys
+-   video test: Keep BE test inline with LE test
+-   id3tag: Correctly validate the year from v1 tags before passing to
+    GstDateTime
+-   gl/wayland: Don’t prefix wl_shell struct field
+-   eglimage: Add compatibility define for DRM_FORMAT_NV24
+-   Add various Since: 1.16 markers
+-   video-anc: Handle SD formats correctly
+-   Docs: add GL_CFLAGS to GTK_DOC_CFLAGS
+-   GL: using vaapi and showing on glimagesink on wayland loads one core
+    for 100% on 1.16
+-   GL: external-oes shader places precision qualifier before #extension
+    (was: androidmedia amcviddec fail after 1.15.90 1.16.0 update)
+
+gst-plugins-good
+
+-   alpha: Fix one_over_kc calculation on arm/aarch64
+-   souphttpsrc: Fix incompatible type build warning
+-   rtpjitterbuffer: limit max-dropout-time to maxint32
+-   rtpjitterbuffer: Clear clock master before unreffing
+-   qtdemux: Use empty-array safe way to cleanup GPtrArray
+-   v4l2: Fix type compatibility issue with glibc 2.30
+-   valgrind: suppress Cond error coming from gnutls and Ignore leaks
+    caused by shout/sethostent
+-   rtpfunnel: forward correct segment when switching pad
+-   gtkglsink: fix crash when widget is resized after element
+    destruction
+-   jpegdec: Don’t dereference NULL input state if we have no caps in
+    TIME segments
+-   rtp: opuspay: fix memory leak in gst_rtp_opus_pay_setcaps
+-   v4l2videodec: return right type for drain.
+-   rtpssrcdemux: Avoid taking streamlock out-of-band
+-   Support v4l2src buffer orphaning
+-   splitmuxsink: Only set running time on finalizing sink element when
+    in async-finalize mode
+-   rtpsession: Always keep at least one NACK on early RTCP
+-   rtspsrc: do not try to send EOS with invalid seqnum
+-   rtpsession: Call on-new-ssrc earlier
+-   rtprawdepay: Don’t get rid of the buffer pool on FLUSH_STOP
+-   rtpbin: Free storage when freeing session
+-   scaletempo: Advertise interleaved layout in caps templates
+-   Support v4l2src buffer orphaning
+
+gst-plugins-bad
+
+-   hls: Make crypto dependency optional when hls-crypto is auto
+-   player: fix switching back and forth between forward and reverse
+    playback
+-   decklinkaudiosink: Drop late buffers
+-   srt: Add stats property, include sender-side statistics and fix a
+    crash
+-   dshowsrcwrapper: fix regression on device selection
+-   tsdemux: Limit the maximum PES payload size
+-   wayland: Define libdrm_dep in meson.build to fix meson configure
+    error when kms is disabled
+-   sctp: Fix crash on free() when using the MSVC binaries
+-   webrtc: Fix signals documentation
+-   h264parse: don’t critical on VUI parameters > 2^31
+-   rtmp: Fix crash inside free() with MSVC on Windows
+-   iqa: fix leak of map_meta.data
+-   d3dvideosink: Fix crash on WinProc handler
+-   amc: Fix crash when a sync_meta survives its sink
+-   pitch: Fix race between putSamples() and setting soundtouch
+    parameters
+-   webrtc: fix type of max-retransmits, make it work
+-   mxfdemux: Also allow picture essence element type 0x05 for VC-3
+-   wasapi: fix symbol redefinition build error
+-   decklinkvideosrc: Retrieve mode of the ancillary data from the frame
+-   decklinkaudiosrc/decklinkvideosrc: Do nothing in
+    BaseSrc::negotiate() and…
+-   adaptivedemux: do not retry downloads during shutdown.
+-   webrtcbin: fix GInetAddress leak
+-   dtls: fix dtls connection object leak
+-   siren: fix a global buffer overflow spotted by asan
+-   kmssink: Fix implicit declaration build error
+-   Fix -Werror=return-type error in configure.
+-   aiff: Fix infinite loop in header parsing.
+-   nvdec: Fix possible frame drop on EOS
+-   srtserversrc: yields malformed rtp payloads
+-   srtsink: Fix crash in case no URI
+-   dtlsagent: Fix leaked dtlscertificate
+-   meson: bluez: Early terminate configure on Windows
+-   decklink: Correctly ensure >=16 byte alignment for the buffers we
+    allocate
+-   webrtcbin: fix DTLS when receivebin is set to DROP
+-   zbar: Include running-time, stream-time and duration in the messages
+-   uvch264src: Make sure we set our segment
+-   avwait: Allow start and end timecode to be set back to NULL
+-   avwait: Don’t print warnings for every buffer passed
+-   hls/meson: fix dependency logic
+-   Waylandsink gnome shell workaround
+-   avwait: Allow setting start timecode after end timecode; protect
+    propeties with mutex
+-   wayland/wlbuffer: just return if used_by_compositor is true when
+    attach
+-   proxy: Set SOURCE flag on the source and SINK flag on the sink
+-   ivfparse: Check the data size against IVF_FRAME_HEADER_SIZE
+-   webrtc: Add various Since markers to new types after 1.14.0
+-   msdk: fix the typo in debug category
+-   dtlsagent: Do not overwrite openssl locking callbacks
+-   meson: Fix typo in gsm header file name
+-   srt: handle races in state change
+-   webrtc: Add g_autoptr() support for public types
+-   openh264enc: Fix compilation with openh264 v2.0
+-   meson: Allow CUDA_PATH fallback on linux
+-   meson: fix build with opencv=enabled and opencv4. Fixes #964
+-   meson: Add support for the colormanagement plugin
+-   autotools: gstsctp: set LDFLAGS
+-   nvenc/nvdec: Add NVIDIA SDK headers to noinst_HEADERS
+-   h264parse: Fix typo when setting multiview mode and flags
+-   Add various Since: 1.16 markers
+-   opencv: allow compilation against 4.1.x
+-   Backport of some minor srt commits without MR into 1.16
+-   meson: fix build with opencv=enabled and opencv4
+-   wasapisrc: fix segtotal value being always 2 due to an unused
+    variable
+-   meson: colormanagement missing
+-   androidmedia amcviddec fail after 1.15.90 1.16.0 update
+
+gst-plugins-ugly
+
+-   meson: Always require the gmodule dependency
+
+gst-libav
+
+-   docs: don’t include the type hierarchy, fixing build with gtk-doc
+    1.30
+-   avvidenc: Correctly signal interlaced input to ffmpeg when the input
+    caps are interlaced
+-   autotools: add bcrypt to win32 libs
+-   gstav: Use libavcodec util function for version check
+-   API documentation fails to build with gtk-doc 1.30
+
+gst-rtsp-server
+
+-   rtsp-client: RTP Info must exist in PLAY response
+-   onvif-media: fix “void function returning a value” compiler warning
+-   Add various Since: 1.16 markers
+
+gstreamer-vaapi
+
+-   fix egl context leak and display creation race
+-   pluginutil: Remove Mesa from drivers white list
+-   Classify vaapidecodebin as a hardware decoder
+-   Fix two leak
+-   vaapivideomemory: demote error message to info
+-   encoder: vp8,vp9: reset frame_counter when input frame’s format
+    changes
+-   encoder: mpeg2: No packed header for SPS and PPS
+-   decoder: vp9: clear parser pointer after release
+-   encoder: Fixes deadlock in change state function
+-   encoder: h265: reset num_ref_idx_l1_active_minus1 when low delay B.
+-   encoder: not call ensure_num_slices inside g_assert()
+-   encoder: continue if roi meta is NULL
+-   decoder: vp9: Set chroma_ ype by VP9 bit_depth
+-   vaapipostproc: don’t do any color conversion when GL_TEXTURE_UPLOAD
+-   libs: surface: fix double free when dmabuf export fails
+-   h264 colors and artifacts upon upgrade to GStreamer Core Library
+    version 1.15.90
+
+gst-editing-services
+
+-   element: Properly handle the fact that pasting can return NULL
+-   Add various missing Since markers
+-   launch: Fix caps restriction short names
+-   python: Avoid warning about using deprecated methods
+-   video-transition: When using non crossfade effect use ‘over’
+    operations
+-   meson: Generate a pkgconfig file for the GES plugin
+
+gst-devtools
+
+-   launcher: testsuites: skip systemclock stress tests
+-   validate: fix build on macOS
+
+gst-build
+
+-   Update win flex bison binaries
+-   Update the flexmeson windows binary version
+-   Don’t allow people to run meson inside the uninstalled env
+
+Cerbero build tool and packaging changes in 1.16.1
+
+-   cerbero: Add enums for Fedora 30, Fedora 31 and Debian bullseye
+-   gnutls.recipe: Fix crash when running on Android Q
+-   recipes: Upgrade openssl to 1.1.1c
+-   Fix some typos
+-   add support for vs build tools 2019, fixes #183
+-   android: Adjust gstreamer-1.0.mk for NDK r20
+-   Fix license enums
+-   bootstrap: Fix dnf usage on CentOS
+-   Make _add_system_libs reentrant
+-   meson.recipe: Fix setting of bitcode compiler options
+-   cerbero: support Ubuntu disco dingo
+-   cerbero: Set utf-8 to execution character set also on MSVC
+-   git: simplify the reset of the source branch.
+-   FORTIFY: %n not allowed on Android Q
+-   Fails to build if there’s no license file for the given license
+    (GPL/LGPL without Plus, Proprietary, …)
+
+Contributors to 1.16.1
+
+Aaron Boxer, Adam Duskett, Alicia Boya García, Andoni Morales Alastruey,
+Antonio Ospite, Arun Raghavan, Askar Safin, A. Wilcox, Charlie Turner,
+Christoph Reiter, Damian Hobson-Garcia, Daniel Klamt, Danny Smith, David
+Gunzinger, David Ing, David Svensson Fors, Doug Nazar, Edward Hervey,
+Eike Hein, Fabrice Bellet, Fernando Herrrera, Georg Lippitsch, Göran
+Jönsson, Guillaume Desmottes, Haihao Xiang, Haihua Hu, Håvard Graff, Hou
+Qi, Ignacio Casal Quinteiro, Ilya Smelykh, Jan Schmidt, Javier Celaya,
+Jim Mason, Jonas Larsson, Jordan Petridis, Jose Antonio Santos Cadenas,
+Juan Navarro, Knut Andre Tidemann, Kristofer Björkström, Lucas Stach,
+Marco Felsch, Marcos Kintschner, Mark Nauwelaerts, Martin Liska, Martin
+Theriault, Mathieu Duponchelle, Matthew Waters, Michael Olbrich, Mike
+Gorse, Nicola Murino, Nicolas Dufresne, Niels De Graef, Niklas
+Hambüchen, Nirbheek Chauhan, Olivier Crête, Philippe Normand, Ross
+Burton, Sebastian Dröge, Seungha Yang, Song Bing, Thiago Santos,
+Thibault Saunier, Thomas Coldrick, Tim-Philipp Müller, Víctor Manuel
+Jáquez Leal, Vivia Nikolaidou, Xavier Claessens, Yeongjin Jeong,
+
+… 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.1
+
+-   List of Merge Requests applied in 1.16
+-   List of Issues fixed in 1.16.1
 
 
 Known Issues
@@ -1144,9 +1721,9 @@ 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 expected that feature freeze will be around July 2019 followed by
-several 1.17 pre-releases and the new 1.18 stable release in
-August/September.
+is now expected that feature freeze will take place shortly after the
+GStreamer conference/hackfest in early November 2019, with the first
+1.18 stable release ready in late November or early December.
 
 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.
@@ -1154,6 +1731,7 @@ August/September.
 ------------------------------------------------------------------------
 
 _These release notes have been prepared by Tim-Philipp Müller with_
-_contributions from Sebastian Dröge._
+_contributions from Sebastian Dröge, Guillaume Desmottes, Matthew
+Waters, _ _Thibault Saunier, and Víctor Manuel Jáquez Leal._
 
 _License: CC BY-SA 4.0_