Release 1.20.0

This commit is contained in:
Tim-Philipp Müller 2022-02-03 19:53:25 +00:00
parent 463bafdd23
commit f0b045a69b
77 changed files with 2225 additions and 1122 deletions

View file

@ -1,5 +1,5 @@
project('gstreamer-full', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : ['buildtype=debugoptimized',
# Needed due to https://github.com/mesonbuild/meson/issues/1889,

View file

@ -1,3 +1,18 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* gst-devtools.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
=== release 1.19.90 ===
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gst-devtools 1.19.90.
This is GStreamer gst-devtools 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -53,6 +53,16 @@
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-devtools', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'c_std=gnu99',

View file

@ -1,5 +1,5 @@
project('GStreamer manuals and tutorials', 'c',
version: '1.19.90',
version: '1.20.0',
meson_version : '>= 0.59')
hotdoc_p = find_program('hotdoc')

File diff suppressed because it is too large Load diff

View file

@ -1 +1 @@
1.19
1.20

View file

@ -1,3 +1,18 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* gst-editing-services.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
=== release 1.19.90 ===
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gst-editing-services 1.19.90.
This is GStreamer gst-editing-services 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -30,6 +30,16 @@ GStreamer library for creating audio and video editors
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-editing-services', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,4 +1,4 @@
project('gst-examples', 'c', version : '1.19.90', license : 'LGPL')
project('gst-examples', 'c', version : '1.20.0', license : 'LGPL')
cc = meson.get_compiler('c')
m_dep = cc.find_library('m', required : false)

View file

@ -1 +1 @@
project('gst-integration-testsuites', [], version: '1.19.90', meson_version : '>= 0.59', license: 'LGPL')
project('gst-integration-testsuites', [], version: '1.20.0', meson_version : '>= 0.59', license: 'LGPL')

View file

@ -1,3 +1,18 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* gst-libav.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
2022-01-28 19:58:55 +0100 Mathieu Duponchelle <mathieu@centricular.com>
* docs/gst_plugins_cache.json:

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gst-libav 1.19.90.
This is GStreamer gst-libav 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -32,6 +32,16 @@ colorspace conversion elements.
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-libav', 'c', 'cpp',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,18 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* gst-omx.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
=== release 1.19.90 ===
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gst-omx 1.19.90.
This is GStreamer gst-omx 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -31,6 +31,16 @@ a basic collection of elements
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-omx/gst-omx-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-omx', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,19 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* README:
* RELEASE:
* gst-plugins-bad.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
2022-02-02 09:58:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
* ext/dash/gstdashsink.c:

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,4 +1,4 @@
GStreamer 1.19.x development series
GStreamer 1.20.x stable series
WHAT IT IS
----------

View file

@ -1,13 +1,15 @@
This is GStreamer gst-plugins-bad 1.19.90.
This is GStreamer gst-plugins-bad 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -33,6 +33,16 @@ real live maintainer, or some actual wide use.
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-plugins-bad', 'c', 'cpp',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,19 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* README:
* RELEASE:
* gst-plugins-base.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
2022-02-03 18:18:03 +0000 Tim-Philipp Müller <tim@centricular.com>
* gst-libs/gst/video/meson.build:

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,4 +1,4 @@
GStreamer 1.19.x development series
GStreamer 1.20.x stable series
WHAT IT IS
----------

View file

@ -1,13 +1,15 @@
This is GStreamer gst-plugins-base 1.19.90.
This is GStreamer gst-plugins-base 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -34,6 +34,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-plugins-base', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,20 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* README:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-plugins-good.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
2022-02-01 05:07:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
* docs/meson.build:

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,4 +1,4 @@
GStreamer 1.19.x development series
GStreamer 1.20.x stable series
WHAT IT IS
----------

View file

@ -1,13 +1,15 @@
This is GStreamer gst-plugins-good 1.19.90.
This is GStreamer gst-plugins-good 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -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",

View file

@ -32,6 +32,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-plugins-good', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,19 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* README:
* RELEASE:
* gst-plugins-ugly.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
=== release 1.19.90 ===
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,4 +1,4 @@
GStreamer 1.19.x development series
GStreamer 1.20.x stable series
WHAT IT IS
----------

View file

@ -1,13 +1,15 @@
This is GStreamer gst-plugins-ugly 1.19.90.
This is GStreamer gst-plugins-ugly 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -33,6 +33,16 @@ might be widely known to present patent problems.
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-plugins-ugly', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,18 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* gst-python.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
=== release 1.19.90 ===
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gst-python 1.19.90.
This is GStreamer gst-python 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -30,6 +30,16 @@ GStreamer Python Bindings is a set of overrides and Gst fundamental types handli
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-python', 'c', 'cpp',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'c_std=gnu99',

View file

@ -1,3 +1,19 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* docs/gst_plugins_cache.json:
* gst-rtsp-server.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
=== release 1.19.90 ===
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gst-rtsp-server 1.19.90.
This is GStreamer gst-rtsp-server 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -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",

View file

@ -30,6 +30,16 @@ RTSP server library based on GStreamer
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gst-rtsp-server', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : ['warning_level=1', 'buildtype=debugoptimized'])

View file

@ -1,4 +1,4 @@
project('gstreamer-sharp', ['cs', 'c'], version: '1.19.90',
project('gstreamer-sharp', ['cs', 'c'], version: '1.20.0',
meson_version : '>= 0.59', license: 'LGPL')
if host_machine.system() == 'osx'

View file

@ -17,8 +17,8 @@ namespace Gst.PbUtils {
public const string ENCODING_CATEGORY_ONLINE_SERVICE = @"online-service";
public const string ENCODING_CATEGORY_STORAGE_EDITING = @"storage-editing";
public const int PLUGINS_BASE_VERSION_MAJOR = 1;
public const int PLUGINS_BASE_VERSION_MICRO = 90;
public const int PLUGINS_BASE_VERSION_MINOR = 19;
public const int PLUGINS_BASE_VERSION_MICRO = 0;
public const int PLUGINS_BASE_VERSION_MINOR = 20;
public const int PLUGINS_BASE_VERSION_NANO = 0;
#endregion
}

View file

@ -170,8 +170,8 @@ namespace Gst {
public const int VALUE_LESS_THAN = -1;
public const int VALUE_UNORDERED = 2;
public const int VERSION_MAJOR = 1;
public const int VERSION_MICRO = 90;
public const int VERSION_MINOR = 19;
public const int VERSION_MICRO = 0;
public const int VERSION_MINOR = 20;
public const int VERSION_NANO = 0;
#endregion
}

View file

@ -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">

View file

@ -1,3 +1,18 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* RELEASE:
* gstreamer-vaapi.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
* gst/vaapi/gstvaapipluginutil.c:

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,13 +1,15 @@
This is GStreamer gstreamer-vaapi 1.19.90.
This is GStreamer gstreamer-vaapi 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -25,6 +25,16 @@
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gstreamer-vaapi', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])

View file

@ -1,3 +1,19 @@
=== release 1.20.0 ===
2022-02-03 19:53:25 +0000 Tim-Philipp Müller <tim@centricular.com>
* NEWS:
* README:
* RELEASE:
* gstreamer.doap:
* meson.build:
Release 1.20.0
2022-02-03 19:53:18 +0000 Tim-Philipp Müller <tim@centricular.com>
* ChangeLog:
Update ChangeLogs for 1.20.0
2022-02-02 18:06:49 +1100 Matthew Waters <matthew@centricular.com>
* gst/gst.c:

View file

@ -1,19 +1,11 @@
GStreamer 1.20 Release Notes
GStreamer 1.20 has not been released yet. It is scheduled for release in
late January / early February 2022.
1.19.x is the unstable development version that is being developed in
the git main branch and which will eventually result in 1.20, and
1.19.90 is the first release candidate in that series (1.20rc1).
1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
GStreamer 1.20.0 was released on 3 February 2022.
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
version of this document.
Last updated: Wednesday 26 January 2022, 01:00 UTC (log)
Last updated: Wednesday 2 February 2022, 23:30 UTC (log)
Introduction
@ -36,16 +28,16 @@ Highlights
- RTP header extensions: unified support in RTP depayloader and
payloader base classes
- SMPTE 2022-1 2-D Forward Error Correction support
- Smart encoding (passthrough) support for VP8, VP9, H.265 in
- Smart encoding (pass through) support for VP8, VP9, H.265 in
encodebin and transcodebin
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
support experimental)
- Video decoder subframe support
- Video decoder automatic packet-loss, data corruption, and keyframe
request handling for RTP / WebRTC / RTSP
- MP4 and Matroska muxers now support profile/level/resolution changes
for H264/H265 input streams (i.e. codec data changing on the fly)
- MP4 muxing mode that initially creates a fragmented mp4 which is
- mp4 and Matroska muxers now support profile/level/resolution changes
for H.264/H.265 input streams (i.e. codec data changing on the fly)
- mp4 muxing mode that initially creates a fragmented mp4 which is
converted to a regular mp4 on EOS
- Audio support for the WebKit Port for Embedded (WPE) web page source
element
@ -54,7 +46,7 @@ Highlights
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
elements
- Many WebRTC improvements
- The new VA-API plugin implemention fleshed out with more decoders
- The new VA-API plugin implementation fleshed out with more decoders
and new postproc elements
- AppSink API to retrieve events in addition to buffers and buffer
lists
@ -64,8 +56,8 @@ Highlights
- Updated Rust bindings and many new Rust plugins
- Improved support for custom minimal GStreamer builds
- Support build against FFmpeg 5.0
- Linux Stateless CODEC support gained MPEG2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
- Linux Stateless CODEC support gained MPEG-2 and VP9
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
- Lots of new plugins, features, performance improvements and bug
fixes
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
freedesktop.org GitLab.
In addition to these separate git repositories there was a gst-build
module that would use the Meson build systemss subproject feature to
module that would use the Meson build systems 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 theres a single producer of these metas;
its 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 isnt 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 ffmpegs Decklink support, fails parsing CDP
software, including FFmpegs 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 its 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>".
- Its now allowed to create an empty GstVideoOverlayComposition
- Its 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

View file

@ -1,4 +1,4 @@
GStreamer 1.19.x development series
GStreamer 1.20.x stable series
WHAT IT IS
----------

View file

@ -1,13 +1,15 @@
This is GStreamer core 1.19.90.
This is GStreamer core 1.20.0.
GStreamer 1.19 is the development branch leading up to the next major
stable version which will be 1.20.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
The 1.19 development series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
framework.
As always, this release is again packed with new features, bug fixes and
other improvements.
Full release notes will one day be found at:
The 1.20 release series adds new features on top of the 1.18 series and is
part of the API and ABI-stable 1.x release series.
Full release notes can be found at:
https://gstreamer.freedesktop.org/releases/1.20/
@ -57,7 +59,7 @@ You can find source releases of gstreamer in the download
directory: https://gstreamer.freedesktop.org/src/gstreamer/
The git repository and details how to clone it can be found at
https://gitlab.freedesktop.org/gstreamer/
https://gitlab.freedesktop.org/gstreamer/gstreamer/
==== Homepage ====
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
==== Support and Bugs ====
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
for bug reports and feature requests:
We track bugs and feature requests in GitLab:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
Please submit patches via GitLab as well, in form of Merge Requests. See
@ -81,11 +82,14 @@ gstreamer-devel mailing list (see below for details).
There is also a #gstreamer IRC channel on the OFTC IRC network.
Please do not submit support requests in GitLab, we only use it
for bug tracking and merge requests review.
==== Developers ====
GStreamer source code repositories can be found on GitLab on freedesktop.org:
The GStreamer source code repository can be found on GitLab on freedesktop.org:
https://gitlab.freedesktop.org/gstreamer
https://gitlab.freedesktop.org/gstreamer/gstreamer/
and can also be cloned from there and this is also where you can submit
Merge Requests or file issues for bugs or feature requests.

View file

@ -38,6 +38,16 @@ hierarchy, and a set of media-agnostic core elements.
</GitRepository>
</repository>
<release>
<Version>
<revision>1.20.0</revision>
<branch>main</branch>
<name></name>
<created>2022-02-03</created>
<file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.20.0.tar.xz" />
</Version>
</release>
<release>
<Version>
<revision>1.19.90</revision>

View file

@ -1,5 +1,5 @@
project('gstreamer', 'c',
version : '1.19.90',
version : '1.20.0',
meson_version : '>= 0.59',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])