Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/GStreamer/gstreamer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2022-02-03 22:53:25 +0300
committerTim-Philipp Müller <tim@centricular.com>2022-02-03 23:03:15 +0300
commitf0b045a69bb0b36515b84e3b64df9dc30c8f1e1a (patch)
tree3290dd42d790c6842e8a59d0adbe42763f6fae3b
parent463bafdd2338949d1249f5d44468a601a8d35a0d (diff)
Release 1.20.01.20.0
-rw-r--r--meson.build2
-rw-r--r--subprojects/gst-devtools/ChangeLog15
-rw-r--r--subprojects/gst-devtools/NEWS161
-rw-r--r--subprojects/gst-devtools/RELEASE30
-rw-r--r--subprojects/gst-devtools/gst-devtools.doap10
-rw-r--r--subprojects/gst-devtools/meson.build2
-rw-r--r--subprojects/gst-docs/meson.build2
-rw-r--r--subprojects/gst-docs/symbols/symbol_index.json660
-rw-r--r--subprojects/gst-docs/symbols/symbols_version.txt2
-rw-r--r--subprojects/gst-editing-services/ChangeLog15
-rw-r--r--subprojects/gst-editing-services/NEWS161
-rw-r--r--subprojects/gst-editing-services/RELEASE30
-rw-r--r--subprojects/gst-editing-services/gst-editing-services.doap10
-rw-r--r--subprojects/gst-editing-services/meson.build2
-rw-r--r--subprojects/gst-examples/meson.build2
-rw-r--r--subprojects/gst-integration-testsuites/meson.build2
-rw-r--r--subprojects/gst-libav/ChangeLog15
-rw-r--r--subprojects/gst-libav/NEWS161
-rw-r--r--subprojects/gst-libav/RELEASE30
-rw-r--r--subprojects/gst-libav/gst-libav.doap10
-rw-r--r--subprojects/gst-libav/meson.build2
-rw-r--r--subprojects/gst-omx/ChangeLog15
-rw-r--r--subprojects/gst-omx/NEWS161
-rw-r--r--subprojects/gst-omx/RELEASE30
-rw-r--r--subprojects/gst-omx/gst-omx.doap10
-rw-r--r--subprojects/gst-omx/meson.build2
-rw-r--r--subprojects/gst-plugins-bad/ChangeLog16
-rw-r--r--subprojects/gst-plugins-bad/NEWS161
-rw-r--r--subprojects/gst-plugins-bad/README2
-rw-r--r--subprojects/gst-plugins-bad/RELEASE30
-rw-r--r--subprojects/gst-plugins-bad/gst-plugins-bad.doap10
-rw-r--r--subprojects/gst-plugins-bad/meson.build2
-rw-r--r--subprojects/gst-plugins-base/ChangeLog16
-rw-r--r--subprojects/gst-plugins-base/NEWS161
-rw-r--r--subprojects/gst-plugins-base/README2
-rw-r--r--subprojects/gst-plugins-base/RELEASE30
-rw-r--r--subprojects/gst-plugins-base/gst-plugins-base.doap10
-rw-r--r--subprojects/gst-plugins-base/meson.build2
-rw-r--r--subprojects/gst-plugins-good/ChangeLog17
-rw-r--r--subprojects/gst-plugins-good/NEWS161
-rw-r--r--subprojects/gst-plugins-good/README2
-rw-r--r--subprojects/gst-plugins-good/RELEASE30
-rw-r--r--subprojects/gst-plugins-good/docs/gst_plugins_cache.json8
-rw-r--r--subprojects/gst-plugins-good/gst-plugins-good.doap10
-rw-r--r--subprojects/gst-plugins-good/meson.build2
-rw-r--r--subprojects/gst-plugins-ugly/ChangeLog16
-rw-r--r--subprojects/gst-plugins-ugly/NEWS161
-rw-r--r--subprojects/gst-plugins-ugly/README2
-rw-r--r--subprojects/gst-plugins-ugly/RELEASE30
-rw-r--r--subprojects/gst-plugins-ugly/gst-plugins-ugly.doap10
-rw-r--r--subprojects/gst-plugins-ugly/meson.build2
-rw-r--r--subprojects/gst-python/ChangeLog15
-rw-r--r--subprojects/gst-python/NEWS161
-rw-r--r--subprojects/gst-python/RELEASE30
-rw-r--r--subprojects/gst-python/gst-python.doap10
-rw-r--r--subprojects/gst-python/meson.build2
-rw-r--r--subprojects/gst-rtsp-server/ChangeLog16
-rw-r--r--subprojects/gst-rtsp-server/NEWS161
-rw-r--r--subprojects/gst-rtsp-server/RELEASE30
-rw-r--r--subprojects/gst-rtsp-server/docs/gst_plugins_cache.json2
-rw-r--r--subprojects/gst-rtsp-server/gst-rtsp-server.doap10
-rw-r--r--subprojects/gst-rtsp-server/meson.build2
-rw-r--r--subprojects/gstreamer-sharp/meson.build2
-rw-r--r--subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs4
-rw-r--r--subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs4
-rw-r--r--subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml16
-rw-r--r--subprojects/gstreamer-vaapi/ChangeLog15
-rw-r--r--subprojects/gstreamer-vaapi/NEWS161
-rw-r--r--subprojects/gstreamer-vaapi/RELEASE30
-rw-r--r--subprojects/gstreamer-vaapi/gstreamer-vaapi.doap10
-rw-r--r--subprojects/gstreamer-vaapi/meson.build2
-rw-r--r--subprojects/gstreamer/ChangeLog16
-rw-r--r--subprojects/gstreamer/NEWS161
-rw-r--r--subprojects/gstreamer/README2
-rw-r--r--subprojects/gstreamer/RELEASE30
-rw-r--r--subprojects/gstreamer/gstreamer.doap10
-rw-r--r--subprojects/gstreamer/meson.build2
77 files changed, 2221 insertions, 1118 deletions
diff --git a/meson.build b/meson.build
index 174e71695f..45ff5e26c5 100644
--- a/meson.build
+++ b/meson.build
@@ -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,
diff --git a/subprojects/gst-devtools/ChangeLog b/subprojects/gst-devtools/ChangeLog
index a0981ecf2e..1f39b5da86 100644
--- a/subprojects/gst-devtools/ChangeLog
+++ b/subprojects/gst-devtools/ChangeLog
@@ -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>
diff --git a/subprojects/gst-devtools/NEWS b/subprojects/gst-devtools/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-devtools/NEWS
+++ b/subprojects/gst-devtools/NEWS
@@ -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
diff --git a/subprojects/gst-devtools/RELEASE b/subprojects/gst-devtools/RELEASE
index 0ea325b2ef..3aa4be6eea 100644
--- a/subprojects/gst-devtools/RELEASE
+++ b/subprojects/gst-devtools/RELEASE
@@ -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.
diff --git a/subprojects/gst-devtools/gst-devtools.doap b/subprojects/gst-devtools/gst-devtools.doap
index 77a35da09a..c0757b3366 100644
--- a/subprojects/gst-devtools/gst-devtools.doap
+++ b/subprojects/gst-devtools/gst-devtools.doap
@@ -55,6 +55,16 @@
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-devtools/meson.build b/subprojects/gst-devtools/meson.build
index 3146fa30e3..e40b188063 100644
--- a/subprojects/gst-devtools/meson.build
+++ b/subprojects/gst-devtools/meson.build
@@ -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',
diff --git a/subprojects/gst-docs/meson.build b/subprojects/gst-docs/meson.build
index 8e0584a2e5..e8fcd6fcef 100644
--- a/subprojects/gst-docs/meson.build
+++ b/subprojects/gst-docs/meson.build
@@ -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')
diff --git a/subprojects/gst-docs/symbols/symbol_index.json b/subprojects/gst-docs/symbols/symbol_index.json
index 1de2e7690b..02270e3ebb 100644
--- a/subprojects/gst-docs/symbols/symbol_index.json
+++ b/subprojects/gst-docs/symbols/symbol_index.json
@@ -307,10 +307,12 @@
"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",
@@ -630,6 +632,8 @@
"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",
@@ -2031,6 +2035,13 @@
"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",
@@ -2337,6 +2348,7 @@
"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",
@@ -3496,6 +3508,13 @@
"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",
@@ -3701,15 +3720,22 @@
"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",
@@ -3753,6 +3779,11 @@
"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",
@@ -4546,6 +4577,7 @@
"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",
@@ -5234,8 +5266,12 @@
"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",
@@ -5244,6 +5280,8 @@
"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",
@@ -5333,6 +5371,8 @@
"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",
@@ -5613,6 +5653,9 @@
"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",
@@ -5629,11 +5672,22 @@
"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",
@@ -5641,6 +5695,10 @@
"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",
@@ -5651,6 +5709,20 @@
"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",
@@ -5744,6 +5816,16 @@
"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",
@@ -6060,23 +6142,23 @@
"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",
@@ -6097,6 +6179,13 @@
"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",
@@ -6275,8 +6364,10 @@
"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",
@@ -6300,6 +6391,7 @@
"GstAppSinkClass::new_sample",
"GstAppSinkClass::pull_preroll",
"GstAppSinkClass::pull_sample",
+ "GstAppSinkClass::try_pull_object",
"GstAppSinkClass::try_pull_preroll",
"GstAppSinkClass::try_pull_sample",
"GstAppSrc",
@@ -6383,6 +6475,7 @@
"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",
@@ -6396,6 +6489,7 @@
"GstAudioAggregatorPad",
"GstAudioAggregatorPad.info",
"GstAudioAggregatorPad.parent",
+ "GstAudioAggregatorPad:qos-messages",
"GstAudioAggregatorPadClass.convert_buffer",
"GstAudioAggregatorPadClass.parent_class",
"GstAudioAggregatorPadClass.update_conversion_info",
@@ -7652,6 +7746,8 @@
"GstCCExtractor!sink",
"GstCCExtractor!src",
"GstCCExtractor:remove-caption-meta",
+ "GstCVTracker!sink",
+ "GstCVTracker!src",
"GstCairoOverlay",
"GstCairoOverlay!sink",
"GstCairoOverlay!src",
@@ -7992,9 +8088,13 @@
"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",
@@ -8039,6 +8139,17 @@
"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",
@@ -8203,11 +8314,85 @@
"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",
@@ -8238,6 +8423,7 @@
"GstD3D11Mpeg2Dec!src",
"GstD3D11Scale!sink",
"GstD3D11Scale!src",
+ "GstD3D11ScreenCaptureSrc!src",
"GstD3D11Upload",
"GstD3D11Upload!sink",
"GstD3D11Upload!src",
@@ -10132,6 +10318,7 @@
"GstGLWindow::key-event",
"GstGLWindow::mouse-event",
"GstGLWindow::scroll-event",
+ "GstGLWindow::window-handle-changed",
"GstGLWindowCB",
"GstGLWindowClass.close",
"GstGLWindowClass.controls_viewport",
@@ -10258,6 +10445,7 @@
"GstGtkBaseSink:force-aspect-ratio",
"GstGtkBaseSink:ignore-alpha",
"GstGtkBaseSink:pixel-aspect-ratio",
+ "GstGtkBaseSink:video-aspect-ratio-override",
"GstGtkBaseSink:widget",
"GstGtkGLSink",
"GstGtkGLSink!sink",
@@ -10271,6 +10459,7 @@
"GstH264ContentLightLevel",
"GstH264DecRefPicMarking",
"GstH264Decoder",
+ "GstH264Decoder:compliance",
"GstH264DecoderClass.decode_slice",
"GstH264DecoderClass.end_picture",
"GstH264DecoderClass.new_picture",
@@ -10286,7 +10475,9 @@
"GstH264DecoderClass::new_sequence",
"GstH264DecoderClass::output_picture",
"GstH264DecoderClass::start_picture",
+ "GstH264DecoderCompliance",
"GstH264Dpb",
+ "GstH264DpbBumpMode",
"GstH264FramePacking",
"GstH264FramePackingType",
"GstH264HRDParams",
@@ -10725,6 +10916,7 @@
"GstJackConnect",
"GstJackConnect::auto",
"GstJackConnect::auto-forced",
+ "GstJackConnect::explicit",
"GstJackConnect::none",
"GstJackTransport",
"GstJackTransport::master",
@@ -11226,6 +11418,7 @@
"GstMpeg2DecoderClass.parent_class",
"GstMpeg2DecoderClass::decode_slice",
"GstMpeg2DecoderClass::end_picture",
+ "GstMpeg2DecoderClass::get_preferred_output_delay",
"GstMpeg2DecoderClass::new_field_picture",
"GstMpeg2DecoderClass::new_picture",
"GstMpeg2DecoderClass::new_sequence",
@@ -11643,6 +11836,8 @@
"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",
@@ -11651,12 +11846,18 @@
"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",
@@ -11667,6 +11868,7 @@
"GstMpegtsSCTESpliceEvent.splice_event_id",
"GstMpegtsSCTESpliceEvent.splice_immediate_flag",
"GstMpegtsSCTESpliceEvent.unique_program_id",
+ "GstMpegtsSCTESpliceEvent.utc_splice_time",
"GstMpegtsSDT",
"GstMpegtsSDT.actual_ts",
"GstMpegtsSDT.original_network_id",
@@ -11785,6 +11987,144 @@
"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",
@@ -12121,6 +12461,7 @@
"GstNvBaseEnc:strict-gop",
"GstNvBaseEnc:zerolatency",
"GstNvDec",
+ "GstNvDec:max-display-delay",
"GstNvDevice0H264Enc",
"GstNvDevice0H265Enc",
"GstNvH264Dec",
@@ -12169,6 +12510,13 @@
"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",
@@ -12229,6 +12577,14 @@
"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",
@@ -12402,7 +12758,6 @@
"GstOsxAudioElement",
"GstOsxAudioSink!sink",
"GstOsxAudioSrc!src",
- "GstOSXVideoSink!sink",
"GstOutputSelector",
"GstOutputSelector!sink",
"GstOutputSelector!src_%u",
@@ -12522,6 +12877,7 @@
"GstParseContext",
"GstParseError",
"GstParseFlags",
+ "GstPbUtilsCapsDescriptionFlags",
"GstPcapParse",
"GstPcapParse!sink",
"GstPcapParse!src",
@@ -13250,6 +13606,7 @@
"GstRTPHeaderExtensionClass::set_non_rtp_sink_caps",
"GstRTPHeaderExtensionClass::update_non_rtp_src_caps",
"GstRTPHeaderExtensionClass::write",
+ "GstRTPHeaderExtensionDirection",
"GstRTPHeaderExtensionFlags",
"GstRTPILBCPay",
"GstRTPILBCPay!sink",
@@ -16159,6 +16516,15 @@
"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",
@@ -16245,6 +16611,13 @@
"GstVPXEncTuning",
"GstVPXEncTuning::psnr",
"GstVPXEncTuning::ssim",
+ "GstVaBaseTransform",
+ "GstVaDeinterlace!sink",
+ "GstVaDeinterlace!src",
+ "GstVaDeinterlaceMethods",
+ "GstVaDeinterlaceMethods::adaptive",
+ "GstVaDeinterlaceMethods::bob",
+ "GstVaDeinterlaceMethods::compensated",
"GstVaH264Dec!sink",
"GstVaH264Dec!src",
"GstVaH265Dec!sink",
@@ -16860,7 +17233,10 @@
"GstVideoCodecState.allocation_caps",
"GstVideoCodecState.caps",
"GstVideoCodecState.codec_data",
+ "GstVideoCodecState.content_light_level",
"GstVideoCodecState.info",
+ "GstVideoCodecState.mastering_display_info",
+ "GstVideoCodecTestSink!sink",
"GstVideoColorMatrix",
"GstVideoColorPrimaries",
"GstVideoColorPrimariesInfo",
@@ -16911,6 +17287,8 @@
"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",
@@ -16942,6 +17320,7 @@
"GstVideoDecoderClass::flush",
"GstVideoDecoderClass::getcaps",
"GstVideoDecoderClass::handle_frame",
+ "GstVideoDecoderClass::handle_missing_data",
"GstVideoDecoderClass::negotiate",
"GstVideoDecoderClass::open",
"GstVideoDecoderClass::parse",
@@ -17167,6 +17546,7 @@
"GstVideoOrientationInterface::set_hflip",
"GstVideoOrientationInterface::set_vcenter",
"GstVideoOrientationInterface::set_vflip",
+ "GstVideoOrientationMethod",
"GstVideoOverlay",
"GstVideoOverlayComposition",
"GstVideoOverlayCompositionMeta",
@@ -17325,6 +17705,7 @@
"GstVideoTestSrcPattern::pinwheel",
"GstVideoTestSrcPattern::red",
"GstVideoTestSrcPattern::smpte",
+ "GstVideoTestSrcPattern::smpte-rp-219",
"GstVideoTestSrcPattern::smpte100",
"GstVideoTestSrcPattern::smpte75",
"GstVideoTestSrcPattern::snow",
@@ -17504,10 +17885,12 @@
"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",
@@ -17516,6 +17899,7 @@
"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",
@@ -17532,6 +17916,7 @@
"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",
@@ -17545,6 +17930,7 @@
"GstVp9FrameHeader.subsampling_y",
"GstVp9FrameHeader.tile_cols_log2",
"GstVp9FrameHeader.tile_rows_log2",
+ "GstVp9FrameHeader.tx_mode",
"GstVp9FrameHeader.width",
"GstVp9FrameType",
"GstVp9InterpolationFilter",
@@ -17558,6 +17944,7 @@
"GstVp9LoopFilterParams.loop_filter_sharpness",
"GstVp9LoopFilterParams.update_mode_delta",
"GstVp9LoopFilterParams.update_ref_delta",
+ "GstVp9MvDeltaProbs",
"GstVp9Parse!sink",
"GstVp9Parse!src",
"GstVp9Parser",
@@ -17580,6 +17967,7 @@
"GstVp9QuantizationParams.delta_q_uv_dc",
"GstVp9QuantizationParams.delta_q_y_dc",
"GstVp9RefFrameType",
+ "GstVp9ReferenceMode",
"GstVp9Segmentation",
"GstVp9SegmentationInfo",
"GstVp9SegmentationInfoData",
@@ -17596,6 +17984,8 @@
"GstVp9StatefulParser",
"GstVp9StatefulParser.reference",
"GstVp9SuperframeInfo",
+ "GstVp9TxMode",
+ "GstVp9TxSize",
"GstVtdec!sink",
"GstVtdec!src",
"GstVtdecHw!sink",
@@ -18101,6 +18491,7 @@
"GstWebRTCDataChannelClass::send_data",
"GstWebRTCDataChannelClass::send_string",
"GstWebRTCDataChannelState",
+ "GstWebRTCError",
"GstWebRTCFECType",
"GstWebRTCICE",
"GstWebRTCICE::add-local-ip-address",
@@ -18182,6 +18573,11 @@
"GstWebRTCRTPTransceiverClass._padding",
"GstWebRTCRTPTransceiverClass.parent_class",
"GstWebRTCRTPTransceiverDirection",
+ "GstWebRTCSCTPTransport",
+ "GstWebRTCSCTPTransport:max-channels",
+ "GstWebRTCSCTPTransport:max-message-size",
+ "GstWebRTCSCTPTransport:state",
+ "GstWebRTCSCTPTransport:transport",
"GstWebRTCSCTPTransportState",
"GstWebRTCSDPType",
"GstWebRTCSessionDescription",
@@ -18578,6 +18974,7 @@
"RTPSession:sdes",
"RTPSession:sources",
"RTPSession:stats",
+ "RTPSession:twcc-feedback-interval",
"RTPSource",
"RTPSource:disable-rtcp",
"RTPSource:is-csrc",
@@ -20599,6 +20996,18 @@
"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",
@@ -20687,8 +21096,10 @@
"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",
@@ -20819,6 +21230,7 @@
"audiolatency:average-latency",
"audiolatency:last-latency",
"audiolatency:print-latency",
+ "audiolatency:samplesperbuffer",
"audiomixer",
"audiomixmatrix",
"audiomixmatrix:channel-mask",
@@ -26929,6 +27341,7 @@
"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",
@@ -28108,6 +28521,7 @@
"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",
@@ -31873,9 +32287,6 @@
"avfvideosrc:fps",
"avfvideosrc:orientation",
"avfvideosrc:position",
- "avsamplebufferlayersink",
- "avsamplebufferlayersink:force-aspect-ratio",
- "avsamplebufferlayersink:layer",
"avidemux",
"avimux",
"avimux:bigfile",
@@ -32547,12 +32958,18 @@
"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",
@@ -32659,8 +33076,32 @@
"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",
@@ -32679,15 +33120,23 @@
"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",
@@ -32719,9 +33168,11 @@
"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",
@@ -32738,6 +33189,8 @@
"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",
@@ -34394,8 +34847,8 @@
"element-oss4src",
"element-osssink",
"element-osssrc",
- "element-osxaudiosrc",
"element-osxaudiosink",
+ "element-osxaudiosrc",
"element-osxvideosink",
"element-output-selector",
"element-overlaycomposition",
@@ -34722,16 +35175,16 @@
"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",
@@ -36271,6 +36724,7 @@
"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",
@@ -36296,6 +36750,7 @@
"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",
@@ -36722,15 +37177,18 @@
"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",
@@ -36751,6 +37209,7 @@
"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",
@@ -36760,6 +37219,7 @@
"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",
@@ -36938,6 +37398,7 @@
"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",
@@ -37652,10 +38113,12 @@
"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",
@@ -37802,6 +38265,7 @@
"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",
@@ -37875,6 +38339,7 @@
"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",
@@ -37906,6 +38371,7 @@
"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",
@@ -37962,6 +38428,9 @@
"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",
@@ -37973,6 +38442,7 @@
"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",
@@ -37981,6 +38451,9 @@
"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",
@@ -38046,6 +38519,7 @@
"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",
@@ -38126,6 +38600,7 @@
"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",
@@ -38340,6 +38815,7 @@
"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",
@@ -38365,6 +38841,7 @@
"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",
@@ -38392,6 +38869,7 @@
"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",
@@ -38549,6 +39027,7 @@
"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",
@@ -38557,8 +39036,10 @@
"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",
@@ -39135,6 +39616,7 @@
"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",
@@ -39384,10 +39866,12 @@
"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",
@@ -40049,6 +40533,7 @@
"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",
@@ -40068,6 +40553,7 @@
"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",
@@ -40077,7 +40563,9 @@
"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",
@@ -40156,6 +40644,7 @@
"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",
@@ -40185,6 +40674,7 @@
"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",
@@ -40442,6 +40932,7 @@
"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",
@@ -40586,6 +41077,7 @@
"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",
@@ -41530,6 +42022,7 @@
"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",
@@ -41583,12 +42076,15 @@
"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",
@@ -41598,8 +42094,11 @@
"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",
@@ -41613,6 +42112,7 @@
"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",
@@ -41675,6 +42175,7 @@
"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",
@@ -41705,6 +42206,7 @@
"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",
@@ -41822,6 +42324,7 @@
"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",
@@ -41839,7 +42342,9 @@
"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",
@@ -42025,6 +42530,7 @@
"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",
@@ -42041,6 +42547,7 @@
"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",
@@ -42282,6 +42789,8 @@
"jackaudiosink:client",
"jackaudiosink:client-name",
"jackaudiosink:connect",
+ "jackaudiosink:low-latency",
+ "jackaudiosink:port-names",
"jackaudiosink:port-pattern",
"jackaudiosink:server",
"jackaudiosink:transport",
@@ -42289,6 +42798,8 @@
"jackaudiosrc:client",
"jackaudiosrc:client-name",
"jackaudiosrc:connect",
+ "jackaudiosrc:low-latency",
+ "jackaudiosrc:port-names",
"jackaudiosrc:port-pattern",
"jackaudiosrc:server",
"jackaudiosrc:transport",
@@ -62321,6 +62832,7 @@
"matroskademux:max-backtrack-distance",
"matroskademux:max-gap-time",
"matroskamux",
+ "matroskamux:cluster-timestamp-offset",
"matroskamux:creation-time",
"matroskamux:max-cluster-duration",
"matroskamux:min-cluster-duration",
@@ -62334,9 +62846,11 @@
"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",
@@ -62349,8 +62863,10 @@
"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",
@@ -62369,7 +62885,9 @@
"mfvideosrc:device-path",
"mfvideosrc:dispatcher",
"mfvp9enc",
+ "mfvp9enc:adapter-luid",
"mfvp9enc:bitrate",
+ "mfvp9enc:d3d11-aware",
"mfvp9enc:gop-size",
"mfvp9enc:low-latency",
"mfvp9enc:max-bitrate",
@@ -62612,6 +63130,72 @@
"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",
@@ -62691,6 +63275,7 @@
"multifilesink:max-file-duration",
"multifilesink:max-file-size",
"multifilesink:max-files",
+ "multifilesink:min-keyframe-distance",
"multifilesink:next-file",
"multifilesink:post-messages",
"multifilesrc",
@@ -62796,6 +63381,7 @@
"netsim:min-delay",
"nlecomposition",
"nlecomposition::commited",
+ "nlecomposition:drop-tags",
"nlecomposition:id",
"nleoperation",
"nleoperation::input-priority-changed",
@@ -62842,9 +63428,11 @@
"nvvp8dec",
"nvvp8dec!sink",
"nvvp8dec!src",
+ "nvvp8sldec",
"nvvp9dec",
"nvvp9dec!sink",
"nvvp9dec!src",
+ "nvvp9sldec",
"oggaviparse",
"oggdemux",
"oggmux",
@@ -62897,11 +63485,13 @@
"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",
@@ -62964,8 +63554,8 @@
"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",
@@ -63113,6 +63703,7 @@
"plugin-adder",
"plugin-adpcmdec",
"plugin-adpcmenc",
+ "plugin-aes",
"plugin-aiff",
"plugin-alaw",
"plugin-alpha",
@@ -63254,6 +63845,7 @@
"plugin-mpegtsmux",
"plugin-mpg123",
"plugin-mplex",
+ "plugin-msdk",
"plugin-mulaw",
"plugin-multifile",
"plugin-multipart",
@@ -63807,6 +64399,7 @@
"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",
@@ -63908,6 +64501,7 @@
"rtph265pay:config-interval",
"rtphdrextclientaudiolevel",
"rtphdrextclientaudiolevel:vad",
+ "rtphdrextcolorspace",
"rtphdrexttwcc",
"rtphdrexttwcc:n-streams",
"rtpilbcdepay",
@@ -64000,6 +64594,7 @@
"rtpqcelpdepay",
"rtpqdm2depay",
"rtpreddec",
+ "rtpreddec:payloads",
"rtpreddec:pt",
"rtpreddec:received",
"rtpredenc",
@@ -64186,6 +64781,7 @@
"rtspsrc:do-rtcp",
"rtspsrc:do-rtsp-keep-alive",
"rtspsrc:drop-on-latency",
+ "rtspsrc:ignore-x-server-reply",
"rtspsrc:is-live",
"rtspsrc:latency",
"rtspsrc:location",
@@ -64794,6 +65390,7 @@
"tsdemux:emit-stats",
"tsdemux:latency",
"tsdemux:program-number",
+ "tsdemux:send-scte35-events",
"tsparse",
"tsparse:alignment",
"tsparse:pcr-pid",
@@ -65106,6 +65703,8 @@
"vaapisink:signal-handoffs",
"vaapisink:view-id",
"vaapivc1dec",
+ "vadeinterlace",
+ "vadeinterlace:method",
"vah264dec",
"vah265dec",
"value",
@@ -65114,6 +65713,7 @@
"valve:drop-mode",
"vampeg2dec",
"vapostproc",
+ "vapostproc:disable-passthrough",
"vavp8dec",
"vavp9dec",
"vc1parse",
@@ -65136,6 +65736,8 @@
"videobox:left",
"videobox:right",
"videobox:top",
+ "videocodectestsink",
+ "videocodectestsink:location",
"videoconvert",
"videoconvert:alpha-mode",
"videoconvert:alpha-value",
@@ -65255,6 +65857,8 @@
"vp9alphadecodebin",
"vp9dec",
"vp9enc",
+ "vp9enc:aq-mode",
+ "vp9enc:frame-parallel-decoding",
"vp9enc:row-mt",
"vp9enc:tile-columns",
"vp9enc:tile-rows",
@@ -65279,6 +65883,16 @@
"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",
@@ -65303,6 +65917,7 @@
"wasapi2src",
"wasapi2src:device",
"wasapi2src:dispatcher",
+ "wasapi2src:loopback",
"wasapi2src:low-latency",
"wasapi2src:mute",
"wasapi2src:volume",
@@ -65383,6 +65998,7 @@
"webrtcbin:pending-local-description",
"webrtcbin:pending-remote-description",
"webrtcbin:remote-description",
+ "webrtcbin:sctp-transport",
"webrtcbin:signaling-state",
"webrtcbin:stun-server",
"webrtcbin:turn-server",
@@ -65583,4 +66199,4 @@
"zbar:message",
"zebrastripe",
"zebrastripe:threshold"
-]
+] \ No newline at end of file
diff --git a/subprojects/gst-docs/symbols/symbols_version.txt b/subprojects/gst-docs/symbols/symbols_version.txt
index 8068c6e177..0fdd2359fd 100644
--- a/subprojects/gst-docs/symbols/symbols_version.txt
+++ b/subprojects/gst-docs/symbols/symbols_version.txt
@@ -1 +1 @@
-1.19 \ No newline at end of file
+1.20 \ No newline at end of file
diff --git a/subprojects/gst-editing-services/ChangeLog b/subprojects/gst-editing-services/ChangeLog
index 1eb505b46a..e96a1aca41 100644
--- a/subprojects/gst-editing-services/ChangeLog
+++ b/subprojects/gst-editing-services/ChangeLog
@@ -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>
diff --git a/subprojects/gst-editing-services/NEWS b/subprojects/gst-editing-services/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-editing-services/NEWS
+++ b/subprojects/gst-editing-services/NEWS
@@ -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
diff --git a/subprojects/gst-editing-services/RELEASE b/subprojects/gst-editing-services/RELEASE
index 159e440e24..e97030460a 100644
--- a/subprojects/gst-editing-services/RELEASE
+++ b/subprojects/gst-editing-services/RELEASE
@@ -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.
diff --git a/subprojects/gst-editing-services/gst-editing-services.doap b/subprojects/gst-editing-services/gst-editing-services.doap
index d92ca09b92..077c182b9e 100644
--- a/subprojects/gst-editing-services/gst-editing-services.doap
+++ b/subprojects/gst-editing-services/gst-editing-services.doap
@@ -32,6 +32,16 @@ GStreamer library for creating audio and video editors
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build
index 36b5a73506..8e62442228 100644
--- a/subprojects/gst-editing-services/meson.build
+++ b/subprojects/gst-editing-services/meson.build
@@ -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' ])
diff --git a/subprojects/gst-examples/meson.build b/subprojects/gst-examples/meson.build
index ed6f3475fb..25508345c6 100644
--- a/subprojects/gst-examples/meson.build
+++ b/subprojects/gst-examples/meson.build
@@ -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)
diff --git a/subprojects/gst-integration-testsuites/meson.build b/subprojects/gst-integration-testsuites/meson.build
index e20e21ee1d..5bd1b921d6 100644
--- a/subprojects/gst-integration-testsuites/meson.build
+++ b/subprojects/gst-integration-testsuites/meson.build
@@ -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')
diff --git a/subprojects/gst-libav/ChangeLog b/subprojects/gst-libav/ChangeLog
index ed707bdfaf..75f50d3161 100644
--- a/subprojects/gst-libav/ChangeLog
+++ b/subprojects/gst-libav/ChangeLog
@@ -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:
diff --git a/subprojects/gst-libav/NEWS b/subprojects/gst-libav/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-libav/NEWS
+++ b/subprojects/gst-libav/NEWS
@@ -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
diff --git a/subprojects/gst-libav/RELEASE b/subprojects/gst-libav/RELEASE
index 0349d12b7d..dc40f3cc5f 100644
--- a/subprojects/gst-libav/RELEASE
+++ b/subprojects/gst-libav/RELEASE
@@ -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.
diff --git a/subprojects/gst-libav/gst-libav.doap b/subprojects/gst-libav/gst-libav.doap
index 2bd3df03a2..50f7d81797 100644
--- a/subprojects/gst-libav/gst-libav.doap
+++ b/subprojects/gst-libav/gst-libav.doap
@@ -34,6 +34,16 @@ colorspace conversion elements.
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-libav/meson.build b/subprojects/gst-libav/meson.build
index 0d6b77d43e..b281b6377e 100644
--- a/subprojects/gst-libav/meson.build
+++ b/subprojects/gst-libav/meson.build
@@ -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' ])
diff --git a/subprojects/gst-omx/ChangeLog b/subprojects/gst-omx/ChangeLog
index 9d70662316..d3f9e5aaa5 100644
--- a/subprojects/gst-omx/ChangeLog
+++ b/subprojects/gst-omx/ChangeLog
@@ -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>
diff --git a/subprojects/gst-omx/NEWS b/subprojects/gst-omx/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-omx/NEWS
+++ b/subprojects/gst-omx/NEWS
@@ -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
diff --git a/subprojects/gst-omx/RELEASE b/subprojects/gst-omx/RELEASE
index b5aa9980f7..3d51f2e647 100644
--- a/subprojects/gst-omx/RELEASE
+++ b/subprojects/gst-omx/RELEASE
@@ -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.
diff --git a/subprojects/gst-omx/gst-omx.doap b/subprojects/gst-omx/gst-omx.doap
index e11d11723c..960398364f 100644
--- a/subprojects/gst-omx/gst-omx.doap
+++ b/subprojects/gst-omx/gst-omx.doap
@@ -33,6 +33,16 @@ a basic collection of elements
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-omx/meson.build b/subprojects/gst-omx/meson.build
index 2fd4f5df6c..bd791060fc 100644
--- a/subprojects/gst-omx/meson.build
+++ b/subprojects/gst-omx/meson.build
@@ -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' ])
diff --git a/subprojects/gst-plugins-bad/ChangeLog b/subprojects/gst-plugins-bad/ChangeLog
index 6a93bec96a..f2b3ccd3ef 100644
--- a/subprojects/gst-plugins-bad/ChangeLog
+++ b/subprojects/gst-plugins-bad/ChangeLog
@@ -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:
diff --git a/subprojects/gst-plugins-bad/NEWS b/subprojects/gst-plugins-bad/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-plugins-bad/NEWS
+++ b/subprojects/gst-plugins-bad/NEWS
@@ -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
diff --git a/subprojects/gst-plugins-bad/README b/subprojects/gst-plugins-bad/README
index 17e60d01d7..1e442e6bc0 100644
--- a/subprojects/gst-plugins-bad/README
+++ b/subprojects/gst-plugins-bad/README
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
WHAT IT IS
----------
diff --git a/subprojects/gst-plugins-bad/RELEASE b/subprojects/gst-plugins-bad/RELEASE
index a22cdf4adc..2244892111 100644
--- a/subprojects/gst-plugins-bad/RELEASE
+++ b/subprojects/gst-plugins-bad/RELEASE
@@ -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.
diff --git a/subprojects/gst-plugins-bad/gst-plugins-bad.doap b/subprojects/gst-plugins-bad/gst-plugins-bad.doap
index 3c65c70e96..3ce24dd544 100644
--- a/subprojects/gst-plugins-bad/gst-plugins-bad.doap
+++ b/subprojects/gst-plugins-bad/gst-plugins-bad.doap
@@ -35,6 +35,16 @@ real live maintainer, or some actual wide use.
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build
index d79cb64bcf..37e1a1507c 100644
--- a/subprojects/gst-plugins-bad/meson.build
+++ b/subprojects/gst-plugins-bad/meson.build
@@ -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' ])
diff --git a/subprojects/gst-plugins-base/ChangeLog b/subprojects/gst-plugins-base/ChangeLog
index 66cf2cbef5..25fdf7fe73 100644
--- a/subprojects/gst-plugins-base/ChangeLog
+++ b/subprojects/gst-plugins-base/ChangeLog
@@ -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:
diff --git a/subprojects/gst-plugins-base/NEWS b/subprojects/gst-plugins-base/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-plugins-base/NEWS
+++ b/subprojects/gst-plugins-base/NEWS
@@ -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
diff --git a/subprojects/gst-plugins-base/README b/subprojects/gst-plugins-base/README
index 17e60d01d7..1e442e6bc0 100644
--- a/subprojects/gst-plugins-base/README
+++ b/subprojects/gst-plugins-base/README
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
WHAT IT IS
----------
diff --git a/subprojects/gst-plugins-base/RELEASE b/subprojects/gst-plugins-base/RELEASE
index 2128ca5951..7772ac9f11 100644
--- a/subprojects/gst-plugins-base/RELEASE
+++ b/subprojects/gst-plugins-base/RELEASE
@@ -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.
diff --git a/subprojects/gst-plugins-base/gst-plugins-base.doap b/subprojects/gst-plugins-base/gst-plugins-base.doap
index 6fcb9be8ce..38991a5900 100644
--- a/subprojects/gst-plugins-base/gst-plugins-base.doap
+++ b/subprojects/gst-plugins-base/gst-plugins-base.doap
@@ -36,6 +36,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build
index fc7746c4b7..5ad1ab3add 100644
--- a/subprojects/gst-plugins-base/meson.build
+++ b/subprojects/gst-plugins-base/meson.build
@@ -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' ])
diff --git a/subprojects/gst-plugins-good/ChangeLog b/subprojects/gst-plugins-good/ChangeLog
index 9ea6aab2ab..5db352d7e8 100644
--- a/subprojects/gst-plugins-good/ChangeLog
+++ b/subprojects/gst-plugins-good/ChangeLog
@@ -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:
diff --git a/subprojects/gst-plugins-good/NEWS b/subprojects/gst-plugins-good/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-plugins-good/NEWS
+++ b/subprojects/gst-plugins-good/NEWS
@@ -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
diff --git a/subprojects/gst-plugins-good/README b/subprojects/gst-plugins-good/README
index 17e60d01d7..1e442e6bc0 100644
--- a/subprojects/gst-plugins-good/README
+++ b/subprojects/gst-plugins-good/README
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
WHAT IT IS
----------
diff --git a/subprojects/gst-plugins-good/RELEASE b/subprojects/gst-plugins-good/RELEASE
index 796bde464e..e038f04146 100644
--- a/subprojects/gst-plugins-good/RELEASE
+++ b/subprojects/gst-plugins-good/RELEASE
@@ -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.
diff --git a/subprojects/gst-plugins-good/docs/gst_plugins_cache.json b/subprojects/gst-plugins-good/docs/gst_plugins_cache.json
index e64ec9bd60..098c7c62a2 100644
--- a/subprojects/gst-plugins-good/docs/gst_plugins_cache.json
+++ b/subprojects/gst-plugins-good/docs/gst_plugins_cache.json
@@ -6607,7 +6607,7 @@
"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",
@@ -6619,7 +6619,7 @@
"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",
@@ -20478,7 +20478,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer/1.19.90",
+ "default": "GStreamer/1.20.0",
"mutable": "null",
"readable": true,
"type": "gchararray",
@@ -22435,7 +22435,7 @@
"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",
diff --git a/subprojects/gst-plugins-good/gst-plugins-good.doap b/subprojects/gst-plugins-good/gst-plugins-good.doap
index a807027350..232c33c74d 100644
--- a/subprojects/gst-plugins-good/gst-plugins-good.doap
+++ b/subprojects/gst-plugins-good/gst-plugins-good.doap
@@ -34,6 +34,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build
index 13b8f10a4f..c1a5ef16ef 100644
--- a/subprojects/gst-plugins-good/meson.build
+++ b/subprojects/gst-plugins-good/meson.build
@@ -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' ])
diff --git a/subprojects/gst-plugins-ugly/ChangeLog b/subprojects/gst-plugins-ugly/ChangeLog
index 337603ac4b..acaeb60e92 100644
--- a/subprojects/gst-plugins-ugly/ChangeLog
+++ b/subprojects/gst-plugins-ugly/ChangeLog
@@ -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>
diff --git a/subprojects/gst-plugins-ugly/NEWS b/subprojects/gst-plugins-ugly/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-plugins-ugly/NEWS
+++ b/subprojects/gst-plugins-ugly/NEWS
@@ -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
diff --git a/subprojects/gst-plugins-ugly/README b/subprojects/gst-plugins-ugly/README
index 17e60d01d7..1e442e6bc0 100644
--- a/subprojects/gst-plugins-ugly/README
+++ b/subprojects/gst-plugins-ugly/README
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
WHAT IT IS
----------
diff --git a/subprojects/gst-plugins-ugly/RELEASE b/subprojects/gst-plugins-ugly/RELEASE
index 4d0a301fee..e44e809979 100644
--- a/subprojects/gst-plugins-ugly/RELEASE
+++ b/subprojects/gst-plugins-ugly/RELEASE
@@ -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.
diff --git a/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap b/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
index 68dba52806..2aa374b178 100644
--- a/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
+++ b/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
@@ -35,6 +35,16 @@ might be widely known to present patent problems.
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build
index 2b812c0133..27be125c4f 100644
--- a/subprojects/gst-plugins-ugly/meson.build
+++ b/subprojects/gst-plugins-ugly/meson.build
@@ -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' ])
diff --git a/subprojects/gst-python/ChangeLog b/subprojects/gst-python/ChangeLog
index 31b9b95051..47648ab63d 100644
--- a/subprojects/gst-python/ChangeLog
+++ b/subprojects/gst-python/ChangeLog
@@ -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>
diff --git a/subprojects/gst-python/NEWS b/subprojects/gst-python/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-python/NEWS
+++ b/subprojects/gst-python/NEWS
@@ -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
diff --git a/subprojects/gst-python/RELEASE b/subprojects/gst-python/RELEASE
index 1d90472811..5bb5fdd19f 100644
--- a/subprojects/gst-python/RELEASE
+++ b/subprojects/gst-python/RELEASE
@@ -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.
diff --git a/subprojects/gst-python/gst-python.doap b/subprojects/gst-python/gst-python.doap
index 39cdcbb3d8..95c22b0138 100644
--- a/subprojects/gst-python/gst-python.doap
+++ b/subprojects/gst-python/gst-python.doap
@@ -32,6 +32,16 @@ GStreamer Python Bindings is a set of overrides and Gst fundamental types handli
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-python/meson.build b/subprojects/gst-python/meson.build
index c197664dec..acc3502e3d 100644
--- a/subprojects/gst-python/meson.build
+++ b/subprojects/gst-python/meson.build
@@ -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',
diff --git a/subprojects/gst-rtsp-server/ChangeLog b/subprojects/gst-rtsp-server/ChangeLog
index a63bbc599d..df039f6d6d 100644
--- a/subprojects/gst-rtsp-server/ChangeLog
+++ b/subprojects/gst-rtsp-server/ChangeLog
@@ -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>
diff --git a/subprojects/gst-rtsp-server/NEWS b/subprojects/gst-rtsp-server/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gst-rtsp-server/NEWS
+++ b/subprojects/gst-rtsp-server/NEWS
@@ -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
diff --git a/subprojects/gst-rtsp-server/RELEASE b/subprojects/gst-rtsp-server/RELEASE
index b7f80bf179..72467c730a 100644
--- a/subprojects/gst-rtsp-server/RELEASE
+++ b/subprojects/gst-rtsp-server/RELEASE
@@ -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.
diff --git a/subprojects/gst-rtsp-server/docs/gst_plugins_cache.json b/subprojects/gst-rtsp-server/docs/gst_plugins_cache.json
index 509ca4e683..e9367b4656 100644
--- a/subprojects/gst-rtsp-server/docs/gst_plugins_cache.json
+++ b/subprojects/gst-rtsp-server/docs/gst_plugins_cache.json
@@ -321,7 +321,7 @@
"construct": false,
"construct-only": false,
"controllable": false,
- "default": "GStreamer/1.19.90",
+ "default": "GStreamer/1.20.0",
"mutable": "null",
"readable": true,
"type": "gchararray",
diff --git a/subprojects/gst-rtsp-server/gst-rtsp-server.doap b/subprojects/gst-rtsp-server/gst-rtsp-server.doap
index 7a097e0563..cac5f62977 100644
--- a/subprojects/gst-rtsp-server/gst-rtsp-server.doap
+++ b/subprojects/gst-rtsp-server/gst-rtsp-server.doap
@@ -32,6 +32,16 @@ RTSP server library based on GStreamer
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-rtsp-server/meson.build b/subprojects/gst-rtsp-server/meson.build
index 834f20d1f2..35953af72c 100644
--- a/subprojects/gst-rtsp-server/meson.build
+++ b/subprojects/gst-rtsp-server/meson.build
@@ -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'])
diff --git a/subprojects/gstreamer-sharp/meson.build b/subprojects/gstreamer-sharp/meson.build
index b48ea71548..9fbd996104 100644
--- a/subprojects/gstreamer-sharp/meson.build
+++ b/subprojects/gstreamer-sharp/meson.build
@@ -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'
diff --git a/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs b/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
index 0fe1bf7176..4f344e868b 100644
--- a/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
+++ b/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
@@ -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
}
diff --git a/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs b/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
index b63105a303..48171a69fd 100644
--- a/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
+++ b/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
@@ -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
}
diff --git a/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml b/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
index 3e879bba1d..85dd67c0ac 100644
--- a/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
+++ b/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
@@ -12127,10 +12127,10 @@
<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">
@@ -21582,10 +21582,10 @@
<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">
diff --git a/subprojects/gstreamer-vaapi/ChangeLog b/subprojects/gstreamer-vaapi/ChangeLog
index 390e377df1..25f336e04f 100644
--- a/subprojects/gstreamer-vaapi/ChangeLog
+++ b/subprojects/gstreamer-vaapi/ChangeLog
@@ -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:
diff --git a/subprojects/gstreamer-vaapi/NEWS b/subprojects/gstreamer-vaapi/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gstreamer-vaapi/NEWS
+++ b/subprojects/gstreamer-vaapi/NEWS
@@ -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
diff --git a/subprojects/gstreamer-vaapi/RELEASE b/subprojects/gstreamer-vaapi/RELEASE
index ad28e846d8..24c0ab1134 100644
--- a/subprojects/gstreamer-vaapi/RELEASE
+++ b/subprojects/gstreamer-vaapi/RELEASE
@@ -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.
diff --git a/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap b/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
index 69de91328b..0cbaa83f29 100644
--- a/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
+++ b/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
@@ -27,6 +27,16 @@
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gstreamer-vaapi/meson.build b/subprojects/gstreamer-vaapi/meson.build
index d16caec8d7..2141fe0318 100644
--- a/subprojects/gstreamer-vaapi/meson.build
+++ b/subprojects/gstreamer-vaapi/meson.build
@@ -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' ])
diff --git a/subprojects/gstreamer/ChangeLog b/subprojects/gstreamer/ChangeLog
index d95bda4161..da6d04bd92 100644
--- a/subprojects/gstreamer/ChangeLog
+++ b/subprojects/gstreamer/ChangeLog
@@ -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:
diff --git a/subprojects/gstreamer/NEWS b/subprojects/gstreamer/NEWS
index 1a512c1848..eb637c9ed8 100644
--- a/subprojects/gstreamer/NEWS
+++ b/subprojects/gstreamer/NEWS
@@ -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
diff --git a/subprojects/gstreamer/README b/subprojects/gstreamer/README
index 17e60d01d7..1e442e6bc0 100644
--- a/subprojects/gstreamer/README
+++ b/subprojects/gstreamer/README
@@ -1,4 +1,4 @@
-GStreamer 1.19.x development series
+GStreamer 1.20.x stable series
WHAT IT IS
----------
diff --git a/subprojects/gstreamer/RELEASE b/subprojects/gstreamer/RELEASE
index a0910fddd8..d358469144 100644
--- a/subprojects/gstreamer/RELEASE
+++ b/subprojects/gstreamer/RELEASE
@@ -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.
diff --git a/subprojects/gstreamer/gstreamer.doap b/subprojects/gstreamer/gstreamer.doap
index 5807c216b7..0129e652b9 100644
--- a/subprojects/gstreamer/gstreamer.doap
+++ b/subprojects/gstreamer/gstreamer.doap
@@ -40,6 +40,16 @@ hierarchy, and a set of media-agnostic core elements.
<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>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build
index b0c5c7d4df..bc0633aba2 100644
--- a/subprojects/gstreamer/meson.build
+++ b/subprojects/gstreamer/meson.build
@@ -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' ])