Release 1.20.0 1.20.0
authorTim-Philipp Müller <tim@centricular.com>
Thu, 3 Feb 2022 19:53:25 +0000 (19:53 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 3 Feb 2022 20:03:15 +0000 (20:03 +0000)
77 files changed:
meson.build
subprojects/gst-devtools/ChangeLog
subprojects/gst-devtools/NEWS
subprojects/gst-devtools/RELEASE
subprojects/gst-devtools/gst-devtools.doap
subprojects/gst-devtools/meson.build
subprojects/gst-docs/meson.build
subprojects/gst-docs/symbols/symbol_index.json
subprojects/gst-docs/symbols/symbols_version.txt
subprojects/gst-editing-services/ChangeLog
subprojects/gst-editing-services/NEWS
subprojects/gst-editing-services/RELEASE
subprojects/gst-editing-services/gst-editing-services.doap
subprojects/gst-editing-services/meson.build
subprojects/gst-examples/meson.build
subprojects/gst-integration-testsuites/meson.build
subprojects/gst-libav/ChangeLog
subprojects/gst-libav/NEWS
subprojects/gst-libav/RELEASE
subprojects/gst-libav/gst-libav.doap
subprojects/gst-libav/meson.build
subprojects/gst-omx/ChangeLog
subprojects/gst-omx/NEWS
subprojects/gst-omx/RELEASE
subprojects/gst-omx/gst-omx.doap
subprojects/gst-omx/meson.build
subprojects/gst-plugins-bad/ChangeLog
subprojects/gst-plugins-bad/NEWS
subprojects/gst-plugins-bad/README
subprojects/gst-plugins-bad/RELEASE
subprojects/gst-plugins-bad/gst-plugins-bad.doap
subprojects/gst-plugins-bad/meson.build
subprojects/gst-plugins-base/ChangeLog
subprojects/gst-plugins-base/NEWS
subprojects/gst-plugins-base/README
subprojects/gst-plugins-base/RELEASE
subprojects/gst-plugins-base/gst-plugins-base.doap
subprojects/gst-plugins-base/meson.build
subprojects/gst-plugins-good/ChangeLog
subprojects/gst-plugins-good/NEWS
subprojects/gst-plugins-good/README
subprojects/gst-plugins-good/RELEASE
subprojects/gst-plugins-good/docs/gst_plugins_cache.json
subprojects/gst-plugins-good/gst-plugins-good.doap
subprojects/gst-plugins-good/meson.build
subprojects/gst-plugins-ugly/ChangeLog
subprojects/gst-plugins-ugly/NEWS
subprojects/gst-plugins-ugly/README
subprojects/gst-plugins-ugly/RELEASE
subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
subprojects/gst-plugins-ugly/meson.build
subprojects/gst-python/ChangeLog
subprojects/gst-python/NEWS
subprojects/gst-python/RELEASE
subprojects/gst-python/gst-python.doap
subprojects/gst-python/meson.build
subprojects/gst-rtsp-server/ChangeLog
subprojects/gst-rtsp-server/NEWS
subprojects/gst-rtsp-server/RELEASE
subprojects/gst-rtsp-server/docs/gst_plugins_cache.json
subprojects/gst-rtsp-server/gst-rtsp-server.doap
subprojects/gst-rtsp-server/meson.build
subprojects/gstreamer-sharp/meson.build
subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
subprojects/gstreamer-vaapi/ChangeLog
subprojects/gstreamer-vaapi/NEWS
subprojects/gstreamer-vaapi/RELEASE
subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
subprojects/gstreamer-vaapi/meson.build
subprojects/gstreamer/ChangeLog
subprojects/gstreamer/NEWS
subprojects/gstreamer/README
subprojects/gstreamer/RELEASE
subprojects/gstreamer/gstreamer.doap
subprojects/gstreamer/meson.build

index 174e71695fb3560ef1c5f01afab327e3bd17f945..45ff5e26c5845860815445a4ae4e40d52e446279 100644 (file)
@@ -1,5 +1,5 @@
 project('gstreamer-full', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : ['buildtype=debugoptimized',
                      # Needed due to https://github.com/mesonbuild/meson/issues/1889,
index a0981ecf2e856846ad67c90fefb919891e881b42..1f39b5da86eedb3ad0977e2ca6c21a6452502919 100644 (file)
@@ -1,3 +1,18 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gst-devtools.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 === release 1.19.90 ===
 
 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 0ea325b2efc1445b241949837e8f73fdca9f0cba..3aa4be6eea4b9b075b64a2d05e2ed8390ac9f3c8 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-devtools 1.19.90.
+This is GStreamer gst-devtools 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 77a35da09a205e7718473e0c769d33290b206947..c0757b33662065634d460a0dd575885edcc1fec3 100644 (file)
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 3146fa30e353d575798d1d98504662b253456dc2..e40b188063f8da7894617ca3049e88b61354e935 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-devtools', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'c_std=gnu99',
index 8e0584a2e5b06c0562fea87513b40d7a57cd7650..e8fcd6fcef9187f3df54aba2be035ae661ad9d8d 100644 (file)
@@ -1,5 +1,5 @@
 project('GStreamer manuals and tutorials', 'c',
-  version: '1.19.90',
+  version: '1.20.0',
   meson_version : '>= 0.59')
 
 hotdoc_p = find_program('hotdoc')
index 1de2e7690b9b3067d70de2cb061743a7f8771701..02270e3ebb0fc3c10265577505d4200ad54ef8f1 100644 (file)
   "GESMarker",
   "GESMarker:position",
   "GESMarkerClass.parent_class",
+  "GESMarkerFlags",
   "GESMarkerList",
   "GESMarkerList::marker-added",
   "GESMarkerList::marker-moved",
   "GESMarkerList::marker-removed",
+  "GESMarkerList:flags",
   "GESMarkerListClass.parent_class",
   "GESMetaContainer",
   "GESMetaContainer::notify-meta",
   "GES_EXTRACTABLE_GET_INTERFACE",
   "GES_FRAME_NUMBER_IS_VALID",
   "GES_FRAME_NUMBER_NONE",
+  "GES_MARKER_FLAG_NONE",
+  "GES_MARKER_FLAG_SNAPPABLE",
   "GES_META_CONTAINER_GET_INTERFACE",
   "GES_META_DESCRIPTION",
   "GES_META_FLAG_TYPE",
   "GST_H264_CT_TYPE_PROGRESSIVE",
   "GST_H264_CT_TYPE_UNKNOWN",
   "GST_H264_DECODER_CAST",
+  "GST_H264_DECODER_COMPLIANCE_AUTO",
+  "GST_H264_DECODER_COMPLIANCE_FLEXIBLE",
+  "GST_H264_DECODER_COMPLIANCE_NORMAL",
+  "GST_H264_DECODER_COMPLIANCE_STRICT",
+  "GST_H264_DPB_BUMP_LOW_LATENCY",
+  "GST_H264_DPB_BUMP_NORMAL_LATENCY",
+  "GST_H264_DPB_BUMP_VERY_LOW_LATENCY",
   "GST_H264_DPB_MAX_SIZE",
   "GST_H264_FRAME_PACKING_CHECKERBOARD_INTERLEAVING",
   "GST_H264_FRAME_PACKING_COLUMN_INTERLEAVING",
   "GST_JPEG2000_SAMPLING_RGB",
   "GST_JPEG2000_SAMPLING_RGBA",
   "GST_JPEG2000_SAMPLING_YBR410",
+  "GST_JPEG2000_SAMPLING_YBR411",
   "GST_JPEG2000_SAMPLING_YBR420",
   "GST_JPEG2000_SAMPLING_YBR422",
   "GST_JPEG2000_SAMPLING_YBR444",
   "GST_PARSE_FLAG_NONE",
   "GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS",
   "GST_PARSE_FLAG_PLACE_IN_BIN",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_AUDIO",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_CONTAINER",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_GENERIC",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_IMAGE",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_SUBTITLE",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_TAG",
+  "GST_PBUTILS_CAPS_DESCRIPTION_FLAG_VIDEO",
   "GST_PHYS_MEMORY_ALLOCATOR_CAST",
   "GST_PHYS_MEMORY_ALLOCATOR_GET_INTERFACE",
   "GST_PIPELINE_CAST",
   "GST_RTCP_RTPFB_TYPE_TMMBN",
   "GST_RTCP_RTPFB_TYPE_TMMBR",
   "GST_RTCP_RTPFB_TYPE_TWCC",
+  "GST_RTCP_SDES_APSI",
+  "GST_RTCP_SDES_CCID",
   "GST_RTCP_SDES_CNAME",
   "GST_RTCP_SDES_EMAIL",
   "GST_RTCP_SDES_END",
+  "GST_RTCP_SDES_H323_CADDR",
   "GST_RTCP_SDES_INVALID",
   "GST_RTCP_SDES_LOC",
+  "GST_RTCP_SDES_MID",
   "GST_RTCP_SDES_NAME",
   "GST_RTCP_SDES_NOTE",
   "GST_RTCP_SDES_PHONE",
   "GST_RTCP_SDES_PRIV",
+  "GST_RTCP_SDES_REPAIRED_RTP_STREAM_ID",
+  "GST_RTCP_SDES_RGRP",
+  "GST_RTCP_SDES_RTP_STREAM_ID",
   "GST_RTCP_SDES_TOOL",
   "GST_RTCP_TYPE_APP",
   "GST_RTCP_TYPE_BYE",
   "GST_RTP_HDREXT_NTP_64",
   "GST_RTP_HDREXT_NTP_64_SIZE",
   "GST_RTP_HEADER_EXTENSION_CAST",
+  "GST_RTP_HEADER_EXTENSION_DIRECTION_INACTIVE",
+  "GST_RTP_HEADER_EXTENSION_DIRECTION_INHERITED",
+  "GST_RTP_HEADER_EXTENSION_DIRECTION_RECVONLY",
+  "GST_RTP_HEADER_EXTENSION_DIRECTION_SENDONLY",
+  "GST_RTP_HEADER_EXTENSION_DIRECTION_SENDRECV",
   "GST_RTP_HEADER_EXTENSION_ONE_BYTE",
   "GST_RTP_HEADER_EXTENSION_TWO_BYTE",
   "GST_RTP_HEADER_EXTENSION_URI_METADATA_KEY",
   "GST_TRACER_PAD_QUERY_PRE",
   "GST_TRACER_PAD_UNLINK_POST",
   "GST_TRACER_PAD_UNLINK_PRE",
+  "GST_TRACER_PLUGIN_FEATURE_LOADED",
   "GST_TRACER_QUARK",
   "GST_TRACER_RECORD_CAST",
   "GST_TRACER_TS",
   "GST_VIDEO_FORMAT_A444_10BE",
   "GST_VIDEO_FORMAT_A444_10LE",
   "GST_VIDEO_FORMAT_ABGR",
+  "GST_VIDEO_FORMAT_ABGR64_BE",
+  "GST_VIDEO_FORMAT_ABGR64_LE",
   "GST_VIDEO_FORMAT_ARGB",
   "GST_VIDEO_FORMAT_ARGB64",
+  "GST_VIDEO_FORMAT_ARGB64_BE",
+  "GST_VIDEO_FORMAT_ARGB64_LE",
   "GST_VIDEO_FORMAT_AV12",
   "GST_VIDEO_FORMAT_AYUV",
   "GST_VIDEO_FORMAT_AYUV64",
   "GST_VIDEO_FORMAT_BGR15",
   "GST_VIDEO_FORMAT_BGR16",
   "GST_VIDEO_FORMAT_BGRA",
+  "GST_VIDEO_FORMAT_BGRA64_BE",
+  "GST_VIDEO_FORMAT_BGRA64_LE",
   "GST_VIDEO_FORMAT_BGRP",
   "GST_VIDEO_FORMAT_BGRx",
   "GST_VIDEO_FORMAT_ENCODED",
   "GST_VIDEO_FORMAT_RGB16",
   "GST_VIDEO_FORMAT_RGB8P",
   "GST_VIDEO_FORMAT_RGBA",
+  "GST_VIDEO_FORMAT_RGBA64_BE",
+  "GST_VIDEO_FORMAT_RGBA64_LE",
   "GST_VIDEO_FORMAT_RGBP",
   "GST_VIDEO_FORMAT_RGBx",
   "GST_VIDEO_FORMAT_UNKNOWN",
   "GST_VP9_BIT_DEPTH_10",
   "GST_VP9_BIT_DEPTH_12",
   "GST_VP9_BIT_DEPTH_8",
+  "GST_VP9_BLOCK_SIZE_GROUPS",
+  "GST_VP9_CLASS0_SIZE",
+  "GST_VP9_COMP_MODE_CONTEXTS",
   "GST_VP9_CR_FULL",
   "GST_VP9_CR_LIMITED",
   "GST_VP9_CS_BT_2020",
   "GST_VP9_INTERPOLATION_FILTER_EIGHTTAP_SHARP",
   "GST_VP9_INTERPOLATION_FILTER_EIGHTTAP_SMOOTH",
   "GST_VP9_INTERPOLATION_FILTER_SWITCHABLE",
+  "GST_VP9_INTERP_FILTER_CONTEXTS",
   "GST_VP9_INTER_FRAME",
+  "GST_VP9_INTER_MODES",
+  "GST_VP9_INTER_MODE_CONTEXTS",
+  "GST_VP9_INTRA_MODES",
+  "GST_VP9_IS_INTER_CONTEXTS",
   "GST_VP9_KEY_FRAME",
+  "GST_VP9_MV_CLASSES",
+  "GST_VP9_MV_FR_SIZE",
+  "GST_VP9_MV_JOINTS",
+  "GST_VP9_MV_OFFSET_BITS",
   "GST_VP9_PARSER_BROKEN_DATA",
   "GST_VP9_PARSER_ERROR",
   "GST_VP9_PARSER_OK",
+  "GST_VP9_PARTITION_CONTEXTS",
+  "GST_VP9_PARTITION_TYPES",
   "GST_VP9_PICTURE",
   "GST_VP9_PICTURE_CAST",
   "GST_VP9_PROFILE_0",
   "GST_VP9_PROFILE_2",
   "GST_VP9_PROFILE_3",
   "GST_VP9_PROFILE_UNDEFINED",
+  "GST_VP9_REFERENCE_MODE_COMPOUND_REFERENCE",
+  "GST_VP9_REFERENCE_MODE_SELECT",
+  "GST_VP9_REFERENCE_MODE_SINGLE_REFERENCE",
+  "GST_VP9_REF_CONTEXTS",
   "GST_VP9_REF_FRAME_ALTREF",
   "GST_VP9_REF_FRAME_GOLDEN",
   "GST_VP9_REF_FRAME_INTRA",
   "GST_VP9_SEG_LVL_MAX",
   "GST_VP9_SEG_LVL_REF_FRAME",
   "GST_VP9_SEG_SEG_LVL_SKIP",
+  "GST_VP9_SKIP_CONTEXTS",
+  "GST_VP9_SWITCHABLE_FILTERS",
+  "GST_VP9_TX_16x16",
+  "GST_VP9_TX_32x32",
+  "GST_VP9_TX_4x4",
+  "GST_VP9_TX_8x8",
+  "GST_VP9_TX_MODES",
+  "GST_VP9_TX_MODE_ALLOW_16x16",
+  "GST_VP9_TX_MODE_ALLOW_32x32",
+  "GST_VP9_TX_MODE_ALLOW_8x8",
+  "GST_VP9_TX_MODE_ONLY_4x4",
+  "GST_VP9_TX_MODE_SELECT",
+  "GST_VP9_TX_SIZES",
+  "GST_VP9_TX_SIZE_CONTEXTS",
   "GST_VULKAN_BARRIER_FLAG_NONE",
   "GST_VULKAN_BARRIER_NONE",
   "GST_VULKAN_BARRIER_TYPE_BUFFER",
   "GST_WEBRTC_DTLS_TRANSPORT_STATE_CONNECTING",
   "GST_WEBRTC_DTLS_TRANSPORT_STATE_FAILED",
   "GST_WEBRTC_DTLS_TRANSPORT_STATE_NEW",
+  "GST_WEBRTC_ERROR",
+  "GST_WEBRTC_ERROR_DATA_CHANNEL_FAILURE",
+  "GST_WEBRTC_ERROR_DTLS_FAILURE",
+  "GST_WEBRTC_ERROR_ENCODER_ERROR",
+  "GST_WEBRTC_ERROR_FINGERPRINT_FAILURE",
+  "GST_WEBRTC_ERROR_HARDWARE_ENCODER_NOT_AVAILABLE",
+  "GST_WEBRTC_ERROR_INTERNAL_FAILURE",
+  "GST_WEBRTC_ERROR_INVALID_STATE",
+  "GST_WEBRTC_ERROR_SCTP_FAILURE",
+  "GST_WEBRTC_ERROR_SDP_SYNTAX_ERROR",
   "GST_WEBRTC_FEC_TYPE_NONE",
   "GST_WEBRTC_FEC_TYPE_ULP_RED",
   "GST_WEBRTC_ICE_COMPONENT_RTCP",
   "GstAV1WarpModelType",
   "GstAVFAssetSrc!audio",
   "GstAVFAssetSrc!video",
-  "GstAVFVideoSrc!src",
-  "GstAVSampleVideoSink!sink",
-  "GstAVFVideoSourceOrientation",
+  "GstAVFVideoSourceDeviceType",
   "GstAVFVideoSourceDeviceType::default",
-  "GstAVFVideoSourceDeviceType::wide-angle",
   "GstAVFVideoSourceDeviceType::dual",
-  "GstAVFVideoSourceOrientation::portrat-upside-down",
-  "GstAVFVideoSourceOrientation::landscape-left",
+  "GstAVFVideoSourceDeviceType::telephoto",
+  "GstAVFVideoSourceDeviceType::wide-angle",
+  "GstAVFVideoSourceOrientation",
   "GstAVFVideoSourceOrientation::default",
-  "GstAVFVideoSourcePosition",
+  "GstAVFVideoSourceOrientation::landscape-left",
   "GstAVFVideoSourceOrientation::landscape-right",
-  "GstAVFVideoSourcePosition::front",
-  "GstAVFVideoSourceDeviceType",
+  "GstAVFVideoSourceOrientation::portrait",
+  "GstAVFVideoSourceOrientation::portrat-upside-down",
+  "GstAVFVideoSourcePosition",
   "GstAVFVideoSourcePosition::back",
-  "GstAVFVideoSourceDeviceType::telephoto",
   "GstAVFVideoSourcePosition::default",
-  "GstAVFVideoSourceOrientation::portrait",
+  "GstAVFVideoSourcePosition::front",
+  "GstAVFVideoSrc!src",
+  "GstAVSampleVideoSink!sink",
   "GstAacParse",
   "GstAacParse!sink",
   "GstAacParse!src",
   "GstAdder!sink_%u",
   "GstAdder!src",
   "GstAdder:caps",
+  "GstAesCipher",
+  "GstAesCipher::aes-128-cbc",
+  "GstAesCipher::aes-256-cbc",
+  "GstAesDec!sink",
+  "GstAesDec!src",
+  "GstAesEnc!sink",
+  "GstAesEnc!src",
   "GstAggregator",
   "GstAggregator.parent",
   "GstAggregator.srcpad",
   "GstAppSink::eos",
   "GstAppSink::new-preroll",
   "GstAppSink::new-sample",
+  "GstAppSink::new-serialized-event",
   "GstAppSink::pull-preroll",
   "GstAppSink::pull-sample",
+  "GstAppSink::try-pull-object",
   "GstAppSink::try-pull-preroll",
   "GstAppSink::try-pull-sample",
   "GstAppSink:buffer-list",
   "GstAppSinkClass::new_sample",
   "GstAppSinkClass::pull_preroll",
   "GstAppSinkClass::pull_sample",
+  "GstAppSinkClass::try_pull_object",
   "GstAppSinkClass::try_pull_preroll",
   "GstAppSinkClass::try_pull_sample",
   "GstAppSrc",
   "GstAudioAggregator.parent",
   "GstAudioAggregator:alignment-threshold",
   "GstAudioAggregator:discont-wait",
+  "GstAudioAggregator:ignore-inactive-pads",
   "GstAudioAggregator:output-buffer-duration",
   "GstAudioAggregator:output-buffer-duration-fraction",
   "GstAudioAggregatorClass.aggregate_one_buffer",
   "GstAudioAggregatorPad",
   "GstAudioAggregatorPad.info",
   "GstAudioAggregatorPad.parent",
+  "GstAudioAggregatorPad:qos-messages",
   "GstAudioAggregatorPadClass.convert_buffer",
   "GstAudioAggregatorPadClass.parent_class",
   "GstAudioAggregatorPadClass.update_conversion_info",
   "GstCCExtractor!sink",
   "GstCCExtractor!src",
   "GstCCExtractor:remove-caption-meta",
+  "GstCVTracker!sink",
+  "GstCVTracker!src",
   "GstCairoOverlay",
   "GstCairoOverlay!sink",
   "GstCairoOverlay!src",
   "GstCompositorPad:alpha",
   "GstCompositorPad:height",
   "GstCompositorPad:operator",
+  "GstCompositorPad:sizing-policy",
   "GstCompositorPad:width",
   "GstCompositorPad:xpos",
   "GstCompositorPad:ypos",
+  "GstCompositorSizingPolicy",
+  "GstCompositorSizingPolicy::keep-aspect-ratio",
+  "GstCompositorSizingPolicy::none",
   "GstConcat",
   "GstConcat!sink_%u",
   "GstConcat!src",
   "GstCpuReport!sink",
   "GstCpuReport!src",
   "GstCtType",
+  "GstCudaBaseFilter",
+  "GstCudaBaseTransform",
+  "GstCudaBaseTransform:cuda-device-id",
+  "GstCudaConvert!sink",
+  "GstCudaConvert!src",
+  "GstCudaDownload!sink",
+  "GstCudaDownload!src",
+  "GstCudaScale!sink",
+  "GstCudaScale!src",
+  "GstCudaUpload!sink",
+  "GstCudaUpload!src",
   "GstCurlBaseSink",
   "GstCurlBaseSink:file-name",
   "GstCurlBaseSink:location",
   "GstCvSobel:mask",
   "GstCvSobel:x-order",
   "GstCvSobel:y-order",
+  "GstD3D11AV1Dec!sink",
+  "GstD3D11AV1Dec!src",
   "GstD3D11BaseConvert",
   "GstD3D11BaseFilter",
   "GstD3D11BaseFilter:adapter",
   "GstD3D11ColorConvert!sink",
   "GstD3D11ColorConvert!src",
+  "GstD3D11Compositor!sink_%u",
+  "GstD3D11Compositor!src",
+  "GstD3D11CompositorBackground",
+  "GstD3D11CompositorBackground::black",
+  "GstD3D11CompositorBackground::checker",
+  "GstD3D11CompositorBackground::transparent",
+  "GstD3D11CompositorBackground::white",
+  "GstD3D11CompositorBin!sink_%u",
+  "GstD3D11CompositorBin!src",
+  "GstD3D11CompositorBinInput",
+  "GstD3D11CompositorBinInput:alpha",
+  "GstD3D11CompositorBinInput:blend-dest-alpha",
+  "GstD3D11CompositorBinInput:blend-dest-rgb",
+  "GstD3D11CompositorBinInput:blend-factor-alpha",
+  "GstD3D11CompositorBinInput:blend-factor-blue",
+  "GstD3D11CompositorBinInput:blend-factor-green",
+  "GstD3D11CompositorBinInput:blend-factor-red",
+  "GstD3D11CompositorBinInput:blend-op-alpha",
+  "GstD3D11CompositorBinInput:blend-op-rgb",
+  "GstD3D11CompositorBinInput:blend-src-alpha",
+  "GstD3D11CompositorBinInput:blend-src-rgb",
+  "GstD3D11CompositorBinInput:height",
+  "GstD3D11CompositorBinInput:max-last-buffer-repeat",
+  "GstD3D11CompositorBinInput:repeat-after-eos",
+  "GstD3D11CompositorBinInput:sizing-policy",
+  "GstD3D11CompositorBinInput:width",
+  "GstD3D11CompositorBinInput:xpos",
+  "GstD3D11CompositorBinInput:ypos",
+  "GstD3D11CompositorBinInput:zorder",
+  "GstD3D11CompositorBinPad",
+  "GstD3D11CompositorBinPad::buffer-consumed",
+  "GstD3D11CompositorBinPad:emit-signals",
+  "GstD3D11CompositorBlend",
+  "GstD3D11CompositorBlend::blend-factor",
+  "GstD3D11CompositorBlend::dest-alpha",
+  "GstD3D11CompositorBlend::dest-color",
+  "GstD3D11CompositorBlend::inv-blend-factor",
+  "GstD3D11CompositorBlend::inv-dest-alpha",
+  "GstD3D11CompositorBlend::inv-dest-color",
+  "GstD3D11CompositorBlend::inv-src-alpha",
+  "GstD3D11CompositorBlend::inv-src-color",
+  "GstD3D11CompositorBlend::one",
+  "GstD3D11CompositorBlend::src-alpha",
+  "GstD3D11CompositorBlend::src-alpha-sat",
+  "GstD3D11CompositorBlend::src-color",
+  "GstD3D11CompositorBlend::zero",
+  "GstD3D11CompositorBlendOperation",
+  "GstD3D11CompositorBlendOperation::add",
+  "GstD3D11CompositorBlendOperation::max",
+  "GstD3D11CompositorBlendOperation::min",
+  "GstD3D11CompositorBlendOperation::rev-subtract",
+  "GstD3D11CompositorBlendOperation::subtract",
+  "GstD3D11CompositorPad",
+  "GstD3D11CompositorPad:alpha",
+  "GstD3D11CompositorPad:blend-dest-alpha",
+  "GstD3D11CompositorPad:blend-dest-rgb",
+  "GstD3D11CompositorPad:blend-factor-alpha",
+  "GstD3D11CompositorPad:blend-factor-blue",
+  "GstD3D11CompositorPad:blend-factor-green",
+  "GstD3D11CompositorPad:blend-factor-red",
+  "GstD3D11CompositorPad:blend-op-alpha",
+  "GstD3D11CompositorPad:blend-op-rgb",
+  "GstD3D11CompositorPad:blend-src-alpha",
+  "GstD3D11CompositorPad:blend-src-rgb",
+  "GstD3D11CompositorPad:height",
+  "GstD3D11CompositorPad:sizing-policy",
+  "GstD3D11CompositorPad:width",
+  "GstD3D11CompositorPad:xpos",
+  "GstD3D11CompositorPad:ypos",
+  "GstD3D11CompositorSizingPolicy",
+  "GstD3D11CompositorSizingPolicy::keep-aspect-ratio",
+  "GstD3D11CompositorSizingPolicy::none",
   "GstD3D11Convert",
   "GstD3D11Convert!sink",
   "GstD3D11Convert!src",
   "GstD3D11Mpeg2Dec!src",
   "GstD3D11Scale!sink",
   "GstD3D11Scale!src",
+  "GstD3D11ScreenCaptureSrc!src",
   "GstD3D11Upload",
   "GstD3D11Upload!sink",
   "GstD3D11Upload!src",
   "GstGLWindow::key-event",
   "GstGLWindow::mouse-event",
   "GstGLWindow::scroll-event",
+  "GstGLWindow::window-handle-changed",
   "GstGLWindowCB",
   "GstGLWindowClass.close",
   "GstGLWindowClass.controls_viewport",
   "GstGtkBaseSink:force-aspect-ratio",
   "GstGtkBaseSink:ignore-alpha",
   "GstGtkBaseSink:pixel-aspect-ratio",
+  "GstGtkBaseSink:video-aspect-ratio-override",
   "GstGtkBaseSink:widget",
   "GstGtkGLSink",
   "GstGtkGLSink!sink",
   "GstH264ContentLightLevel",
   "GstH264DecRefPicMarking",
   "GstH264Decoder",
+  "GstH264Decoder:compliance",
   "GstH264DecoderClass.decode_slice",
   "GstH264DecoderClass.end_picture",
   "GstH264DecoderClass.new_picture",
   "GstH264DecoderClass::new_sequence",
   "GstH264DecoderClass::output_picture",
   "GstH264DecoderClass::start_picture",
+  "GstH264DecoderCompliance",
   "GstH264Dpb",
+  "GstH264DpbBumpMode",
   "GstH264FramePacking",
   "GstH264FramePackingType",
   "GstH264HRDParams",
   "GstJackConnect",
   "GstJackConnect::auto",
   "GstJackConnect::auto-forced",
+  "GstJackConnect::explicit",
   "GstJackConnect::none",
   "GstJackTransport",
   "GstJackTransport::master",
   "GstMpeg2DecoderClass.parent_class",
   "GstMpeg2DecoderClass::decode_slice",
   "GstMpeg2DecoderClass::end_picture",
+  "GstMpeg2DecoderClass::get_preferred_output_delay",
   "GstMpeg2DecoderClass::new_field_picture",
   "GstMpeg2DecoderClass::new_picture",
   "GstMpeg2DecoderClass::new_sequence",
   "GstMpegtsSCTESIT.descriptors",
   "GstMpegtsSCTESIT.encrypted_packet",
   "GstMpegtsSCTESIT.encryption_algorithm",
+  "GstMpegtsSCTESIT.fully_parsed",
+  "GstMpegtsSCTESIT.is_running_time",
   "GstMpegtsSCTESIT.pts_adjustment",
   "GstMpegtsSCTESIT.splice_command_length",
   "GstMpegtsSCTESIT.splice_command_type",
   "GstMpegtsSCTESIT.splices",
   "GstMpegtsSCTESIT.tier",
   "GstMpegtsSCTESpliceCommandType",
+  "GstMpegtsSCTESpliceComponent",
+  "GstMpegtsSCTESpliceComponent.splice_time",
+  "GstMpegtsSCTESpliceComponent.splice_time_specified",
+  "GstMpegtsSCTESpliceComponent.tag",
+  "GstMpegtsSCTESpliceComponent.utc_splice_time",
   "GstMpegtsSCTESpliceDescriptor",
   "GstMpegtsSCTESpliceEvent",
   "GstMpegtsSCTESpliceEvent.avail_num",
   "GstMpegtsSCTESpliceEvent.avails_expected",
   "GstMpegtsSCTESpliceEvent.break_duration",
   "GstMpegtsSCTESpliceEvent.break_duration_auto_return",
+  "GstMpegtsSCTESpliceEvent.components",
   "GstMpegtsSCTESpliceEvent.duration_flag",
   "GstMpegtsSCTESpliceEvent.insert_event",
   "GstMpegtsSCTESpliceEvent.out_of_network_indicator",
   "GstMpegtsSCTESpliceEvent.splice_event_id",
   "GstMpegtsSCTESpliceEvent.splice_immediate_flag",
   "GstMpegtsSCTESpliceEvent.unique_program_id",
+  "GstMpegtsSCTESpliceEvent.utc_splice_time",
   "GstMpegtsSDT",
   "GstMpegtsSDT.actual_ts",
   "GstMpegtsSDT.original_network_id",
   "GstMplexFormat::vcd",
   "GstMplexFormat::vcd-nsr",
   "GstMplexFormat::vcd-still",
+  "GstMsdkAV1Dec!sink",
+  "GstMsdkAV1Dec!src",
+  "GstMsdkDec",
+  "GstMsdkDec:async-depth",
+  "GstMsdkDec:hardware",
+  "GstMsdkDecOutputOrder",
+  "GstMsdkDecOutputOrder::decoded",
+  "GstMsdkDecOutputOrder::display",
+  "GstMsdkEnc",
+  "GstMsdkEnc:accuracy",
+  "GstMsdkEnc:async-depth",
+  "GstMsdkEnc:b-adapt",
+  "GstMsdkEnc:b-frames",
+  "GstMsdkEnc:bitrate",
+  "GstMsdkEnc:convergence",
+  "GstMsdkEnc:ext-coding-props",
+  "GstMsdkEnc:gop-size",
+  "GstMsdkEnc:hardware",
+  "GstMsdkEnc:i-adapt",
+  "GstMsdkEnc:i-frames",
+  "GstMsdkEnc:max-frame-size",
+  "GstMsdkEnc:max-vbv-bitrate",
+  "GstMsdkEnc:mbbrc",
+  "GstMsdkEnc:num-slices",
+  "GstMsdkEnc:qpb",
+  "GstMsdkEnc:qpi",
+  "GstMsdkEnc:qpp",
+  "GstMsdkEnc:rate-control",
+  "GstMsdkEnc:rc-lookahead",
+  "GstMsdkEnc:ref-frames",
+  "GstMsdkEnc:target-usage",
+  "GstMsdkEncAdaptiveB",
+  "GstMsdkEncAdaptiveB::auto",
+  "GstMsdkEncAdaptiveB::off",
+  "GstMsdkEncAdaptiveB::on",
+  "GstMsdkEncAdaptiveI",
+  "GstMsdkEncAdaptiveI::auto",
+  "GstMsdkEncAdaptiveI::off",
+  "GstMsdkEncAdaptiveI::on",
+  "GstMsdkEncIntraRefreshType",
+  "GstMsdkEncIntraRefreshType::horizontal",
+  "GstMsdkEncIntraRefreshType::no",
+  "GstMsdkEncIntraRefreshType::slice",
+  "GstMsdkEncIntraRefreshType::vertical",
+  "GstMsdkEncMbBitrateControl",
+  "GstMsdkEncMbBitrateControl::auto",
+  "GstMsdkEncMbBitrateControl::off",
+  "GstMsdkEncMbBitrateControl::on",
+  "GstMsdkEncRCLookAheadDownsampling",
+  "GstMsdkEncRCLookAheadDownsampling::2x",
+  "GstMsdkEncRCLookAheadDownsampling::4x",
+  "GstMsdkEncRCLookAheadDownsampling::default",
+  "GstMsdkEncRCLookAheadDownsampling::off",
+  "GstMsdkEncRateControl",
+  "GstMsdkEncRateControl::avbr",
+  "GstMsdkEncRateControl::cbr",
+  "GstMsdkEncRateControl::cqp",
+  "GstMsdkEncRateControl::icq",
+  "GstMsdkEncRateControl::la_hrd",
+  "GstMsdkEncRateControl::la_icq",
+  "GstMsdkEncRateControl::la_vbr",
+  "GstMsdkEncRateControl::qvbr",
+  "GstMsdkEncRateControl::vbr",
+  "GstMsdkEncRateControl::vcm",
+  "GstMsdkEncTransformSkip",
+  "GstMsdkEncTransformSkip::auto",
+  "GstMsdkEncTransformSkip::off",
+  "GstMsdkEncTransformSkip::on",
+  "GstMsdkEncTrellisQuantization",
+  "GstMsdkEncTrellisQuantization::None",
+  "GstMsdkEncTrellisQuantization::b",
+  "GstMsdkEncTrellisQuantization::i",
+  "GstMsdkEncTrellisQuantization::p",
+  "GstMsdkEncTuneMode",
+  "GstMsdkEncTuneMode::auto",
+  "GstMsdkEncTuneMode::low-power",
+  "GstMsdkEncTuneMode::none",
+  "GstMsdkH264Dec!sink",
+  "GstMsdkH264Dec!src",
+  "GstMsdkH264Enc!sink",
+  "GstMsdkH264Enc!src",
+  "GstMsdkH264EncFramePacking",
+  "GstMsdkH264EncFramePacking::none",
+  "GstMsdkH264EncFramePacking::side-by-side",
+  "GstMsdkH264EncFramePacking::top-bottom",
+  "GstMsdkH265Dec!sink",
+  "GstMsdkH265Dec!src",
+  "GstMsdkH265Enc!sink",
+  "GstMsdkH265Enc!src",
+  "GstMsdkMJPEGDec!sink",
+  "GstMsdkMJPEGDec!src",
+  "GstMsdkMJPEGEnc!sink",
+  "GstMsdkMJPEGEnc!src",
+  "GstMsdkMPEG2Dec!sink",
+  "GstMsdkMPEG2Dec!src",
+  "GstMsdkMPEG2Enc!sink",
+  "GstMsdkMPEG2Enc!src",
+  "GstMsdkVC1Dec!sink",
+  "GstMsdkVC1Dec!src",
+  "GstMsdkVP8Dec!sink",
+  "GstMsdkVP8Dec!src",
+  "GstMsdkVP9Dec!sink",
+  "GstMsdkVP9Dec!src",
+  "GstMsdkVP9Enc!sink",
+  "GstMsdkVP9Enc!src",
+  "GstMsdkVPP!sink",
+  "GstMsdkVPP!src",
+  "GstMsdkVPPDeinterlaceMethod",
+  "GstMsdkVPPDeinterlaceMethod::advanced",
+  "GstMsdkVPPDeinterlaceMethod::advanced-no-ref ",
+  "GstMsdkVPPDeinterlaceMethod::advanced-scd ",
+  "GstMsdkVPPDeinterlaceMethod::bob",
+  "GstMsdkVPPDeinterlaceMethod::field-weave",
+  "GstMsdkVPPDeinterlaceMethod::none",
+  "GstMsdkVPPDeinterlaceMode",
+  "GstMsdkVPPDeinterlaceMode::auto",
+  "GstMsdkVPPDeinterlaceMode::disabled",
+  "GstMsdkVPPDeinterlaceMode::interlaced",
+  "GstMsdkVPPFrcAlgorithm",
+  "GstMsdkVPPFrcAlgorithm::distribute-ts",
+  "GstMsdkVPPFrcAlgorithm::interpolate",
+  "GstMsdkVPPFrcAlgorithm::interpolate-distribute-ts",
+  "GstMsdkVPPFrcAlgorithm::interpolate-preserve-ts",
+  "GstMsdkVPPFrcAlgorithm::none",
+  "GstMsdkVPPFrcAlgorithm::preserve-ts",
+  "GstMsdkVPPMirroring",
+  "GstMsdkVPPMirroring::disable",
+  "GstMsdkVPPMirroring::horizontal",
+  "GstMsdkVPPMirroring::vertical",
+  "GstMsdkVPPRotation",
+  "GstMsdkVPPRotation::0",
+  "GstMsdkVPPRotation::180",
+  "GstMsdkVPPRotation::270",
+  "GstMsdkVPPRotation::90",
+  "GstMsdkVPPScalingMode",
+  "GstMsdkVPPScalingMode::disable",
+  "GstMsdkVPPScalingMode::lowpower",
+  "GstMsdkVPPScalingMode::quality",
   "GstMssDemux",
   "GstMssDemux!audio_%02u",
   "GstMssDemux!sink",
   "GstNvBaseEnc:strict-gop",
   "GstNvBaseEnc:zerolatency",
   "GstNvDec",
+  "GstNvDec:max-display-delay",
   "GstNvDevice0H264Enc",
   "GstNvDevice0H265Enc",
   "GstNvH264Dec",
   "GstNvRCMode::vbr",
   "GstNvRCMode::vbr-hq",
   "GstNvRCMode::vbr-minqp",
+  "GstNvVP8StatelessDec!sink",
+  "GstNvVP8StatelessDec!src",
+  "GstNvVP9StatelessDec!sink",
+  "GstNvVP9StatelessDec!src",
+  "GstNvVp8Dec",
+  "GstNvVp9Dec",
+  "GstOSXVideoSink!sink",
   "GstObject",
   "GstObject.flags",
   "GstObject.lock",
   "GstOpenALSink:user-context",
   "GstOpenALSink:user-device",
   "GstOpenALSink:user-source",
+  "GstOpenCVTrackerAlgorithm",
+  "GstOpenCVTrackerAlgorithm::Boosting",
+  "GstOpenCVTrackerAlgorithm::CSRT",
+  "GstOpenCVTrackerAlgorithm::KCF",
+  "GstOpenCVTrackerAlgorithm::MIL",
+  "GstOpenCVTrackerAlgorithm::MOSSE",
+  "GstOpenCVTrackerAlgorithm::MedianFlow",
+  "GstOpenCVTrackerAlgorithm::TLD",
   "GstOpenEXRDec",
   "GstOpenEXRDec!sink",
   "GstOpenEXRDec!src",
   "GstOsxAudioElement",
   "GstOsxAudioSink!sink",
   "GstOsxAudioSrc!src",
-  "GstOSXVideoSink!sink",
   "GstOutputSelector",
   "GstOutputSelector!sink",
   "GstOutputSelector!src_%u",
   "GstParseContext",
   "GstParseError",
   "GstParseFlags",
+  "GstPbUtilsCapsDescriptionFlags",
   "GstPcapParse",
   "GstPcapParse!sink",
   "GstPcapParse!src",
   "GstRTPHeaderExtensionClass::set_non_rtp_sink_caps",
   "GstRTPHeaderExtensionClass::update_non_rtp_src_caps",
   "GstRTPHeaderExtensionClass::write",
+  "GstRTPHeaderExtensionDirection",
   "GstRTPHeaderExtensionFlags",
   "GstRTPILBCPay",
   "GstRTPILBCPay!sink",
   "GstVP9RTPPayMode::15-bit",
   "GstVP9RTPPayMode::7-bit",
   "GstVP9RTPPayMode::none",
+  "GstVPXAQ",
+  "GstVPXAQ::complexity",
+  "GstVPXAQ::cyclic-refresh",
+  "GstVPXAQ::equator360",
+  "GstVPXAQ::lookahead",
+  "GstVPXAQ::off",
+  "GstVPXAQ::perceptual",
+  "GstVPXAQ::psnr",
+  "GstVPXAQ::variance",
   "GstVPXDec",
   "GstVPXDec:deblocking-level",
   "GstVPXDec:noise-level",
   "GstVPXEncTuning",
   "GstVPXEncTuning::psnr",
   "GstVPXEncTuning::ssim",
+  "GstVaBaseTransform",
+  "GstVaDeinterlace!sink",
+  "GstVaDeinterlace!src",
+  "GstVaDeinterlaceMethods",
+  "GstVaDeinterlaceMethods::adaptive",
+  "GstVaDeinterlaceMethods::bob",
+  "GstVaDeinterlaceMethods::compensated",
   "GstVaH264Dec!sink",
   "GstVaH264Dec!src",
   "GstVaH265Dec!sink",
   "GstVideoCodecState.allocation_caps",
   "GstVideoCodecState.caps",
   "GstVideoCodecState.codec_data",
+  "GstVideoCodecState.content_light_level",
   "GstVideoCodecState.info",
+  "GstVideoCodecState.mastering_display_info",
+  "GstVideoCodecTestSink!sink",
   "GstVideoColorMatrix",
   "GstVideoColorPrimaries",
   "GstVideoColorPrimariesInfo",
   "GstVideoCropMeta.x",
   "GstVideoCropMeta.y",
   "GstVideoDecoder",
+  "GstVideoDecoder:automatic-request-sync-point-flags",
+  "GstVideoDecoder:automatic-request-sync-points",
   "GstVideoDecoder:discard-corrupted-frames",
   "GstVideoDecoder:max-errors",
   "GstVideoDecoder:min-force-key-unit-interval",
   "GstVideoDecoderClass::flush",
   "GstVideoDecoderClass::getcaps",
   "GstVideoDecoderClass::handle_frame",
+  "GstVideoDecoderClass::handle_missing_data",
   "GstVideoDecoderClass::negotiate",
   "GstVideoDecoderClass::open",
   "GstVideoDecoderClass::parse",
   "GstVideoOrientationInterface::set_hflip",
   "GstVideoOrientationInterface::set_vcenter",
   "GstVideoOrientationInterface::set_vflip",
+  "GstVideoOrientationMethod",
   "GstVideoOverlay",
   "GstVideoOverlayComposition",
   "GstVideoOverlayCompositionMeta",
   "GstVideoTestSrcPattern::pinwheel",
   "GstVideoTestSrcPattern::red",
   "GstVideoTestSrcPattern::smpte",
+  "GstVideoTestSrcPattern::smpte-rp-219",
   "GstVideoTestSrcPattern::smpte100",
   "GstVideoTestSrcPattern::smpte75",
   "GstVideoTestSrcPattern::snow",
   "GstVp9DecoderClass::decode_picture",
   "GstVp9DecoderClass::duplicate_picture",
   "GstVp9DecoderClass::end_picture",
+  "GstVp9DecoderClass::get_preferred_output_delay",
   "GstVp9DecoderClass::new_picture",
   "GstVp9DecoderClass::new_sequence",
   "GstVp9DecoderClass::output_picture",
   "GstVp9DecoderClass::start_picture",
+  "GstVp9DeltaProbabilities",
   "GstVp9Dpb",
   "GstVp9Dpb.pic_list",
   "GstVp9FrameHdr",
   "GstVp9FrameHeader.bit_depth",
   "GstVp9FrameHeader.color_range",
   "GstVp9FrameHeader.color_space",
+  "GstVp9FrameHeader.delta_probabilities",
   "GstVp9FrameHeader.error_resilient_mode",
   "GstVp9FrameHeader.frame_context_idx",
   "GstVp9FrameHeader.frame_header_length_in_bytes",
   "GstVp9FrameHeader.quantization_params",
   "GstVp9FrameHeader.ref_frame_idx",
   "GstVp9FrameHeader.ref_frame_sign_bias",
+  "GstVp9FrameHeader.reference_mode",
   "GstVp9FrameHeader.refresh_frame_context",
   "GstVp9FrameHeader.refresh_frame_flags",
   "GstVp9FrameHeader.render_and_frame_size_different",
   "GstVp9FrameHeader.subsampling_y",
   "GstVp9FrameHeader.tile_cols_log2",
   "GstVp9FrameHeader.tile_rows_log2",
+  "GstVp9FrameHeader.tx_mode",
   "GstVp9FrameHeader.width",
   "GstVp9FrameType",
   "GstVp9InterpolationFilter",
   "GstVp9LoopFilterParams.loop_filter_sharpness",
   "GstVp9LoopFilterParams.update_mode_delta",
   "GstVp9LoopFilterParams.update_ref_delta",
+  "GstVp9MvDeltaProbs",
   "GstVp9Parse!sink",
   "GstVp9Parse!src",
   "GstVp9Parser",
   "GstVp9QuantizationParams.delta_q_uv_dc",
   "GstVp9QuantizationParams.delta_q_y_dc",
   "GstVp9RefFrameType",
+  "GstVp9ReferenceMode",
   "GstVp9Segmentation",
   "GstVp9SegmentationInfo",
   "GstVp9SegmentationInfoData",
   "GstVp9StatefulParser",
   "GstVp9StatefulParser.reference",
   "GstVp9SuperframeInfo",
+  "GstVp9TxMode",
+  "GstVp9TxSize",
   "GstVtdec!sink",
   "GstVtdec!src",
   "GstVtdecHw!sink",
   "GstWebRTCDataChannelClass::send_data",
   "GstWebRTCDataChannelClass::send_string",
   "GstWebRTCDataChannelState",
+  "GstWebRTCError",
   "GstWebRTCFECType",
   "GstWebRTCICE",
   "GstWebRTCICE::add-local-ip-address",
   "GstWebRTCRTPTransceiverClass._padding",
   "GstWebRTCRTPTransceiverClass.parent_class",
   "GstWebRTCRTPTransceiverDirection",
+  "GstWebRTCSCTPTransport",
+  "GstWebRTCSCTPTransport:max-channels",
+  "GstWebRTCSCTPTransport:max-message-size",
+  "GstWebRTCSCTPTransport:state",
+  "GstWebRTCSCTPTransport:transport",
   "GstWebRTCSCTPTransportState",
   "GstWebRTCSDPType",
   "GstWebRTCSessionDescription",
   "RTPSession:sdes",
   "RTPSession:sources",
   "RTPSession:stats",
+  "RTPSession:twcc-feedback-interval",
   "RTPSource",
   "RTPSource:disable-rtcp",
   "RTPSource:is-csrc",
   "adpcmenc",
   "adpcmenc:blockalign",
   "adpcmenc:layout",
+  "aesdec",
+  "aesdec:cipher",
+  "aesdec:iv",
+  "aesdec:key",
+  "aesdec:per-buffer-padding",
+  "aesdec:serialize-iv",
+  "aesenc",
+  "aesenc:cipher",
+  "aesenc:iv",
+  "aesenc:key",
+  "aesenc:per-buffer-padding",
+  "aesenc:serialize-iv",
   "agingtv",
   "agingtv:color-aging",
   "agingtv:dusts",
   "appsink::eos",
   "appsink::new-preroll",
   "appsink::new-sample",
+  "appsink::new-serialized-event",
   "appsink::pull-preroll",
   "appsink::pull-sample",
+  "appsink::try-pull-object",
   "appsink::try-pull-preroll",
   "appsink::try-pull-sample",
   "appsink:buffer-list",
   "audiolatency:average-latency",
   "audiolatency:last-latency",
   "audiolatency:print-latency",
+  "audiolatency:samplesperbuffer",
   "audiomixer",
   "audiomixmatrix",
   "audiomixmatrix:channel-mask",
   "avenc_h264_omx:debug",
   "avenc_h264_omx:dia-size",
   "avenc_h264_omx:dump-separator",
+  "avenc_h264_omx:err-detect",
   "avenc_h264_omx:export-side-data",
   "avenc_h264_omx:field-order",
   "avenc_h264_omx:flags",
   "avenc_mpeg4_omx:debug",
   "avenc_mpeg4_omx:dia-size",
   "avenc_mpeg4_omx:dump-separator",
+  "avenc_mpeg4_omx:err-detect",
   "avenc_mpeg4_omx:export-side-data",
   "avenc_mpeg4_omx:field-order",
   "avenc_mpeg4_omx:flags",
   "avfvideosrc:fps",
   "avfvideosrc:orientation",
   "avfvideosrc:position",
-  "avsamplebufferlayersink",
-  "avsamplebufferlayersink:force-aspect-ratio",
-  "avsamplebufferlayersink:layer",
   "avidemux",
   "avimux",
   "avimux:bigfile",
   "compare:upper",
   "compositor",
   "compositor:background",
+  "compositor:ignore-inactive-pads",
+  "compositor:max-threads",
   "compositor:zero-size-is-unscaled",
   "concat",
   "concat:active-pad",
   "concat:adjust-base",
   "count",
   "cpureport",
+  "cudaconvert",
+  "cudadownload",
+  "cudascale",
+  "cudaupload",
   "curlfilesink",
   "curlfilesink:create-dirs",
   "curlftpsink",
   "cvsobel:mask",
   "cvsobel:x-order",
   "cvsobel:y-order",
+  "cvtracker",
+  "cvtracker:algorithm",
+  "cvtracker:draw-rect",
+  "cvtracker:object-initial-height",
+  "cvtracker:object-initial-width",
+  "cvtracker:object-initial-x",
+  "cvtracker:object-initial-y",
+  "d3d11av1dec",
+  "d3d11av1dec:adapter-luid",
+  "d3d11av1dec:device-id",
+  "d3d11av1dec:vendor-id",
   "d3d11colorconvert",
+  "d3d11compositor",
+  "d3d11compositor:adapter",
+  "d3d11compositor:background",
+  "d3d11compositor:emit-signals",
+  "d3d11compositor:latency",
+  "d3d11compositor:min-upstream-latency",
+  "d3d11compositor:mixer",
+  "d3d11compositor:start-time",
+  "d3d11compositor:start-time-selection",
+  "d3d11compositorelement",
+  "d3d11compositorelement:adapter",
+  "d3d11compositorelement:background",
   "d3d11convert",
+  "d3d11convert:add-borders",
   "d3d11deinterlace",
   "d3d11deinterlace:adapter",
   "d3d11deinterlace:device-id",
   "d3d11desktopdupsrc:show-cursor",
   "d3d11download",
   "d3d11h264dec",
+  "d3d11h264dec:adapter-luid",
   "d3d11h264dec:device-id",
   "d3d11h264dec:vendor-id",
   "d3d11h265dec",
+  "d3d11h265dec:adapter-luid",
   "d3d11h265dec:device-id",
   "d3d11h265dec:vendor-id",
   "d3d11mpeg2dec",
+  "d3d11mpeg2dec:adapter-luid",
   "d3d11mpeg2dec:device-id",
   "d3d11mpeg2dec:vendor-id",
   "d3d11scale",
+  "d3d11scale:add-borders",
+  "d3d11screencapturesrc",
+  "d3d11screencapturesrc:monitor-handle",
+  "d3d11screencapturesrc:monitor-index",
+  "d3d11screencapturesrc:show-cursor",
   "d3d11upload",
   "d3d11videosink",
   "d3d11videosink::begin-draw",
   "d3d11videosinkelement:fullscreen",
   "d3d11videosinkelement:fullscreen-toggle-mode",
   "d3d11vp8dec",
+  "d3d11vp8dec:adapter-luid",
   "d3d11vp8dec:device-id",
   "d3d11vp8dec:vendor-id",
   "d3d11vp9dec",
+  "d3d11vp9dec:adapter-luid",
   "d3d11vp9dec:device-id",
   "d3d11vp9dec:vendor-id",
   "d3dvideosink",
   "dashdemux:max-video-width",
   "dashdemux:presentation-delay",
   "dashsink",
+  "dashsink::get-fragment-stream",
+  "dashsink::get-playlist-stream",
   "dashsink:dynamic",
   "dashsink:min-buffer-time",
   "dashsink:minimum-update-period",
   "element-oss4src",
   "element-osssink",
   "element-osssrc",
-  "element-osxaudiosrc",
   "element-osxaudiosink",
+  "element-osxaudiosrc",
   "element-osxvideosink",
   "element-output-selector",
   "element-overlaycomposition",
   "element-vp8enc",
   "element-vp9dec",
   "element-vp9enc",
+  "element-vtdec",
+  "element-vtdec_hw",
+  "element-vtenc_h264",
+  "element-vtenc_h264_hw",
   "element-vulkancolorconvert",
   "element-vulkandownload",
   "element-vulkanimageidentity",
   "element-vulkansink",
   "element-vulkanupload",
   "element-vulkanviewconvert",
-  "element-vtdec",
-  "element-vtdec_hw",
-  "element-vtenc_h264",
-  "element-vtenc_h264_hw",
   "element-warptv",
   "element-wasapi2sink",
   "element-wasapi2src",
   "ges_timeline_element_set_start",
   "ges_timeline_element_set_timeline",
   "ges_timeline_element_trim",
+  "ges_timeline_freeze_commit",
   "ges_timeline_get_auto_transition",
   "ges_timeline_get_duration",
   "ges_timeline_get_element",
   "ges_timeline_save_to_uri",
   "ges_timeline_set_auto_transition",
   "ges_timeline_set_snapping_distance",
+  "ges_timeline_thaw_commit",
   "ges_title_clip_get_background_color",
   "ges_title_clip_get_font_desc",
   "ges_title_clip_get_halignment",
   "gst_aggregator_finish_buffer_list",
   "gst_aggregator_get_allocator",
   "gst_aggregator_get_buffer_pool",
+  "gst_aggregator_get_ignore_inactive_pads",
   "gst_aggregator_get_latency",
   "gst_aggregator_negotiate",
   "gst_aggregator_pad_drop_buffer",
   "gst_aggregator_pad_has_buffer",
   "gst_aggregator_pad_is_eos",
+  "gst_aggregator_pad_is_inactive",
   "gst_aggregator_pad_peek_buffer",
   "gst_aggregator_pad_pop_buffer",
   "gst_aggregator_peek_next_sample",
   "gst_aggregator_selected_samples",
+  "gst_aggregator_set_ignore_inactive_pads",
   "gst_aggregator_set_latency",
   "gst_aggregator_set_src_caps",
   "gst_aggregator_simple_get_next_time",
   "gst_app_sink_get_max_buffers",
   "gst_app_sink_get_wait_on_eos",
   "gst_app_sink_is_eos",
+  "gst_app_sink_pull_object",
   "gst_app_sink_pull_preroll",
   "gst_app_sink_pull_sample",
   "gst_app_sink_set_buffer_list_support",
   "gst_app_sink_set_emit_signals",
   "gst_app_sink_set_max_buffers",
   "gst_app_sink_set_wait_on_eos",
+  "gst_app_sink_try_pull_object",
   "gst_app_sink_try_pull_preroll",
   "gst_app_sink_try_pull_sample",
   "gst_app_src_end_of_stream",
   "gst_audio_info_init",
   "gst_audio_info_is_equal",
   "gst_audio_info_new",
+  "gst_audio_info_new_from_caps",
   "gst_audio_info_set_format",
   "gst_audio_info_to_caps",
   "gst_audio_level_meta_api_get_type",
   "gst_codec_utils_aac_get_profile",
   "gst_codec_utils_aac_get_sample_rate",
   "gst_codec_utils_aac_get_sample_rate_from_index",
+  "gst_codec_utils_caps_get_mime_codec",
   "gst_codec_utils_h264_caps_set_level_and_profile",
   "gst_codec_utils_h264_get_level",
   "gst_codec_utils_h264_get_level_idc",
   "gst_codec_utils_h264_get_profile",
+  "gst_codec_utils_h264_get_profile_flags_level",
   "gst_codec_utils_h265_caps_set_level_tier_and_profile",
   "gst_codec_utils_h265_get_level",
   "gst_codec_utils_h265_get_level_idc",
   "gst_debug_log",
   "gst_debug_log_default",
   "gst_debug_log_get_line",
+  "gst_debug_log_literal",
   "gst_debug_log_valist",
   "gst_debug_message_get",
   "gst_debug_print_stack_trace",
   "gst_discoverer_audio_info_get_max_bitrate",
   "gst_discoverer_audio_info_get_sample_rate",
   "gst_discoverer_container_info_get_streams",
+  "gst_discoverer_container_info_get_tags",
   "gst_discoverer_discover_uri",
   "gst_discoverer_discover_uri_async",
   "gst_discoverer_info_copy",
   "gst_discoverer_stream_info_get_next",
   "gst_discoverer_stream_info_get_previous",
   "gst_discoverer_stream_info_get_stream_id",
+  "gst_discoverer_stream_info_get_stream_number",
   "gst_discoverer_stream_info_get_stream_type_nick",
   "gst_discoverer_stream_info_get_tags",
   "gst_discoverer_stream_info_get_toc",
   "gst_element_factory_can_src_all_caps",
   "gst_element_factory_can_src_any_caps",
   "gst_element_factory_create",
+  "gst_element_factory_create_full",
+  "gst_element_factory_create_valist",
+  "gst_element_factory_create_with_properties",
   "gst_element_factory_find",
   "gst_element_factory_get_author",
   "gst_element_factory_get_description",
   "gst_element_factory_get_metadata",
   "gst_element_factory_get_metadata_keys",
   "gst_element_factory_get_num_pad_templates",
+  "gst_element_factory_get_skip_documentation",
   "gst_element_factory_get_static_pad_templates",
   "gst_element_factory_get_uri_protocols",
   "gst_element_factory_get_uri_type",
   "gst_element_factory_list_get_elements",
   "gst_element_factory_list_is_type",
   "gst_element_factory_make",
+  "gst_element_factory_make_full",
+  "gst_element_factory_make_valist",
+  "gst_element_factory_make_with_properties",
   "gst_element_foreach_pad",
   "gst_element_foreach_sink_pad",
   "gst_element_foreach_src_pad",
   "gst_element_state_change_return_get_name",
   "gst_element_state_get_name",
   "gst_element_sync_state_with_parent",
+  "gst_element_type_set_skip_documentation",
   "gst_element_unlink",
   "gst_element_unlink_many",
   "gst_element_unlink_pads",
   "gst_event_new_instant_rate_change",
   "gst_event_new_instant_rate_sync_time",
   "gst_event_new_latency",
+  "gst_event_new_mpegts_section",
   "gst_event_new_navigation",
   "gst_event_new_protection",
   "gst_event_new_qos",
   "gst_gl_framebuffer_get_id",
   "gst_gl_framebuffer_new",
   "gst_gl_framebuffer_new_with_default_depth",
+  "gst_gl_get_affine_transformation_meta_as_ndc",
   "gst_gl_get_plane_data_size",
   "gst_gl_get_plane_start",
   "gst_gl_handle_context_query",
   "gst_gl_memory_read_pixels",
   "gst_gl_memory_setup_buffer",
   "gst_gl_memory_texsubimage",
+  "gst_gl_multiply_matrix4",
   "gst_gl_overlay_compositor_add_caps",
   "gst_gl_overlay_compositor_draw_overlays",
   "gst_gl_overlay_compositor_free_overlays",
   "gst_gl_renderbuffer_get_id",
   "gst_gl_renderbuffer_get_width",
   "gst_gl_renderbuffer_init_once",
+  "gst_gl_set_affine_transformation_meta_from_ndc",
   "gst_gl_shader_attach",
   "gst_gl_shader_attach_unlocked",
   "gst_gl_shader_bind_attribute_location",
   "gst_h264_dpb_get_pictures_short_term_ref",
   "gst_h264_dpb_get_short_ref_by_pic_num",
   "gst_h264_dpb_get_size",
+  "gst_h264_dpb_has_empty_frame_buffer",
   "gst_h264_dpb_is_full",
   "gst_h264_dpb_mark_all_non_ref",
   "gst_h264_dpb_needs_bump",
   "gst_h264_dpb_num_ref_pictures",
   "gst_h264_dpb_perform_memory_management_control_operation",
   "gst_h264_dpb_set_interlaced",
+  "gst_h264_dpb_set_last_output",
   "gst_h264_dpb_set_max_num_frames",
   "gst_h264_dpb_set_max_num_pics",
+  "gst_h264_dpb_set_max_num_reorder_frames",
   "gst_h264_nal_parser_free",
   "gst_h264_nal_parser_new",
   "gst_h264_parse_pps",
   "gst_mpegts_scte_cancel_new",
   "gst_mpegts_scte_null_new",
   "gst_mpegts_scte_sit_new",
+  "gst_mpegts_scte_splice_component_new",
   "gst_mpegts_scte_splice_event_new",
   "gst_mpegts_scte_splice_in_new",
   "gst_mpegts_scte_splice_out_new",
   "gst_parse_launchv",
   "gst_parse_launchv_full",
   "gst_pb_utils_add_codec_description_to_tag_list",
+  "gst_pb_utils_get_caps_description_flags",
   "gst_pb_utils_get_codec_description",
   "gst_pb_utils_get_decoder_description",
   "gst_pb_utils_get_element_description",
   "gst_pb_utils_get_encoder_description",
+  "gst_pb_utils_get_file_extension_from_caps",
   "gst_pb_utils_get_sink_description",
   "gst_pb_utils_get_source_description",
   "gst_pb_utils_init",
   "gst_rtp_buffer_new_copy_data",
   "gst_rtp_buffer_new_take_data",
   "gst_rtp_buffer_pad_to",
+  "gst_rtp_buffer_remove_extension_data",
   "gst_rtp_buffer_set_csrc",
   "gst_rtp_buffer_set_extension",
   "gst_rtp_buffer_set_extension_data",
   "gst_rtp_hdrext_set_ntp_64",
   "gst_rtp_header_extension_class_set_uri",
   "gst_rtp_header_extension_create_from_uri",
+  "gst_rtp_header_extension_get_direction",
   "gst_rtp_header_extension_get_id",
   "gst_rtp_header_extension_get_max_size",
   "gst_rtp_header_extension_get_sdp_caps_field_name",
   "gst_rtp_header_extension_set_attributes_from_caps",
   "gst_rtp_header_extension_set_attributes_from_caps_simple_sdp",
   "gst_rtp_header_extension_set_caps_from_attributes",
+  "gst_rtp_header_extension_set_caps_from_attributes_helper",
   "gst_rtp_header_extension_set_caps_from_attributes_simple_sdp",
+  "gst_rtp_header_extension_set_direction",
   "gst_rtp_header_extension_set_id",
   "gst_rtp_header_extension_set_non_rtp_sink_caps",
   "gst_rtp_header_extension_set_wants_update_non_rtp_src_caps",
   "gst_rtsp_connection_do_tunnel",
   "gst_rtsp_connection_flush",
   "gst_rtsp_connection_free",
+  "gst_rtsp_connection_get_ignore_x_server_reply",
   "gst_rtsp_connection_get_ip",
   "gst_rtsp_connection_get_read_socket",
   "gst_rtsp_connection_get_remember_session_id",
   "gst_rtsp_connection_set_auth_param",
   "gst_rtsp_connection_set_content_length_limit",
   "gst_rtsp_connection_set_http_mode",
+  "gst_rtsp_connection_set_ignore_x_server_reply",
   "gst_rtsp_connection_set_ip",
   "gst_rtsp_connection_set_proxy",
   "gst_rtsp_connection_set_qos_dscp",
   "gst_rtsp_server_set_thread_pool",
   "gst_rtsp_server_transfer_connection",
   "gst_rtsp_session_allow_expire",
+  "gst_rtsp_session_dup_media",
   "gst_rtsp_session_filter",
   "gst_rtsp_session_get_header",
   "gst_rtsp_session_get_media",
   "gst_rtsp_stream_transport_set_transport",
   "gst_rtsp_stream_transport_set_url",
   "gst_rtsp_stream_unblock_linked",
+  "gst_rtsp_stream_unblock_rtcp",
   "gst_rtsp_stream_update_crypto",
   "gst_rtsp_stream_verify_mcast_ttl",
   "gst_rtsp_strresult",
   "gst_video_caption_meta_get_info",
   "gst_video_caption_type_from_caps",
   "gst_video_caption_type_to_caps",
+  "gst_video_center_rect",
   "gst_video_chroma_from_string",
   "gst_video_chroma_resample",
   "gst_video_chroma_resample_free",
   "gst_video_decoder_allocate_output_frame",
   "gst_video_decoder_allocate_output_frame_with_params",
   "gst_video_decoder_drop_frame",
+  "gst_video_decoder_drop_subframe",
   "gst_video_decoder_finish_frame",
+  "gst_video_decoder_finish_subframe",
   "gst_video_decoder_get_allocator",
   "gst_video_decoder_get_buffer_pool",
   "gst_video_decoder_get_estimate_rate",
   "gst_video_decoder_get_frame",
   "gst_video_decoder_get_frames",
+  "gst_video_decoder_get_input_subframe_index",
   "gst_video_decoder_get_latency",
   "gst_video_decoder_get_max_decode_time",
   "gst_video_decoder_get_max_errors",
   "gst_video_decoder_get_output_state",
   "gst_video_decoder_get_packetized",
   "gst_video_decoder_get_pending_frame_size",
+  "gst_video_decoder_get_processed_subframe_index",
   "gst_video_decoder_get_qos_proportion",
+  "gst_video_decoder_get_subframe_mode",
   "gst_video_decoder_have_frame",
+  "gst_video_decoder_have_last_subframe",
   "gst_video_decoder_merge_tags",
   "gst_video_decoder_negotiate",
   "gst_video_decoder_proxy_getcaps",
   "gst_video_decoder_set_needs_sync_point",
   "gst_video_decoder_set_output_state",
   "gst_video_decoder_set_packetized",
+  "gst_video_decoder_set_subframe_mode",
   "gst_video_decoder_set_use_default_pad_acceptcaps",
   "gst_video_dither_free",
   "gst_video_dither_line",
   "gst_video_info_init",
   "gst_video_info_is_equal",
   "gst_video_info_new",
+  "gst_video_info_new_from_caps",
   "gst_video_info_set_format",
   "gst_video_info_set_interlaced_format",
   "gst_video_info_to_caps",
   "gst_video_multiview_mode_from_caps_string",
   "gst_video_multiview_mode_to_caps_string",
   "gst_video_multiview_video_info_change_mode",
+  "gst_video_orientation_from_tag",
   "gst_video_orientation_get_hcenter",
   "gst_video_orientation_get_hflip",
   "gst_video_orientation_get_vcenter",
   "gst_vp8_token_update_probs_init",
   "gst_vp9_ac_quant",
   "gst_vp9_dc_quant",
+  "gst_vp9_decoder_set_non_keyframe_format_change_support",
   "gst_vp9_dpb_add",
   "gst_vp9_dpb_clear",
   "gst_vp9_dpb_free",
   "gst_vp9_seg_feature_active",
   "gst_vp9_stateful_parser_free",
   "gst_vp9_stateful_parser_new",
+  "gst_vp9_stateful_parser_parse_compressed_frame_header",
   "gst_vp9_stateful_parser_parse_frame_header",
+  "gst_vp9_stateful_parser_parse_uncompressed_frame_header",
   "gst_vulkan_buffer_memory_alloc",
   "gst_vulkan_buffer_memory_init_once",
   "gst_vulkan_buffer_memory_wrapped",
   "gst_webrtc_data_channel_send_string",
   "gst_webrtc_dtls_transport_new",
   "gst_webrtc_dtls_transport_set_transport",
+  "gst_webrtc_error_quark",
   "gst_webrtc_ice_transport_connection_state_change",
   "gst_webrtc_ice_transport_gathering_state_change",
   "gst_webrtc_ice_transport_new_candidate",
   "gst_webrtc_session_description_free",
   "gst_webrtc_session_description_new",
   "gtkglsink",
+  "gtkglsink:rotate-method",
   "gtksink",
   "h-263-encoder-cmp-func",
   "h-263-encoder-cmp-func::bit",
   "jackaudiosink:client",
   "jackaudiosink:client-name",
   "jackaudiosink:connect",
+  "jackaudiosink:low-latency",
+  "jackaudiosink:port-names",
   "jackaudiosink:port-pattern",
   "jackaudiosink:server",
   "jackaudiosink:transport",
   "jackaudiosrc:client",
   "jackaudiosrc:client-name",
   "jackaudiosrc:connect",
+  "jackaudiosrc:low-latency",
+  "jackaudiosrc:port-names",
   "jackaudiosrc:port-pattern",
   "jackaudiosrc:server",
   "jackaudiosrc:transport",
   "matroskademux:max-backtrack-distance",
   "matroskademux:max-gap-time",
   "matroskamux",
+  "matroskamux:cluster-timestamp-offset",
   "matroskamux:creation-time",
   "matroskamux:max-cluster-duration",
   "matroskamux:min-cluster-duration",
   "mfaacenc",
   "mfaacenc:bitrate",
   "mfh264enc",
+  "mfh264enc:adapter-luid",
   "mfh264enc:bframes",
   "mfh264enc:bitrate",
   "mfh264enc:cabac",
+  "mfh264enc:d3d11-aware",
   "mfh264enc:gop-size",
   "mfh264enc:low-latency",
   "mfh264enc:max-bitrate",
   "mfh264enc:ref",
   "mfh264enc:vbv-buffer-size",
   "mfh265enc",
+  "mfh265enc:adapter-luid",
   "mfh265enc:bframes",
   "mfh265enc:bitrate",
+  "mfh265enc:d3d11-aware",
   "mfh265enc:gop-size",
   "mfh265enc:low-latency",
   "mfh265enc:max-bitrate",
   "mfvideosrc:device-path",
   "mfvideosrc:dispatcher",
   "mfvp9enc",
+  "mfvp9enc:adapter-luid",
   "mfvp9enc:bitrate",
+  "mfvp9enc:d3d11-aware",
   "mfvp9enc:gop-size",
   "mfvp9enc:low-latency",
   "mfvp9enc:max-bitrate",
   "mplex:sector-size",
   "mplex:system-headers",
   "mplex:vbr",
+  "msdkav1dec",
+  "msdkh264dec",
+  "msdkh264dec:output-order",
+  "msdkh264enc",
+  "msdkh264enc:b-pyramid",
+  "msdkh264enc:cabac",
+  "msdkh264enc:dblk-idc",
+  "msdkh264enc:frame-packing",
+  "msdkh264enc:intra-refresh-type",
+  "msdkh264enc:low-power",
+  "msdkh264enc:max-qp",
+  "msdkh264enc:max-slice-size",
+  "msdkh264enc:min-qp",
+  "msdkh264enc:p-pyramid",
+  "msdkh264enc:rc-lookahead-ds",
+  "msdkh264enc:trellis",
+  "msdkh264enc:tune",
+  "msdkh265dec",
+  "msdkh265dec:output-order",
+  "msdkh265enc",
+  "msdkh265enc:b-pyramid",
+  "msdkh265enc:dblk-idc",
+  "msdkh265enc:intra-refresh-type",
+  "msdkh265enc:low-power",
+  "msdkh265enc:max-qp",
+  "msdkh265enc:max-slice-size",
+  "msdkh265enc:min-qp",
+  "msdkh265enc:num-tile-cols",
+  "msdkh265enc:num-tile-rows",
+  "msdkh265enc:p-pyramid",
+  "msdkh265enc:transform-skip",
+  "msdkh265enc:tune",
+  "msdkmjpegdec",
+  "msdkmjpegenc",
+  "msdkmjpegenc:quality",
+  "msdkmpeg2dec",
+  "msdkmpeg2dec:output-order",
+  "msdkmpeg2enc",
+  "msdkvc1dec",
+  "msdkvc1dec:output-order",
+  "msdkvp8dec",
+  "msdkvp8dec:output-order",
+  "msdkvp9dec",
+  "msdkvp9dec:output-order",
+  "msdkvp9enc",
+  "msdkvpp",
+  "msdkvpp:async-depth",
+  "msdkvpp:brightness",
+  "msdkvpp:contrast",
+  "msdkvpp:crop-bottom",
+  "msdkvpp:crop-left",
+  "msdkvpp:crop-right",
+  "msdkvpp:crop-top",
+  "msdkvpp:deinterlace-method",
+  "msdkvpp:deinterlace-mode",
+  "msdkvpp:denoise",
+  "msdkvpp:detail",
+  "msdkvpp:force-aspect-ratio",
+  "msdkvpp:frc-algorithm",
+  "msdkvpp:hardware",
+  "msdkvpp:hue",
+  "msdkvpp:mirroring",
+  "msdkvpp:rotation",
+  "msdkvpp:saturation",
+  "msdkvpp:scaling-mode",
+  "msdkvpp:video-direction",
   "msmpeg4v2-encoder-cmp-func",
   "msmpeg4v2-encoder-cmp-func::bit",
   "msmpeg4v2-encoder-cmp-func::chroma",
   "multifilesink:max-file-duration",
   "multifilesink:max-file-size",
   "multifilesink:max-files",
+  "multifilesink:min-keyframe-distance",
   "multifilesink:next-file",
   "multifilesink:post-messages",
   "multifilesrc",
   "netsim:min-delay",
   "nlecomposition",
   "nlecomposition::commited",
+  "nlecomposition:drop-tags",
   "nlecomposition:id",
   "nleoperation",
   "nleoperation::input-priority-changed",
   "nvvp8dec",
   "nvvp8dec!sink",
   "nvvp8dec!src",
+  "nvvp8sldec",
   "nvvp9dec",
   "nvvp9dec!sink",
   "nvvp9dec!src",
+  "nvvp9sldec",
   "oggaviparse",
   "oggdemux",
   "oggmux",
   "openh264enc:slice-mode",
   "openh264enc:usage-type",
   "openjpegdec",
+  "openjpegdec:max-slice-threads",
   "openjpegdec:max-threads",
   "openjpegenc",
   "openjpegenc:num-layers",
   "openjpegenc:num-resolutions",
   "openjpegenc:num-stripes",
+  "openjpegenc:num-threads",
   "openjpegenc:progression-order",
   "openjpegenc:tile-height",
   "openjpegenc:tile-offset-x",
   "osxaudiosrc",
   "osxaudiosrc:device",
   "osxvideosink",
-  "osxvideosink:force-aspect-ratio",
   "osxvideosink:embed",
+  "osxvideosink:force-aspect-ratio",
   "output-selector",
   "output-selector:active-pad",
   "output-selector:pad-negotiation-mode",
   "plugin-adder",
   "plugin-adpcmdec",
   "plugin-adpcmenc",
+  "plugin-aes",
   "plugin-aiff",
   "plugin-alaw",
   "plugin-alpha",
   "plugin-mpegtsmux",
   "plugin-mpg123",
   "plugin-mplex",
+  "plugin-msdk",
   "plugin-mulaw",
   "plugin-multifile",
   "plugin-multipart",
   "rtpbin::request-aux-receiver",
   "rtpbin::request-aux-sender",
   "rtpbin::request-fec-decoder",
+  "rtpbin::request-fec-decoder-full",
   "rtpbin::request-fec-encoder",
   "rtpbin::request-jitterbuffer",
   "rtpbin::request-pt-map",
   "rtph265pay:config-interval",
   "rtphdrextclientaudiolevel",
   "rtphdrextclientaudiolevel:vad",
+  "rtphdrextcolorspace",
   "rtphdrexttwcc",
   "rtphdrexttwcc:n-streams",
   "rtpilbcdepay",
   "rtpqcelpdepay",
   "rtpqdm2depay",
   "rtpreddec",
+  "rtpreddec:payloads",
   "rtpreddec:pt",
   "rtpreddec:received",
   "rtpredenc",
   "rtspsrc:do-rtcp",
   "rtspsrc:do-rtsp-keep-alive",
   "rtspsrc:drop-on-latency",
+  "rtspsrc:ignore-x-server-reply",
   "rtspsrc:is-live",
   "rtspsrc:latency",
   "rtspsrc:location",
   "tsdemux:emit-stats",
   "tsdemux:latency",
   "tsdemux:program-number",
+  "tsdemux:send-scte35-events",
   "tsparse",
   "tsparse:alignment",
   "tsparse:pcr-pid",
   "vaapisink:signal-handoffs",
   "vaapisink:view-id",
   "vaapivc1dec",
+  "vadeinterlace",
+  "vadeinterlace:method",
   "vah264dec",
   "vah265dec",
   "value",
   "valve:drop-mode",
   "vampeg2dec",
   "vapostproc",
+  "vapostproc:disable-passthrough",
   "vavp8dec",
   "vavp9dec",
   "vc1parse",
   "videobox:left",
   "videobox:right",
   "videobox:top",
+  "videocodectestsink",
+  "videocodectestsink:location",
   "videoconvert",
   "videoconvert:alpha-mode",
   "videoconvert:alpha-value",
   "vp9alphadecodebin",
   "vp9dec",
   "vp9enc",
+  "vp9enc:aq-mode",
+  "vp9enc:frame-parallel-decoding",
   "vp9enc:row-mt",
   "vp9enc:tile-columns",
   "vp9enc:tile-rows",
   "vtenc_h264_hw:max-keyframe-interval-duration",
   "vtenc_h264_hw:quality",
   "vtenc_h264_hw:realtime",
+  "vtenc_prores",
+  "vtenc_prores!sink",
+  "vtenc_prores!src",
+  "vtenc_prores:allow-frame-reordering",
+  "vtenc_prores:bitrate",
+  "vtenc_prores:max-keyframe-interval",
+  "vtenc_prores:max-keyframe-interval-duration",
+  "vtenc_prores:preserve-alpha",
+  "vtenc_prores:quality",
+  "vtenc_prores:realtime",
   "vulkancolorconvert",
   "vulkandownload",
   "vulkanimageidentity",
   "wasapi2src",
   "wasapi2src:device",
   "wasapi2src:dispatcher",
+  "wasapi2src:loopback",
   "wasapi2src:low-latency",
   "wasapi2src:mute",
   "wasapi2src:volume",
   "webrtcbin:pending-local-description",
   "webrtcbin:pending-remote-description",
   "webrtcbin:remote-description",
+  "webrtcbin:sctp-transport",
   "webrtcbin:signaling-state",
   "webrtcbin:stun-server",
   "webrtcbin:turn-server",
   "zbar:message",
   "zebrastripe",
   "zebrastripe:threshold"
-]
+]
\ No newline at end of file
index 8068c6e177203ebe1bdaf1e0e38927833df9450e..0fdd2359fdebad668fd406d5dd530e095d8db96c 100644 (file)
@@ -1 +1 @@
-1.19
\ No newline at end of file
+1.20
\ No newline at end of file
index 1eb505b46ae747224ef9ba9042e64afe80d5063a..e96a1aca41af96dba4eb80db282b46dedfc3149b 100644 (file)
@@ -1,3 +1,18 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gst-editing-services.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 === release 1.19.90 ===
 
 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 159e440e245353293f8be68af48b9bcfb67530c8..e97030460a4454eb242b852da963b248f1f44775 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-editing-services 1.19.90.
+This is GStreamer gst-editing-services 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index d92ca09b9250a98827906d151c2dc54caab50306..077c182b9e725ae755e876fe457308c24660985c 100644 (file)
@@ -30,6 +30,16 @@ GStreamer library for creating audio and video editors
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 36b5a7350664986295c1d5384832a482f9248052..8e6244222846d4c59ac7dbf62a5d5e9894a3bc4b 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-editing-services', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index ed6f3475fbab19519284a4f955ded52455d9db2a..25508345c68739a4e2fe1295919c807d4e08fad3 100644 (file)
@@ -1,4 +1,4 @@
-project('gst-examples', 'c', version : '1.19.90', license : 'LGPL')
+project('gst-examples', 'c', version : '1.20.0', license : 'LGPL')
 
 cc = meson.get_compiler('c')
 m_dep = cc.find_library('m', required : false)
index e20e21ee1dca312426e930de479dd17533e8f5b8..5bd1b921d689c07f85fbf44fe4a1774d771f6e1a 100644 (file)
@@ -1 +1 @@
-project('gst-integration-testsuites', [], version: '1.19.90', meson_version : '>= 0.59', license: 'LGPL')
+project('gst-integration-testsuites', [], version: '1.20.0', meson_version : '>= 0.59', license: 'LGPL')
index ed707bdfaf0b73ac7ad9bdea00248c808963bb2a..75f50d3161dfe02bde7bdaf635b738120be31b02 100644 (file)
@@ -1,3 +1,18 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gst-libav.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 2022-01-28 19:58:55 +0100  Mathieu Duponchelle <mathieu@centricular.com>
 
        * docs/gst_plugins_cache.json:
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 0349d12b7d19a5e4a089d53be2474cf5a515a02e..dc40f3cc5f7b66c59407056d51f8cc0c4146998f 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-libav 1.19.90.
+This is GStreamer gst-libav 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 2bd3df03a2cc7dd54d7044be316cdd472e51250b..50f7d81797f96d81cde08f2a4ad93b3b63662069 100644 (file)
@@ -32,6 +32,16 @@ colorspace conversion elements.
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 0d6b77d43eac5b4699062c103a63a8959ee8e25e..b281b6377e27ff2229e22aa6154c0fe84918387b 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-libav', 'c', 'cpp',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index 9d7066231628583d52e64077446ee02ef12e3f00..d3f9e5aaa53e6a254bcc0fb32a7be342b6beedd7 100644 (file)
@@ -1,3 +1,18 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gst-omx.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 === release 1.19.90 ===
 
 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index b5aa9980f74e26c543b8eed7f1d431e8c1b9a59a..3d51f2e64739b083f1571d46906bb25bb3c636be 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-omx 1.19.90.
+This is GStreamer gst-omx 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index e11d11723cf741efda3404090b1b0e3f4913e4e2..960398364ff7cb41681cce7063ccb78f577c11c4 100644 (file)
@@ -31,6 +31,16 @@ a basic collection of elements
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 2fd4f5df6cd82b1008a4e8165148797a8ec03f5f..bd791060fcd38e077ef8e142e7f9d53415b57a98 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-omx', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index 6a93bec96a7d5439897bb22c7ebb3952b8045081..f2b3ccd3efee5835a8940024f9b2c0fdb0d9ec11 100644 (file)
@@ -1,3 +1,19 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * README:
+       * RELEASE:
+       * gst-plugins-bad.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 2022-02-02 09:58:15 +0100  Stéphane Cerveau <scerveau@collabora.com>
 
        * ext/dash/gstdashsink.c:
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 17e60d01d7437f423822bfed3a39e56b53b266d6..1e442e6bc08d58055438978f4b0ea875cecb18b4 100644 (file)
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
 
 WHAT IT IS
 ----------
index a22cdf4adcc3d746432375deae13aacbb825ad90..2244892111b79c0a984366236d06a5ace802f53c 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-plugins-bad 1.19.90.
+This is GStreamer gst-plugins-bad 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 3c65c70e96ff6c61216adeb2b0a091a13a2d3788..3ce24dd54410e9a15ed6c8c1dcac01c1795ce617 100644 (file)
@@ -33,6 +33,16 @@ real live maintainer, or some actual wide use.
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index d79cb64bcfd906945abd0c2d40e621af89ff1eb0..37e1a1507c1df57feda8d3339dd07681be6a8bea 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-plugins-bad', 'c', 'cpp',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index 66cf2cbef510257594b87d1ebc17dcc2d343f96e..25fdf7fe732e15ef68637356107fd8c9f9ee5310 100644 (file)
@@ -1,3 +1,19 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * README:
+       * RELEASE:
+       * gst-plugins-base.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 2022-02-03 18:18:03 +0000  Tim-Philipp Müller <tim@centricular.com>
 
        * gst-libs/gst/video/meson.build:
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 17e60d01d7437f423822bfed3a39e56b53b266d6..1e442e6bc08d58055438978f4b0ea875cecb18b4 100644 (file)
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
 
 WHAT IT IS
 ----------
index 2128ca5951e6d74b6b03fe735cf2fd20e3657ae2..7772ac9f111cc9d6c0b634f7ea8653d1311d0bad 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-plugins-base 1.19.90.
+This is GStreamer gst-plugins-base 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 6fcb9be8ce92674db07182fe262cadf2d8c1bd58..38991a5900e12e51a6ef9c881a9a7a0285559d83 100644 (file)
@@ -34,6 +34,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index fc7746c4b736cf0342c1c1fe7b0cf16a7cc99aec..5ad1ab3addffb7ffef9d9230bdebb0d1de34e9bc 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-plugins-base', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index 9ea6aab2ab1e1ce40afde086ee9e6d2f821e4dc3..5db352d7e8e869a93c63eb8eed952c3d658fd03d 100644 (file)
@@ -1,3 +1,20 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * README:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 2022-02-01 05:07:04 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
 
        * docs/meson.build:
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 17e60d01d7437f423822bfed3a39e56b53b266d6..1e442e6bc08d58055438978f4b0ea875cecb18b4 100644 (file)
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
 
 WHAT IT IS
 ----------
index 796bde464e71bc9f72a989a361ab1bb2cafbcef7..e038f04146b972ce1ed93bddaa163ede69a6d5a7 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-plugins-good 1.19.90.
+This is GStreamer gst-plugins-good 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index e64ec9bd60298903e0dd1babc4228ff61896d56a..098c7c62a2fea61a49727a262a0fb90f8f2a72ec 100644 (file)
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.19.90 FLV muxer",
+                        "default": "GStreamer 1.20.0 FLV muxer",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.19.90 FLV muxer",
+                        "default": "GStreamer 1.20.0 FLV muxer",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer/1.19.90",
+                        "default": "GStreamer/1.20.0",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer souphttpsrc 1.19.90 ",
+                        "default": "GStreamer souphttpsrc 1.20.0 ",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
index a8070273508efee70c19647eb8090dd470e45efb..232c33c74dacbe2a664114c1208b9746e4c28e7d 100644 (file)
@@ -32,6 +32,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 13b8f10a4fe728c65f6fe213ef2cc51e005088dd..c1a5ef16ef8c25ba7b0b58c6ed9531f88390ddc3 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-plugins-good', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index 337603ac4b7636b084db66cdb2749b40b20c925a..acaeb60e92acee12ae6fab884613ab4f8f51d65b 100644 (file)
@@ -1,3 +1,19 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * README:
+       * RELEASE:
+       * gst-plugins-ugly.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 === release 1.19.90 ===
 
 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 17e60d01d7437f423822bfed3a39e56b53b266d6..1e442e6bc08d58055438978f4b0ea875cecb18b4 100644 (file)
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
 
 WHAT IT IS
 ----------
index 4d0a301feef7a0b76a04d08710125d060acfb604..e44e809979e5fd8dde3474291e379c79249b8a75 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-plugins-ugly 1.19.90.
+This is GStreamer gst-plugins-ugly 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 68dba52806200ef0f1bddf8544d757052ca6cef6..2aa374b178c2266709776af2875311c8f1569c10 100644 (file)
@@ -33,6 +33,16 @@ might be widely known to present patent problems.
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 2b812c01330f82544a6d136cae81b2b95c95eb07..27be125c4f908e9b7ddb5af13ba5f888b3170124 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-plugins-ugly', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index 31b9b95051aef4b3aab061b0166b3d6e45a934ec..47648ab63d89ba3be45d66f8d6fc82dda1ffa46b 100644 (file)
@@ -1,3 +1,18 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gst-python.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 === release 1.19.90 ===
 
 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 1d904728116b2ec08bf8c567751ec438018a4b88..5bb5fdd19f8476e1b9210da09aae4cfa525b0659 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-python 1.19.90.
+This is GStreamer gst-python 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 39cdcbb3d8bc94dd11814d6cadcdb5dc70573982..95c22b0138bb87f83747577966c984c254e9c6e7 100644 (file)
@@ -30,6 +30,16 @@ GStreamer Python Bindings is a set of overrides and Gst fundamental types handli
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index c197664deca786dab9f666f16728535a48cb1e36..acc3502e3ded92bdc118a2ee07279734134188ee 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-python', 'c', 'cpp',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'c_std=gnu99',
index a63bbc599df4ef1c39f082629bca2c3461167f69..df039f6d6d403f7a1ec34416d7f8ccb1f2a4fdbf 100644 (file)
@@ -1,3 +1,19 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-rtsp-server.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 === release 1.19.90 ===
 
 2022-01-28 14:28:35 +0000  Tim-Philipp Müller <tim@centricular.com>
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index b7f80bf179f19feb21f0fab3b87d96fd9a6325d3..72467c730ad008191ed4beb0f7572a8f2d7b0207 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gst-rtsp-server 1.19.90.
+This is GStreamer gst-rtsp-server 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 509ca4e68339c2cfe9691199b816f8f7f9986c59..e9367b465672b3ad15b53831c2cc1770abba9054 100644 (file)
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer/1.19.90",
+                        "default": "GStreamer/1.20.0",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
index 7a097e05634cbec720425c6f6b475a6ea2a0b944..cac5f62977dd422c42f87c1ad845686b5ca9a45b 100644 (file)
@@ -30,6 +30,16 @@ RTSP server library based on GStreamer
    </GitRepository>
 </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index 834f20d1f22160adaed67bb17a54daa1a47c47e2..35953af72c06837a352395c7315bda94ec344b83 100644 (file)
@@ -1,5 +1,5 @@
 project('gst-rtsp-server', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : ['warning_level=1', 'buildtype=debugoptimized'])
 
index b48ea7154846e1a57004101c56e3db956eb19a29..9fbd996104527efddbb01b98762c982e99f132cf 100644 (file)
@@ -1,4 +1,4 @@
-project('gstreamer-sharp', ['cs', 'c'], version: '1.19.90',
+project('gstreamer-sharp', ['cs', 'c'], version: '1.20.0',
     meson_version : '>= 0.59', license: 'LGPL')
 
 if host_machine.system() == 'osx'
index 0fe1bf7176f4b27748b1d2375f51d3ca468415c6..4f344e868bd690710adf320d4053c6c54d5728d9 100644 (file)
@@ -17,8 +17,8 @@ namespace Gst.PbUtils {
                public const string ENCODING_CATEGORY_ONLINE_SERVICE = @"online-service";
                public const string ENCODING_CATEGORY_STORAGE_EDITING = @"storage-editing";
                public const int PLUGINS_BASE_VERSION_MAJOR = 1;
-               public const int PLUGINS_BASE_VERSION_MICRO = 90;
-               public const int PLUGINS_BASE_VERSION_MINOR = 19;
+               public const int PLUGINS_BASE_VERSION_MICRO = 0;
+               public const int PLUGINS_BASE_VERSION_MINOR = 20;
                public const int PLUGINS_BASE_VERSION_NANO = 0;
 #endregion
        }
index b63105a303a03d773a41c7951aac259e06eb8006..48171a69fdb02865c7187f1e01b768528b1db5c1 100644 (file)
@@ -170,8 +170,8 @@ namespace Gst {
                public const int VALUE_LESS_THAN = -1;
                public const int VALUE_UNORDERED = 2;
                public const int VERSION_MAJOR = 1;
-               public const int VERSION_MICRO = 90;
-               public const int VERSION_MINOR = 19;
+               public const int VERSION_MICRO = 0;
+               public const int VERSION_MINOR = 20;
                public const int VERSION_NANO = 0;
 #endregion
        }
index 3e879bba1dce427cd3da08a4a826847abda29ead..85dd67c0ac3df5ede14a6e027aa16cabaa71e890 100644 (file)
       <constant value="1" ctype="gint" gtype="gint" name="VALUE_GREATER_THAN" />
       <constant value="-1" ctype="gint" gtype="gint" name="VALUE_LESS_THAN" />
       <constant value="2" ctype="gint" gtype="gint" name="VALUE_UNORDERED" />
-      <constant value="1" ctype="gint" gtype="gint"    name="VERSION_MAJOR" />
-      <constant value="90" ctype="gint" gtype="gint"    name="VERSION_MICRO" />
-      <constant value="19" ctype="gint" gtype="gint"    name="VERSION_MINOR" />
-      <constant value="0" ctype="gint" gtype="gint"    name="VERSION_NANO" />
+      <constant value="1" ctype="gint" gtype="gint"     name="VERSION_MAJOR" />
+      <constant value="0" ctype="gint" gtype="gint"     name="VERSION_MICRO" />
+      <constant value="20" ctype="gint" gtype="gint"     name="VERSION_MINOR" />
+      <constant value="0" ctype="gint" gtype="gint"     name="VERSION_NANO" />
     </object>
     <class name="Parse" cname="GstParse" disable_void_ctor="1">
       <method name="ParseBinFromDescription" cname="gst_parse_bin_from_description" shared="true">
       <constant value="file-extension" ctype="gchar*" gtype="gchar*" name="ENCODING_CATEGORY_FILE_EXTENSION" />
       <constant value="online-service" ctype="gchar*" gtype="gchar*" name="ENCODING_CATEGORY_ONLINE_SERVICE" />
       <constant value="storage-editing" ctype="gchar*" gtype="gchar*" name="ENCODING_CATEGORY_STORAGE_EDITING" />
-      <constant value="1" ctype="gint" gtype="gint"    name="PLUGINS_BASE_VERSION_MAJOR" />
-      <constant value="90" ctype="gint" gtype="gint"    name="PLUGINS_BASE_VERSION_MICRO" />
-      <constant value="19" ctype="gint" gtype="gint"    name="PLUGINS_BASE_VERSION_MINOR" />
-      <constant value="0" ctype="gint" gtype="gint"    name="PLUGINS_BASE_VERSION_NANO" />
+      <constant value="1" ctype="gint" gtype="gint"     name="PLUGINS_BASE_VERSION_MAJOR" />
+      <constant value="0" ctype="gint" gtype="gint"     name="PLUGINS_BASE_VERSION_MICRO" />
+      <constant value="20" ctype="gint" gtype="gint"     name="PLUGINS_BASE_VERSION_MINOR" />
+      <constant value="0" ctype="gint" gtype="gint"     name="PLUGINS_BASE_VERSION_NANO" />
     </object>
   </namespace>
   <namespace name="Gst.Rtp" library="gstrtp-1.0-0.dll">
index 390e377df1ff020923c23d056198c0f760182956..25f336e04f1f32f674f21a3967b5434b55f09911 100644 (file)
@@ -1,3 +1,18 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gstreamer-vaapi.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 2022-01-30 09:38:48 +0100  Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
 
        * gst/vaapi/gstvaapipluginutil.c:
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index ad28e846d84428d5aacf971348d8f6afb788d8d6..24c0ab1134704d3b41010307148b3af83d829b04 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer gstreamer-vaapi 1.19.90.
+This is GStreamer gstreamer-vaapi 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 69de91328b935e7305dcaeb73dab27275b039762..0cbaa83f29d92a30f156797be2b4f50d361beca0 100644 (file)
     </GitRepository>
   </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index d16caec8d7416315a0dd8f7e2071840450b53334..2141fe03181eadb92259f63d19208e5f4247a4dc 100644 (file)
@@ -1,5 +1,5 @@
 project('gstreamer-vaapi', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
index d95bda41613f84d42097e5a4c3c2a829e167482b..da6d04bd92b6bc2dd28d480f51c3286a129af271 100644 (file)
@@ -1,3 +1,19 @@
+=== release 1.20.0 ===
+
+2022-02-03 19:53:25 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * NEWS:
+       * README:
+       * RELEASE:
+       * gstreamer.doap:
+       * meson.build:
+         Release 1.20.0
+
+2022-02-03 19:53:18 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.0
+
 2022-02-02 18:06:49 +1100  Matthew Waters <matthew@centricular.com>
 
        * gst/gst.c:
index 1a512c18485caa24196288774c817a7ab5763f23..eb637c9ed8a0924143490915c87b639884d37b72 100644 (file)
@@ -1,19 +1,11 @@
 GStreamer 1.20 Release Notes
 
-GStreamer 1.20 has not been released yet. It is scheduled for release in
-late January / early February 2022.
-
-1.19.x is the unstable development version that is being developed in
-the git main branch and which will eventually result in 1.20, and
-1.19.90 is the first release candidate in that series (1.20rc1).
-
-1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
-1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
+GStreamer 1.20.0 was released on 3 February 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
+Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
 
 Introduction
 
@@ -36,16 +28,16 @@ Highlights
 -   RTP header extensions: unified support in RTP depayloader and
     payloader base classes
 -   SMPTE 2022-1 2-D Forward Error Correction support
--   Smart encoding (passthrough) support for VP8, VP9, H.265 in
+-   Smart encoding (pass through) support for VP8, VP9, H.265 in
     encodebin and transcodebin
 -   Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
     support experimental)
 -   Video decoder subframe support
 -   Video decoder automatic packet-loss, data corruption, and keyframe
     request handling for RTP / WebRTC / RTSP
--   MP4 and Matroska muxers now support profile/level/resolution changes
-    for H264/H265 input streams (i.e. codec data changing on the fly)
--   MP4 muxing mode that initially creates a fragmented mp4 which is
+-   mp4 and Matroska muxers now support profile/level/resolution changes
+    for H.264/H.265 input streams (i.e. codec data changing on the fly)
+-   mp4 muxing mode that initially creates a fragmented mp4 which is
     converted to a regular mp4 on EOS
 -   Audio support for the WebKit Port for Embedded (WPE) web page source
     element
@@ -54,7 +46,7 @@ Highlights
 -   NVIDIA memory:NVMM support for OpenGL glupload and gldownload
     elements
 -   Many WebRTC improvements
--   The new VA-API plugin implemention fleshed out with more decoders
+-   The new VA-API plugin implementation fleshed out with more decoders
     and new postproc elements
 -   AppSink API to retrieve events in addition to buffers and buffer
     lists
@@ -64,8 +56,8 @@ Highlights
 -   Updated Rust bindings and many new Rust plugins
 -   Improved support for custom minimal GStreamer builds
 -   Support build against FFmpeg 5.0
--   Linux Stateless CODEC support gained MPEG2 and VP9
--   Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
+-   Linux Stateless CODEC support gained MPEG-2 and VP9
+-   Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
 -   Lots of new plugins, features, performance improvements and bug
     fixes
 
@@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
 freedesktop.org GitLab.
 
 In addition to these separate git repositories there was a gst-build
-module that would use the Meson build systems’s subproject feature to
+module that would use the Meson build system’s subproject feature to
 download each individual module and then build everything in one go. It
 would also provide an uninstalled development environment that made it
 easy to work on GStreamer and use or test versions other than the
@@ -163,7 +155,7 @@ WebM alpha decoding
     -   vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
         the regular vp8dec and vp9dec software decoders to decode
         regular and alpha streams and combine them again. To decodebin
-        these look like regular decoders which ju
+        these look like regular decoders.
     -   The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
         decode both alpha and non-alpha stream with a single decoder
         instance
@@ -257,7 +249,7 @@ AppSink and AppSrc improvements
     or buffer list, whatever is next in the queue.
 
     EOS events will be filtered and will not be returned. EOS handling
-    can be done the ususal way, same as with _pull_sample().
+    can be done the usual way, same as with _pull_sample().
 
 -   appsrc: allow configuration of internal queue limits in time and
     buffers and add leaky mode.
@@ -312,8 +304,8 @@ Convenience API for custom GstMetas
     for most scenarios is negligible however. This new API is useful for
     experimentation or proprietary metas, but also has some limitations:
     it can only be used if there’s a single producer of these metas;
-    it’s not allowed to register the same custom meta multiple times or
-    from multiple places.
+    registering the same custom meta multiple times or from multiple
+    places is not allowed.
 
 Additional Element Properties on Encoding Profiles
 
@@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
     facilitate minimal custom GStreamer builds.
 
 -   A number of new macros have been added to declare and create
-    per-element and per-pluginfeature register functions in all plugins,
-    and then call those from the per-plugin plugin_init functions:
+    per-element and per-plugin feature register functions in all
+    plugins, and then call those from the per-plugin plugin_init
+    functions:
 
     -   GST_ELEMENT_REGISTER_DEFINE,
         GST_DEVICE_PROVIDER_REGISTER_DEFINE,
@@ -432,13 +425,13 @@ Improved support for custom minimal GStreamer builds
         function defined by the REGISTER_DEFINE macro
     -   and various variants for advanced use cases.
 
--   This means that applications can call the per-element and
-    per-pluginfeature registration functions for only the elements they
-    need instead of registering plugins as a whole with all kinds of
-    elements that may not be required (e.g. encoder and decoder instead
-    of just decoder). In case of static linking all unused functions and
-    their dependencies would be removed in this case by the linker,
-    which helps minimise binary size for custom builds.
+-   This means that applications can call the per-element and per-plugin
+    feature registration functions for only the elements they need
+    instead of registering plugins as a whole with all kinds of elements
+    that may not be required (e.g. encoder and decoder instead of just
+    decoder). In case of static linking all unused functions and their
+    dependencies would be removed in this case by the linker, which
+    helps minimise binary size for custom builds.
 
 -   gst_init() will automatically call a gst_init_static_plugins()
     function if one exists.
@@ -477,8 +470,8 @@ New elements
 
 -   openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
 
--   qroverlay, debugqroverlay: new elements that allows overlaying data
-    on top of video in form of a QR code
+-   qroverlay, debugqroverlay: new elements that allow overlaying data
+    on top of video in the form of a QR code
 
 -   cvtracker: new OpenCV-based tracker element
 
@@ -535,9 +528,9 @@ New elements
         closed captions stream
     -   cea608tojson: Converts CEA-608 Closed Captions to a JSON
         representation
-    -   cmafmux: CMAF fragmented MP4 muxer
-    -   dashmp4mux: DASH fragmented MP4 muxer
-    -   isofmp4mux: ISO fragmented MP4 muxer
+    -   cmafmux: CMAF fragmented mp4 muxer
+    -   dashmp4mux: DASH fragmented mp4 muxer
+    -   isofmp4mux: ISO fragmented mp4 muxer
     -   ebur128level: EBU R128 Loudness Level Measurement
     -   ffv1dec: FFV1 video decoder
     -   gtk4paintablesink: GTK4 video sink, which provides a
@@ -577,7 +570,7 @@ New elements
 
 -   New hardware accelerated elements for Linux:
 
-    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG2 decoders
+    -   v4l2slmpeg2dec: Support for Linux Stateless MPEG-2 decoders
     -   v4l2slvp9dec: Support for Linux Stateless VP9 decoders
     -   v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
         layer decoding
@@ -630,7 +623,7 @@ New element features and additions
     rewriting input captions, for example when the input is CDP then
     sequence counters are rewritten, time codes are dropped and
     potentially re-injected if the input video frame had a time code
-    meta. This can also lead to the input drifting from synchronization,
+    meta. This can also lead to the input drifting from synchronisation,
     when there isn’t enough padding in the input stream to catch up. In
     that case the element will start dropping old caption buffers once
     the number of buffers in its internal queue reaches a certain limit
@@ -640,7 +633,7 @@ New element features and additions
 
 -   ccconverter: new "cdp-mode" property to specify which sections to
     include in CDP packets (timecode, CC data, service info). Various
-    software, including ffmpeg’s Decklink support, fails parsing CDP
+    software, including FFmpeg’s Decklink support, fails parsing CDP
     packets that contain anything but CC data in the CDP packets.
 
 -   clocksync: new "sync-to-first" property for automatic timestamp
@@ -677,7 +670,7 @@ New element features and additions
         alpha (also glvideomixer and other GstVideoAggregator
         subclasses)
 
--   dashsink: add h265 codec support and signals for allowing custom
+-   dashsink: add H.265 codec support and signals for allowing custom
     playlist/fragment output
 
 -   decodebin3:
@@ -702,7 +695,7 @@ New element features and additions
     -   add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
         re-encode where needed and otherwise pass through encoded video
         as-is).
-    -   H264/H265 smart encoding improvements: respect user-specified
+    -   H.264/H.265 smart encoding improvements: respect user-specified
         stream-format, but if not specified default to avc3/hvc1 with
         in-band SPS/PPS/VPS signalling for more flexibility.
     -   new encodebin2 element with dynamic/sometimes source pads in
@@ -759,7 +752,7 @@ New element features and additions
 -   matroskademux, matroskamux: Add support for ffv1, a lossless
     intra-frame video coding format.
 
--   matroskamux: accept in-band SPS/PPS/VPS for H264 and H265
+-   matroskamux: accept in-band SPS/PPS/VPS for H.264 and H.265
     (i.e. stream-format avc3 and hev1) which allows on-the-fly
     profile/level/resolution changes.
 
@@ -770,9 +763,9 @@ New element features and additions
 -   rtpsrc: add "caps" property to allow explicit setting of the caps
     where needed
 
--   mpegts: support SCTE-35 passthrough via new "send-scte35-events"
+-   mpegts: support SCTE-35 pass-through via new "send-scte35-events"
     property on MPEG-TS demuxer tsdemux. When enabled, SCTE 35 sections
-    (eg ad placement opportunities) are forwarded as events donwstream
+    (e.g. ad placement opportunities) are forwarded as events downstream
     where they can be picked up again by mpegtsmux. This required a
     semantic change in the SCTE-35 section API: timestamps are now in
     running time instead of muxer pts.
@@ -782,7 +775,7 @@ New element features and additions
 
 -   mpegtsmux:
 
-    -   More conformance improvements to make MPEG-TS analyzers happy:
+    -   More conformance improvements to make MPEG-TS analysers happy:
         -   PCR timing accuracy: Improvements to the way mpegtsmux
             outputs PCR observations in CBR mode, so that a PCR
             observation is always inserted when needed, so that we never
@@ -809,11 +802,11 @@ New element features and additions
     -   support H.264 avc3 and H.265 hvc1 stream formats as input where
         the codec data is signalled in-band inside the bitstream instead
         of caps/file headers.
-    -   support profile/level/resolution changes for H264/H265 input
+    -   support profile/level/resolution changes for H.264/H.265 input
         streams (i.e. codec data changing on the fly). Each codec_data
         is put into its own SampleTableEntry inside the stsd, unless the
         input is in avc3 stream format in which case it’s written
-        in-band an not in the headers.
+        in-band and not in the headers.
 
 -   multifilesink: new ""min-keyframe-distance"" property to make
     minimum distance between keyframes in next-file=key-frame mode
@@ -867,7 +860,9 @@ New element features and additions
     work, the soup plugin now tries to determine the libsoup version
     used by the application (and its other dependencies) at runtime on
     systems where GStreamer is linked dynamically. libsoup3 support is
-    still considered somewhat experimental at this point.
+    still considered somewhat experimental at this point. Distro
+    packagers please take note of the souphttpsrc plugin dependency
+    changes mentioned in the build and dependencies section below.
 
 -   srtsrc, srtsink: add signals for the application to accept/reject
     incoming connections
@@ -1045,7 +1040,7 @@ Core
 -   GstSharedTaskPool: new “shared” task pool subclass with slightly
     different default behaviour than the existing GstTaskPool which
     would create unlimited number of threads for new tasks. The shared
-    taskpool creates up to N threads (default: 1) and then distributes
+    task pool creates up to N threads (default: 1) and then distributes
     pending tasks to those threads round-robin style, and blocks if no
     thread is available. It is possible to join tasks. This can be used
     by plugins to implement simple multi-threaded processing and is used
@@ -1078,20 +1073,20 @@ Plugins Base Utils library
     extension for given caps.
 
 -   gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
-    flags, and level from H264 AvcC codec_data. The format of H264 AVCC
-    extradata/sequence_header is documented in the ITU-T H.264
+    flags, and level from H.264 AvcC codec_data. The format of H.264
+    AVCC extradata/sequence_header is documented in the ITU-T H.264
     specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
     section 5.3.3.1.2.
 
 -   gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
     compatible MIME codec string codec. Useful for providing the codecs
-    field inside the Content-Type HTTP header for containerized formats,
-    such as mp4 or matroska.
+    field inside the Content-Type HTTP header for container formats,
+    such as mp4 or Matroska.
 
 GStreamer OpenGL integration library and plugins
 
--   glcolorconvert: added suppport for converting the video formats
-    A420, AV12, BGR, BGRA, RGBP and BGRP.
+-   glcolorconvert: added support for converting the video formats A420,
+    AV12, BGR, BGRA, RGBP and BGRP.
 
 -   Added support to GstGLBuffer for persistent buffer mappings where a
     Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
@@ -1246,15 +1241,15 @@ GstCodecs and Video Parsers
 -   Support for render delays to improve throughput across all CODECs
     (used with NVDEC and V4L2).
 -   lots of improvements to parsers and the codec parsing decoder base
-    classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
-    hardware-accelerate decoder APIs.
+    classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
+    hardware-accelerated decoder APIs.
 
 Bindings support
 
 -   gst_allocation_params_new() allocates a GstAllocationParams struct
     on the heap. This should only be used by bindings (and freed via
-    gst_allocation_params_free() then). In C code you would allocate
-    this on the stack and only init it in place.
+    gst_allocation_params_free() afterwards). In C code you would
+    allocate this on the stack and only init it in place.
 
 -   gst_debug_log_literal() can be used to log a string to the debug log
     without going through any printf format expansion and associated
@@ -1370,12 +1365,12 @@ Miscellaneous other changes and enhancements
     resets (e.g. because device power cycles), by emitting the “synced”
     signal with synced=FALSE parameter, so applications can take action.
 
--   gst_value_deserialize_with_pspec() allows deserialization with a
+-   gst_value_deserialize_with_pspec() allows deserialisation with a
     hint for what the target GType should be. This allows for example
     passing arrays of flags through the command line or
     gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
 
--   It’s now allowed to create an empty GstVideoOverlayComposition
+-   It’s now possible to create an empty GstVideoOverlayComposition
     without any rectangles by passing a NULL rectangle to
     gst_video_overlay_composition_new(). This is useful for bindings and
     simplifies application code in some places.
@@ -1384,9 +1379,9 @@ Tracing framework, debugging and testing improvements
 
 -   New factories tracer to list loaded elements (and other plugin
     features). This can be useful to collect a list of elements needed
-    for an application, which then in turn can be used to create a
-    tailored minimal GStreamer build that contains just the elements
-    needed and nothing else.
+    for an application, which in turn can be used to create a tailored
+    minimal GStreamer build that contains just the elements needed and
+    nothing else.
 -   New plugin-feature-loaded tracing hook for use by tracers like the
     new factories tracer
 
@@ -1456,8 +1451,8 @@ GStreamer RTSP server
 -   GstRTSPMediaFactory gained API to disable RTCP
     (gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
     Previously RTCP was always allowed for all RTSP medias. With this
-    change it is possible to disable RTCP completely, no matter if the
-    client wants to do RTCP or not.
+    change it is possible to disable RTCP completely, irrespective of
+    whether the client wants to do RTCP or not.
 
 -   Make a mount point of / work correctly. While not allowed by the
     RTSP 2 spec, the RTSP 1 spec is silent on this and it is used in the
@@ -1483,12 +1478,12 @@ GStreamer VAAPI
 
 -   new AV1 decoder element (vaapiav1dec)
 
--   H264 decoder: handle stereoscopic 3D video with frame packing
+-   H.264 decoder: handle stereoscopic 3D video with frame packing
     arrangement SEI messages
 
--   H265 encoder: added Screen Content Coding extensions support
+-   H.265 encoder: added Screen Content Coding extensions support
 
--   H265 decoder: gained MAIN_444_12 profile support (decoded to
+-   H.265 decoder: gained MAIN_444_12 profile support (decoded to
     Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
 
 -   vaapipostproc: gained BT2020 color standard support
@@ -1557,7 +1552,7 @@ GStreamer Python Bindings
 GStreamer C# Bindings
 
 -   Fix GstDebugGraphDetails enum
--   Updated to latests GtkSharp
+-   Updated to latest GtkSharp
 -   Updated to include GStreamer 1.20 API
 
 GStreamer Rust Bindings and Rust Plugins
@@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
 
 Build and Dependencies
 
--   Meson 0.59 or newer is required to build GStreamer now.
+-   Meson 0.59 or newer is now required to build GStreamer.
 
 -   The GLib requirement has been bumped to GLib 2.56 or newer (from
     March 2018).
 
 -   The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
 
+-   The souphttpsrc plugin is no longer linked against libsoup but
+    instead tries to pick up either libsoup2 or libsoup3 dynamically at
+    runtime. Distro packagers please ensure to add a dependency on one
+    of the libsoup runtimes to the gst-plugins-good package so that
+    there is actually a libsoup for the plugin to find!
+
 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
 
 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
@@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
 
 -   XCode 12 support
 -   macOS OS release support is now future-proof, similar to iOS
--   macOS Apple Silicon (ARM64) cross-compile support has been added
--   macOS Apple Silicon (ARM64) native support is currently experimental
+-   macOS Apple Silicon (ARM64) cross-compile support has been added,
+    including Universal binaries. There is a known bug regarding this on
+    ARM64.
+-   Running Cerbero itself on macOS Apple Silicon (ARM64) is currently
+    experimental and is known to have bugs
 
 Windows specific Cerbero improvements
 
@@ -1648,6 +1652,13 @@ macOS and iOS
 
 -   applemedia: add ProRes support to vtenc and vtdec
 
+-   The GStreamer.framework location is now relocatable and is not
+    required to be /Library/Frameworks/
+
+-   Cerbero now supports cross-compiling to macOS running on Apple
+    Silicon (ARM64), and Universal binaries are now available that can
+    be used on both X86_64 and ARM64 macOS.
+
 Windows
 
 -   On Windows the high-resolution clock is enabled now in the
@@ -1679,7 +1690,7 @@ Windows
     GstDeviceProvider implementation to enumerate/select target monitors
     for capture.
 
--   Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
+-   Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
     (d3d11av1dec, d3d11mpeg2dec)
 
 -   VP9 decoding got more reliable and stable thanks to a newly written
@@ -1863,7 +1874,7 @@ the git 1.20 branch, which will be a stable branch.
 
 1.20.0
 
-1.20.0 is scheduled to be released around early February 2022.
+1.20.0 was released on 3 February 2022.
 
 Schedule for 1.22
 
index 17e60d01d7437f423822bfed3a39e56b53b266d6..1e442e6bc08d58055438978f4b0ea875cecb18b4 100644 (file)
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
 
 WHAT IT IS
 ----------
index a0910fddd827a1841f481e1713911d71bd8e5e92..d3584691447fb2f5c96096b7ec561d9d06626e97 100644 (file)
@@ -1,13 +1,15 @@
-This is GStreamer core 1.19.90.
+This is GStreamer core 1.20.0.
 
-GStreamer 1.19 is the development branch leading up to the next major
-stable version which will be 1.20.
+The GStreamer team is thrilled to announce a new major feature release
+of your favourite cross-platform multimedia framework!
 
-The 1.19 development series adds new features on top of the 1.18 series and is
-part of the API and ABI-stable 1.x release series of the GStreamer multimedia
-framework.
+As always, this release is again packed with new features, bug fixes and
+other improvements.
 
-Full release notes will one day be found at:
+The 1.20 release series adds new features on top of the 1.18 series and is
+part of the API and ABI-stable 1.x release series.
+
+Full release notes can be found at:
 
   https://gstreamer.freedesktop.org/releases/1.20/
 
@@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
 directory: https://gstreamer.freedesktop.org/src/gstreamer/
 
 The git repository and details how to clone it can be found at
-https://gitlab.freedesktop.org/gstreamer/
+https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 ==== Homepage ====
 
@@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
 
 ==== Support and Bugs ====
 
-We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
-for bug reports and feature requests:
+We track bugs and feature requests in GitLab:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 Please submit patches via GitLab as well, in form of Merge Requests. See
 
@@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
 
 There is also a #gstreamer IRC channel on the OFTC IRC network.
 
+Please do not submit support requests in GitLab, we only use it
+for bug tracking and merge requests review.
+
 ==== Developers ====
 
-GStreamer source code repositories can be found on GitLab on freedesktop.org:
+The GStreamer source code repository can be found on GitLab on freedesktop.org:
 
-  https://gitlab.freedesktop.org/gstreamer
+  https://gitlab.freedesktop.org/gstreamer/gstreamer/
 
 and can also be cloned from there and this is also where you can submit
 Merge Requests or file issues for bugs or feature requests.
index 5807c216b75b1aee3c738254c854373d150e0e28..0129e652b96344ada9dc6f2211fec279e30d3cb7 100644 (file)
@@ -38,6 +38,16 @@ hierarchy, and a set of media-agnostic core elements.
    </GitRepository>
  </repository>
 
+ <release>
+  <Version>
+   <revision>1.20.0</revision>
+   <branch>main</branch>
+   <name></name>
+   <created>2022-02-03</created>
+   <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.20.0.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.19.90</revision>
index b0c5c7d4df49357d1a691f718063294a6cac3aa8..bc0633aba25da45e0a1f97875475d9bea28fdbfe 100644 (file)
@@ -1,5 +1,5 @@
 project('gstreamer', 'c',
-  version : '1.19.90',
+  version : '1.20.0',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])