mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 11:41:09 +00:00
Release 1.20.0
This commit is contained in:
parent
463bafdd23
commit
f0b045a69b
77 changed files with 2225 additions and 1122 deletions
|
@ -1,5 +1,5 @@
|
||||||
project('gstreamer-full', 'c',
|
project('gstreamer-full', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : ['buildtype=debugoptimized',
|
default_options : ['buildtype=debugoptimized',
|
||||||
# Needed due to https://github.com/mesonbuild/meson/issues/1889,
|
# Needed due to https://github.com/mesonbuild/meson/issues/1889,
|
||||||
|
|
|
@ -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 ===
|
=== release 1.19.90 ===
|
||||||
|
|
||||||
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -53,6 +53,16 @@
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-devtools', 'c',
|
project('gst-devtools', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'c_std=gnu99',
|
'c_std=gnu99',
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('GStreamer manuals and tutorials', 'c',
|
project('GStreamer manuals and tutorials', 'c',
|
||||||
version: '1.19.90',
|
version: '1.20.0',
|
||||||
meson_version : '>= 0.59')
|
meson_version : '>= 0.59')
|
||||||
|
|
||||||
hotdoc_p = find_program('hotdoc')
|
hotdoc_p = find_program('hotdoc')
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1 +1 @@
|
||||||
1.19
|
1.20
|
|
@ -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 ===
|
=== release 1.19.90 ===
|
||||||
|
|
||||||
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -30,6 +30,16 @@ GStreamer library for creating audio and video editors
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-editing-services', 'c',
|
project('gst-editing-services', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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')
|
cc = meson.get_compiler('c')
|
||||||
m_dep = cc.find_library('m', required : false)
|
m_dep = cc.find_library('m', required : false)
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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>
|
2022-01-28 19:58:55 +0100 Mathieu Duponchelle <mathieu@centricular.com>
|
||||||
|
|
||||||
* docs/gst_plugins_cache.json:
|
* docs/gst_plugins_cache.json:
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -32,6 +32,16 @@ colorspace conversion elements.
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-libav', 'c', 'cpp',
|
project('gst-libav', 'c', 'cpp',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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 ===
|
=== release 1.19.90 ===
|
||||||
|
|
||||||
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -31,6 +31,16 @@ a basic collection of elements
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-omx', 'c',
|
project('gst-omx', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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>
|
2022-02-02 09:58:15 +0100 Stéphane Cerveau <scerveau@collabora.com>
|
||||||
|
|
||||||
* ext/dash/gstdashsink.c:
|
* ext/dash/gstdashsink.c:
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
GStreamer 1.19.x development series
|
GStreamer 1.20.x stable series
|
||||||
|
|
||||||
WHAT IT IS
|
WHAT IT IS
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -33,6 +33,16 @@ real live maintainer, or some actual wide use.
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-plugins-bad', 'c', 'cpp',
|
project('gst-plugins-bad', 'c', 'cpp',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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>
|
2022-02-03 18:18:03 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
||||||
* gst-libs/gst/video/meson.build:
|
* gst-libs/gst/video/meson.build:
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
GStreamer 1.19.x development series
|
GStreamer 1.20.x stable series
|
||||||
|
|
||||||
WHAT IT IS
|
WHAT IT IS
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -34,6 +34,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-plugins-base', 'c',
|
project('gst-plugins-base', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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>
|
2022-02-01 05:07:04 +0530 Nirbheek Chauhan <nirbheek@centricular.com>
|
||||||
|
|
||||||
* docs/meson.build:
|
* docs/meson.build:
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
GStreamer 1.19.x development series
|
GStreamer 1.20.x stable series
|
||||||
|
|
||||||
WHAT IT IS
|
WHAT IT IS
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -6607,7 +6607,7 @@
|
||||||
"construct": false,
|
"construct": false,
|
||||||
"construct-only": false,
|
"construct-only": false,
|
||||||
"controllable": false,
|
"controllable": false,
|
||||||
"default": "GStreamer 1.19.90 FLV muxer",
|
"default": "GStreamer 1.20.0 FLV muxer",
|
||||||
"mutable": "null",
|
"mutable": "null",
|
||||||
"readable": true,
|
"readable": true,
|
||||||
"type": "gchararray",
|
"type": "gchararray",
|
||||||
|
@ -6619,7 +6619,7 @@
|
||||||
"construct": false,
|
"construct": false,
|
||||||
"construct-only": false,
|
"construct-only": false,
|
||||||
"controllable": false,
|
"controllable": false,
|
||||||
"default": "GStreamer 1.19.90 FLV muxer",
|
"default": "GStreamer 1.20.0 FLV muxer",
|
||||||
"mutable": "null",
|
"mutable": "null",
|
||||||
"readable": true,
|
"readable": true,
|
||||||
"type": "gchararray",
|
"type": "gchararray",
|
||||||
|
@ -20478,7 +20478,7 @@
|
||||||
"construct": false,
|
"construct": false,
|
||||||
"construct-only": false,
|
"construct-only": false,
|
||||||
"controllable": false,
|
"controllable": false,
|
||||||
"default": "GStreamer/1.19.90",
|
"default": "GStreamer/1.20.0",
|
||||||
"mutable": "null",
|
"mutable": "null",
|
||||||
"readable": true,
|
"readable": true,
|
||||||
"type": "gchararray",
|
"type": "gchararray",
|
||||||
|
@ -22435,7 +22435,7 @@
|
||||||
"construct": false,
|
"construct": false,
|
||||||
"construct-only": false,
|
"construct-only": false,
|
||||||
"controllable": false,
|
"controllable": false,
|
||||||
"default": "GStreamer souphttpsrc 1.19.90 ",
|
"default": "GStreamer souphttpsrc 1.20.0 ",
|
||||||
"mutable": "null",
|
"mutable": "null",
|
||||||
"readable": true,
|
"readable": true,
|
||||||
"type": "gchararray",
|
"type": "gchararray",
|
||||||
|
|
|
@ -32,6 +32,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-plugins-good', 'c',
|
project('gst-plugins-good', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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 ===
|
=== release 1.19.90 ===
|
||||||
|
|
||||||
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
GStreamer 1.19.x development series
|
GStreamer 1.20.x stable series
|
||||||
|
|
||||||
WHAT IT IS
|
WHAT IT IS
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -33,6 +33,16 @@ might be widely known to present patent problems.
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-plugins-ugly', 'c',
|
project('gst-plugins-ugly', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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 ===
|
=== release 1.19.90 ===
|
||||||
|
|
||||||
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -30,6 +30,16 @@ GStreamer Python Bindings is a set of overrides and Gst fundamental types handli
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-python', 'c', 'cpp',
|
project('gst-python', 'c', 'cpp',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'c_std=gnu99',
|
'c_std=gnu99',
|
||||||
|
|
|
@ -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 ===
|
=== release 1.19.90 ===
|
||||||
|
|
||||||
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
2022-01-28 14:28:35 +0000 Tim-Philipp Müller <tim@centricular.com>
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -321,7 +321,7 @@
|
||||||
"construct": false,
|
"construct": false,
|
||||||
"construct-only": false,
|
"construct-only": false,
|
||||||
"controllable": false,
|
"controllable": false,
|
||||||
"default": "GStreamer/1.19.90",
|
"default": "GStreamer/1.20.0",
|
||||||
"mutable": "null",
|
"mutable": "null",
|
||||||
"readable": true,
|
"readable": true,
|
||||||
"type": "gchararray",
|
"type": "gchararray",
|
||||||
|
|
|
@ -30,6 +30,16 @@ RTSP server library based on GStreamer
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gst-rtsp-server', 'c',
|
project('gst-rtsp-server', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : ['warning_level=1', 'buildtype=debugoptimized'])
|
default_options : ['warning_level=1', 'buildtype=debugoptimized'])
|
||||||
|
|
||||||
|
|
|
@ -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')
|
meson_version : '>= 0.59', license: 'LGPL')
|
||||||
|
|
||||||
if host_machine.system() == 'osx'
|
if host_machine.system() == 'osx'
|
||||||
|
|
|
@ -17,8 +17,8 @@ namespace Gst.PbUtils {
|
||||||
public const string ENCODING_CATEGORY_ONLINE_SERVICE = @"online-service";
|
public const string ENCODING_CATEGORY_ONLINE_SERVICE = @"online-service";
|
||||||
public const string ENCODING_CATEGORY_STORAGE_EDITING = @"storage-editing";
|
public const string ENCODING_CATEGORY_STORAGE_EDITING = @"storage-editing";
|
||||||
public const int PLUGINS_BASE_VERSION_MAJOR = 1;
|
public const int PLUGINS_BASE_VERSION_MAJOR = 1;
|
||||||
public const int PLUGINS_BASE_VERSION_MICRO = 90;
|
public const int PLUGINS_BASE_VERSION_MICRO = 0;
|
||||||
public const int PLUGINS_BASE_VERSION_MINOR = 19;
|
public const int PLUGINS_BASE_VERSION_MINOR = 20;
|
||||||
public const int PLUGINS_BASE_VERSION_NANO = 0;
|
public const int PLUGINS_BASE_VERSION_NANO = 0;
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -170,8 +170,8 @@ namespace Gst {
|
||||||
public const int VALUE_LESS_THAN = -1;
|
public const int VALUE_LESS_THAN = -1;
|
||||||
public const int VALUE_UNORDERED = 2;
|
public const int VALUE_UNORDERED = 2;
|
||||||
public const int VERSION_MAJOR = 1;
|
public const int VERSION_MAJOR = 1;
|
||||||
public const int VERSION_MICRO = 90;
|
public const int VERSION_MICRO = 0;
|
||||||
public const int VERSION_MINOR = 19;
|
public const int VERSION_MINOR = 20;
|
||||||
public const int VERSION_NANO = 0;
|
public const int VERSION_NANO = 0;
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
@ -12127,10 +12127,10 @@
|
||||||
<constant value="1" ctype="gint" gtype="gint" name="VALUE_GREATER_THAN" />
|
<constant value="1" ctype="gint" gtype="gint" name="VALUE_GREATER_THAN" />
|
||||||
<constant value="-1" ctype="gint" gtype="gint" name="VALUE_LESS_THAN" />
|
<constant value="-1" ctype="gint" gtype="gint" name="VALUE_LESS_THAN" />
|
||||||
<constant value="2" ctype="gint" gtype="gint" name="VALUE_UNORDERED" />
|
<constant value="2" ctype="gint" gtype="gint" name="VALUE_UNORDERED" />
|
||||||
<constant value="1" ctype="gint" gtype="gint" name="VERSION_MAJOR" />
|
<constant value="1" ctype="gint" gtype="gint" name="VERSION_MAJOR" />
|
||||||
<constant value="90" ctype="gint" gtype="gint" name="VERSION_MICRO" />
|
<constant value="0" ctype="gint" gtype="gint" name="VERSION_MICRO" />
|
||||||
<constant value="19" ctype="gint" gtype="gint" name="VERSION_MINOR" />
|
<constant value="20" ctype="gint" gtype="gint" name="VERSION_MINOR" />
|
||||||
<constant value="0" ctype="gint" gtype="gint" name="VERSION_NANO" />
|
<constant value="0" ctype="gint" gtype="gint" name="VERSION_NANO" />
|
||||||
</object>
|
</object>
|
||||||
<class name="Parse" cname="GstParse" disable_void_ctor="1">
|
<class name="Parse" cname="GstParse" disable_void_ctor="1">
|
||||||
<method name="ParseBinFromDescription" cname="gst_parse_bin_from_description" shared="true">
|
<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="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="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="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="1" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MAJOR" />
|
||||||
<constant value="90" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MICRO" />
|
<constant value="0" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MICRO" />
|
||||||
<constant value="19" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MINOR" />
|
<constant value="20" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MINOR" />
|
||||||
<constant value="0" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_NANO" />
|
<constant value="0" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_NANO" />
|
||||||
</object>
|
</object>
|
||||||
</namespace>
|
</namespace>
|
||||||
<namespace name="Gst.Rtp" library="gstrtp-1.0-0.dll">
|
<namespace name="Gst.Rtp" library="gstrtp-1.0-0.dll">
|
||||||
|
|
|
@ -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>
|
2022-01-30 09:38:48 +0100 Víctor Manuel Jáquez Leal <vjaquez@igalia.com>
|
||||||
|
|
||||||
* gst/vaapi/gstvaapipluginutil.c:
|
* gst/vaapi/gstvaapipluginutil.c:
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -25,6 +25,16 @@
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gstreamer-vaapi', 'c',
|
project('gstreamer-vaapi', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
|
@ -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>
|
2022-02-02 18:06:49 +1100 Matthew Waters <matthew@centricular.com>
|
||||||
|
|
||||||
* gst/gst.c:
|
* gst/gst.c:
|
||||||
|
|
|
@ -1,19 +1,11 @@
|
||||||
GStreamer 1.20 Release Notes
|
GStreamer 1.20 Release Notes
|
||||||
|
|
||||||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
GStreamer 1.20.0 was released on 3 February 2022.
|
||||||
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.
|
|
||||||
|
|
||||||
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
|
||||||
version of this document.
|
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
|
Introduction
|
||||||
|
|
||||||
|
@ -36,16 +28,16 @@ Highlights
|
||||||
- RTP header extensions: unified support in RTP depayloader and
|
- RTP header extensions: unified support in RTP depayloader and
|
||||||
payloader base classes
|
payloader base classes
|
||||||
- SMPTE 2022-1 2-D Forward Error Correction support
|
- 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
|
encodebin and transcodebin
|
||||||
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
- Runtime compatibility support for libsoup2 and libsoup3 (libsoup3
|
||||||
support experimental)
|
support experimental)
|
||||||
- Video decoder subframe support
|
- Video decoder subframe support
|
||||||
- Video decoder automatic packet-loss, data corruption, and keyframe
|
- Video decoder automatic packet-loss, data corruption, and keyframe
|
||||||
request handling for RTP / WebRTC / RTSP
|
request handling for RTP / WebRTC / RTSP
|
||||||
- MP4 and Matroska muxers now support profile/level/resolution changes
|
- mp4 and Matroska muxers now support profile/level/resolution changes
|
||||||
for H264/H265 input streams (i.e. codec data changing on the fly)
|
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
|
- mp4 muxing mode that initially creates a fragmented mp4 which is
|
||||||
converted to a regular mp4 on EOS
|
converted to a regular mp4 on EOS
|
||||||
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
- Audio support for the WebKit Port for Embedded (WPE) web page source
|
||||||
element
|
element
|
||||||
|
@ -54,7 +46,7 @@ Highlights
|
||||||
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
- NVIDIA memory:NVMM support for OpenGL glupload and gldownload
|
||||||
elements
|
elements
|
||||||
- Many WebRTC improvements
|
- 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
|
and new postproc elements
|
||||||
- AppSink API to retrieve events in addition to buffers and buffer
|
- AppSink API to retrieve events in addition to buffers and buffer
|
||||||
lists
|
lists
|
||||||
|
@ -64,8 +56,8 @@ Highlights
|
||||||
- Updated Rust bindings and many new Rust plugins
|
- Updated Rust bindings and many new Rust plugins
|
||||||
- Improved support for custom minimal GStreamer builds
|
- Improved support for custom minimal GStreamer builds
|
||||||
- Support build against FFmpeg 5.0
|
- Support build against FFmpeg 5.0
|
||||||
- Linux Stateless CODEC support gained MPEG2 and VP9
|
- Linux Stateless CODEC support gained MPEG-2 and VP9
|
||||||
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG2 support
|
- Windows Direct3D11/DXVA decoder gained AV1 and MPEG-2 support
|
||||||
- Lots of new plugins, features, performance improvements and bug
|
- Lots of new plugins, features, performance improvements and bug
|
||||||
fixes
|
fixes
|
||||||
|
|
||||||
|
@ -87,7 +79,7 @@ and which have so far been developed in separate git repositories in
|
||||||
freedesktop.org GitLab.
|
freedesktop.org GitLab.
|
||||||
|
|
||||||
In addition to these separate git repositories there was a gst-build
|
In addition to these separate git repositories there was a gst-build
|
||||||
module that would use the Meson build systems’s subproject feature to
|
module that would use the Meson build system’s subproject feature to
|
||||||
download each individual module and then build everything in one go. It
|
download each individual module and then build everything in one go. It
|
||||||
would also provide an uninstalled development environment that made it
|
would also provide an uninstalled development environment that made it
|
||||||
easy to work on GStreamer and use or test versions other than the
|
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
|
- vp8alphadecodebin + vp9alphadecodebin are wrapper bins that use
|
||||||
the regular vp8dec and vp9dec software decoders to decode
|
the regular vp8dec and vp9dec software decoders to decode
|
||||||
regular and alpha streams and combine them again. To decodebin
|
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
|
- The V4L2 CODEC plugin has stateless VP8/VP9 decoders that can
|
||||||
decode both alpha and non-alpha stream with a single decoder
|
decode both alpha and non-alpha stream with a single decoder
|
||||||
instance
|
instance
|
||||||
|
@ -257,7 +249,7 @@ AppSink and AppSrc improvements
|
||||||
or buffer list, whatever is next in the queue.
|
or buffer list, whatever is next in the queue.
|
||||||
|
|
||||||
EOS events will be filtered and will not be returned. EOS handling
|
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
|
- appsrc: allow configuration of internal queue limits in time and
|
||||||
buffers and add leaky mode.
|
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
|
for most scenarios is negligible however. This new API is useful for
|
||||||
experimentation or proprietary metas, but also has some limitations:
|
experimentation or proprietary metas, but also has some limitations:
|
||||||
it can only be used if there’s a single producer of these metas;
|
it can only be used if there’s a single producer of these metas;
|
||||||
it’s not allowed to register the same custom meta multiple times or
|
registering the same custom meta multiple times or from multiple
|
||||||
from multiple places.
|
places is not allowed.
|
||||||
|
|
||||||
Additional Element Properties on Encoding Profiles
|
Additional Element Properties on Encoding Profiles
|
||||||
|
|
||||||
|
@ -414,8 +406,9 @@ Improved support for custom minimal GStreamer builds
|
||||||
facilitate minimal custom GStreamer builds.
|
facilitate minimal custom GStreamer builds.
|
||||||
|
|
||||||
- A number of new macros have been added to declare and create
|
- A number of new macros have been added to declare and create
|
||||||
per-element and per-pluginfeature register functions in all plugins,
|
per-element and per-plugin feature register functions in all
|
||||||
and then call those from the per-plugin plugin_init functions:
|
plugins, and then call those from the per-plugin plugin_init
|
||||||
|
functions:
|
||||||
|
|
||||||
- GST_ELEMENT_REGISTER_DEFINE,
|
- GST_ELEMENT_REGISTER_DEFINE,
|
||||||
GST_DEVICE_PROVIDER_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
|
function defined by the REGISTER_DEFINE macro
|
||||||
- and various variants for advanced use cases.
|
- and various variants for advanced use cases.
|
||||||
|
|
||||||
- This means that applications can call the per-element and
|
- This means that applications can call the per-element and per-plugin
|
||||||
per-pluginfeature registration functions for only the elements they
|
feature registration functions for only the elements they need
|
||||||
need instead of registering plugins as a whole with all kinds of
|
instead of registering plugins as a whole with all kinds of elements
|
||||||
elements that may not be required (e.g. encoder and decoder instead
|
that may not be required (e.g. encoder and decoder instead of just
|
||||||
of just decoder). In case of static linking all unused functions and
|
decoder). In case of static linking all unused functions and their
|
||||||
their dependencies would be removed in this case by the linker,
|
dependencies would be removed in this case by the linker, which
|
||||||
which helps minimise binary size for custom builds.
|
helps minimise binary size for custom builds.
|
||||||
|
|
||||||
- gst_init() will automatically call a gst_init_static_plugins()
|
- gst_init() will automatically call a gst_init_static_plugins()
|
||||||
function if one exists.
|
function if one exists.
|
||||||
|
@ -477,8 +470,8 @@ New elements
|
||||||
|
|
||||||
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
- openaptx: aptX and aptX-HD codecs using libopenaptx (v0.2.0)
|
||||||
|
|
||||||
- qroverlay, debugqroverlay: new elements that allows overlaying data
|
- qroverlay, debugqroverlay: new elements that allow overlaying data
|
||||||
on top of video in form of a QR code
|
on top of video in the form of a QR code
|
||||||
|
|
||||||
- cvtracker: new OpenCV-based tracker element
|
- cvtracker: new OpenCV-based tracker element
|
||||||
|
|
||||||
|
@ -535,9 +528,9 @@ New elements
|
||||||
closed captions stream
|
closed captions stream
|
||||||
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
- cea608tojson: Converts CEA-608 Closed Captions to a JSON
|
||||||
representation
|
representation
|
||||||
- cmafmux: CMAF fragmented MP4 muxer
|
- cmafmux: CMAF fragmented mp4 muxer
|
||||||
- dashmp4mux: DASH fragmented MP4 muxer
|
- dashmp4mux: DASH fragmented mp4 muxer
|
||||||
- isofmp4mux: ISO fragmented MP4 muxer
|
- isofmp4mux: ISO fragmented mp4 muxer
|
||||||
- ebur128level: EBU R128 Loudness Level Measurement
|
- ebur128level: EBU R128 Loudness Level Measurement
|
||||||
- ffv1dec: FFV1 video decoder
|
- ffv1dec: FFV1 video decoder
|
||||||
- gtk4paintablesink: GTK4 video sink, which provides a
|
- gtk4paintablesink: GTK4 video sink, which provides a
|
||||||
|
@ -577,7 +570,7 @@ New elements
|
||||||
|
|
||||||
- New hardware accelerated elements for Linux:
|
- 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
|
- v4l2slvp9dec: Support for Linux Stateless VP9 decoders
|
||||||
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
- v4l2slvp8alphadecodebin: Support HW accelerated VP8 with alpha
|
||||||
layer decoding
|
layer decoding
|
||||||
|
@ -630,7 +623,7 @@ New element features and additions
|
||||||
rewriting input captions, for example when the input is CDP then
|
rewriting input captions, for example when the input is CDP then
|
||||||
sequence counters are rewritten, time codes are dropped and
|
sequence counters are rewritten, time codes are dropped and
|
||||||
potentially re-injected if the input video frame had a time code
|
potentially re-injected if the input video frame had a time code
|
||||||
meta. This can also lead to the input drifting from synchronization,
|
meta. This can also lead to the input drifting from synchronisation,
|
||||||
when there isn’t enough padding in the input stream to catch up. In
|
when there isn’t enough padding in the input stream to catch up. In
|
||||||
that case the element will start dropping old caption buffers once
|
that case the element will start dropping old caption buffers once
|
||||||
the number of buffers in its internal queue reaches a certain limit
|
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
|
- ccconverter: new "cdp-mode" property to specify which sections to
|
||||||
include in CDP packets (timecode, CC data, service info). Various
|
include in CDP packets (timecode, CC data, service info). Various
|
||||||
software, including ffmpeg’s Decklink support, fails parsing CDP
|
software, including FFmpeg’s Decklink support, fails parsing CDP
|
||||||
packets that contain anything but CC data in the CDP packets.
|
packets that contain anything but CC data in the CDP packets.
|
||||||
|
|
||||||
- clocksync: new "sync-to-first" property for automatic timestamp
|
- clocksync: new "sync-to-first" property for automatic timestamp
|
||||||
|
@ -677,7 +670,7 @@ New element features and additions
|
||||||
alpha (also glvideomixer and other GstVideoAggregator
|
alpha (also glvideomixer and other GstVideoAggregator
|
||||||
subclasses)
|
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
|
playlist/fragment output
|
||||||
|
|
||||||
- decodebin3:
|
- decodebin3:
|
||||||
|
@ -702,7 +695,7 @@ New element features and additions
|
||||||
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
- add “smart encoding” support for H.265, VP8 and VP9 (i.e. only
|
||||||
re-encode where needed and otherwise pass through encoded video
|
re-encode where needed and otherwise pass through encoded video
|
||||||
as-is).
|
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
|
stream-format, but if not specified default to avc3/hvc1 with
|
||||||
in-band SPS/PPS/VPS signalling for more flexibility.
|
in-band SPS/PPS/VPS signalling for more flexibility.
|
||||||
- new encodebin2 element with dynamic/sometimes source pads in
|
- 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
|
- matroskademux, matroskamux: Add support for ffv1, a lossless
|
||||||
intra-frame video coding format.
|
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
|
(i.e. stream-format avc3 and hev1) which allows on-the-fly
|
||||||
profile/level/resolution changes.
|
profile/level/resolution changes.
|
||||||
|
|
||||||
|
@ -770,9 +763,9 @@ New element features and additions
|
||||||
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
- rtpsrc: add "caps" property to allow explicit setting of the caps
|
||||||
where needed
|
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
|
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
|
where they can be picked up again by mpegtsmux. This required a
|
||||||
semantic change in the SCTE-35 section API: timestamps are now in
|
semantic change in the SCTE-35 section API: timestamps are now in
|
||||||
running time instead of muxer pts.
|
running time instead of muxer pts.
|
||||||
|
@ -782,7 +775,7 @@ New element features and additions
|
||||||
|
|
||||||
- mpegtsmux:
|
- 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
|
- PCR timing accuracy: Improvements to the way mpegtsmux
|
||||||
outputs PCR observations in CBR mode, so that a PCR
|
outputs PCR observations in CBR mode, so that a PCR
|
||||||
observation is always inserted when needed, so that we never
|
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
|
- support H.264 avc3 and H.265 hvc1 stream formats as input where
|
||||||
the codec data is signalled in-band inside the bitstream instead
|
the codec data is signalled in-band inside the bitstream instead
|
||||||
of caps/file headers.
|
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
|
streams (i.e. codec data changing on the fly). Each codec_data
|
||||||
is put into its own SampleTableEntry inside the stsd, unless the
|
is put into its own SampleTableEntry inside the stsd, unless the
|
||||||
input is in avc3 stream format in which case it’s written
|
input is in avc3 stream format in which case it’s written
|
||||||
in-band an not in the headers.
|
in-band and not in the headers.
|
||||||
|
|
||||||
- multifilesink: new ""min-keyframe-distance"" property to make
|
- multifilesink: new ""min-keyframe-distance"" property to make
|
||||||
minimum distance between keyframes in next-file=key-frame mode
|
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
|
work, the soup plugin now tries to determine the libsoup version
|
||||||
used by the application (and its other dependencies) at runtime on
|
used by the application (and its other dependencies) at runtime on
|
||||||
systems where GStreamer is linked dynamically. libsoup3 support is
|
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
|
- srtsrc, srtsink: add signals for the application to accept/reject
|
||||||
incoming connections
|
incoming connections
|
||||||
|
@ -1045,7 +1040,7 @@ Core
|
||||||
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
- GstSharedTaskPool: new “shared” task pool subclass with slightly
|
||||||
different default behaviour than the existing GstTaskPool which
|
different default behaviour than the existing GstTaskPool which
|
||||||
would create unlimited number of threads for new tasks. The shared
|
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
|
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
|
thread is available. It is possible to join tasks. This can be used
|
||||||
by plugins to implement simple multi-threaded processing and is used
|
by plugins to implement simple multi-threaded processing and is used
|
||||||
|
@ -1078,20 +1073,20 @@ Plugins Base Utils library
|
||||||
extension for given caps.
|
extension for given caps.
|
||||||
|
|
||||||
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
- gst_codec_utils_h264_get_profile_flags_level(): Parses profile,
|
||||||
flags, and level from H264 AvcC codec_data. The format of H264 AVCC
|
flags, and level from H.264 AvcC codec_data. The format of H.264
|
||||||
extradata/sequence_header is documented in the ITU-T 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
|
specification section 7.3.2.1.1 as well as in ISO/IEC 14496-15
|
||||||
section 5.3.3.1.2.
|
section 5.3.3.1.2.
|
||||||
|
|
||||||
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
- gst_codec_utils_caps_get_mime_codec() to convert caps to a RFC 6381
|
||||||
compatible MIME codec string codec. Useful for providing the codecs
|
compatible MIME codec string codec. Useful for providing the codecs
|
||||||
field inside the Content-Type HTTP header for containerized formats,
|
field inside the Content-Type HTTP header for container formats,
|
||||||
such as mp4 or matroska.
|
such as mp4 or Matroska.
|
||||||
|
|
||||||
GStreamer OpenGL integration library and plugins
|
GStreamer OpenGL integration library and plugins
|
||||||
|
|
||||||
- glcolorconvert: added suppport for converting the video formats
|
- glcolorconvert: added support for converting the video formats A420,
|
||||||
A420, AV12, BGR, BGRA, RGBP and BGRP.
|
AV12, BGR, BGRA, RGBP and BGRP.
|
||||||
|
|
||||||
- Added support to GstGLBuffer for persistent buffer mappings where a
|
- Added support to GstGLBuffer for persistent buffer mappings where a
|
||||||
Pixel Buffer Object (PBO) can be mapped by both the CPU and the GPU.
|
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
|
- Support for render delays to improve throughput across all CODECs
|
||||||
(used with NVDEC and V4L2).
|
(used with NVDEC and V4L2).
|
||||||
- lots of improvements to parsers and the codec parsing decoder base
|
- lots of improvements to parsers and the codec parsing decoder base
|
||||||
classes (H264, H265, VP8, VP9, AV1, MPEG-2) used for various
|
classes (H.264, H.265, VP8, VP9, AV1, MPEG-2) used for various
|
||||||
hardware-accelerate decoder APIs.
|
hardware-accelerated decoder APIs.
|
||||||
|
|
||||||
Bindings support
|
Bindings support
|
||||||
|
|
||||||
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
- gst_allocation_params_new() allocates a GstAllocationParams struct
|
||||||
on the heap. This should only be used by bindings (and freed via
|
on the heap. This should only be used by bindings (and freed via
|
||||||
gst_allocation_params_free() then). In C code you would allocate
|
gst_allocation_params_free() afterwards). In C code you would
|
||||||
this on the stack and only init it in place.
|
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
|
- gst_debug_log_literal() can be used to log a string to the debug log
|
||||||
without going through any printf format expansion and associated
|
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”
|
resets (e.g. because device power cycles), by emitting the “synced”
|
||||||
signal with synced=FALSE parameter, so applications can take action.
|
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
|
hint for what the target GType should be. This allows for example
|
||||||
passing arrays of flags through the command line or
|
passing arrays of flags through the command line or
|
||||||
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
gst_util_set_object_arg(), eg: foo="<bar,bar+baz>".
|
||||||
|
|
||||||
- It’s now allowed to create an empty GstVideoOverlayComposition
|
- It’s now possible to create an empty GstVideoOverlayComposition
|
||||||
without any rectangles by passing a NULL rectangle to
|
without any rectangles by passing a NULL rectangle to
|
||||||
gst_video_overlay_composition_new(). This is useful for bindings and
|
gst_video_overlay_composition_new(). This is useful for bindings and
|
||||||
simplifies application code in some places.
|
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
|
- New factories tracer to list loaded elements (and other plugin
|
||||||
features). This can be useful to collect a list of elements needed
|
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
|
for an application, which in turn can be used to create a tailored
|
||||||
tailored minimal GStreamer build that contains just the elements
|
minimal GStreamer build that contains just the elements needed and
|
||||||
needed and nothing else.
|
nothing else.
|
||||||
- New plugin-feature-loaded tracing hook for use by tracers like the
|
- New plugin-feature-loaded tracing hook for use by tracers like the
|
||||||
new factories tracer
|
new factories tracer
|
||||||
|
|
||||||
|
@ -1456,8 +1451,8 @@ GStreamer RTSP server
|
||||||
- GstRTSPMediaFactory gained API to disable RTCP
|
- GstRTSPMediaFactory gained API to disable RTCP
|
||||||
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
(gst_rtsp_media_factory_set_enable_rtcp(), "enable-rtcp" property).
|
||||||
Previously RTCP was always allowed for all RTSP medias. With this
|
Previously RTCP was always allowed for all RTSP medias. With this
|
||||||
change it is possible to disable RTCP completely, no matter if the
|
change it is possible to disable RTCP completely, irrespective of
|
||||||
client wants to do RTCP or not.
|
whether the client wants to do RTCP or not.
|
||||||
|
|
||||||
- Make a mount point of / work correctly. While not allowed by the
|
- 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
|
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)
|
- 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
|
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)
|
Y412_LE), and 4:2:2 12-bits support (decoded to Y212_LE)
|
||||||
|
|
||||||
- vaapipostproc: gained BT2020 color standard support
|
- vaapipostproc: gained BT2020 color standard support
|
||||||
|
@ -1557,7 +1552,7 @@ GStreamer Python Bindings
|
||||||
GStreamer C# Bindings
|
GStreamer C# Bindings
|
||||||
|
|
||||||
- Fix GstDebugGraphDetails enum
|
- Fix GstDebugGraphDetails enum
|
||||||
- Updated to latests GtkSharp
|
- Updated to latest GtkSharp
|
||||||
- Updated to include GStreamer 1.20 API
|
- Updated to include GStreamer 1.20 API
|
||||||
|
|
||||||
GStreamer Rust Bindings and Rust Plugins
|
GStreamer Rust Bindings and Rust Plugins
|
||||||
|
@ -1574,13 +1569,19 @@ GStreamer Rust Bindings and Rust Plugins
|
||||||
|
|
||||||
Build and Dependencies
|
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
|
- The GLib requirement has been bumped to GLib 2.56 or newer (from
|
||||||
March 2018).
|
March 2018).
|
||||||
|
|
||||||
- The wpe plugin now requires wpe >= 2.28 and wpebackend-fdo >= 1.8
|
- 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
|
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||||||
|
|
||||||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||||||
|
@ -1610,8 +1611,11 @@ macOS / iOS specific Cerbero improvements
|
||||||
|
|
||||||
- XCode 12 support
|
- XCode 12 support
|
||||||
- macOS OS release support is now future-proof, similar to iOS
|
- 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) cross-compile support has been added,
|
||||||
- macOS Apple Silicon (ARM64) native support is currently experimental
|
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
|
Windows specific Cerbero improvements
|
||||||
|
|
||||||
|
@ -1648,6 +1652,13 @@ macOS and iOS
|
||||||
|
|
||||||
- applemedia: add ProRes support to vtenc and vtdec
|
- 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
|
Windows
|
||||||
|
|
||||||
- On Windows the high-resolution clock is enabled now in the
|
- On Windows the high-resolution clock is enabled now in the
|
||||||
|
@ -1679,7 +1690,7 @@ Windows
|
||||||
GstDeviceProvider implementation to enumerate/select target monitors
|
GstDeviceProvider implementation to enumerate/select target monitors
|
||||||
for capture.
|
for capture.
|
||||||
|
|
||||||
- Direct3D11/DXVA decoder now supports AV1 and MPEG2 codecs
|
- Direct3D11/DXVA decoder now supports AV1 and MPEG-2 codecs
|
||||||
(d3d11av1dec, d3d11mpeg2dec)
|
(d3d11av1dec, d3d11mpeg2dec)
|
||||||
|
|
||||||
- VP9 decoding got more reliable and stable thanks to a newly written
|
- 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
|
||||||
|
|
||||||
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
|
Schedule for 1.22
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
GStreamer 1.19.x development series
|
GStreamer 1.20.x stable series
|
||||||
|
|
||||||
WHAT IT IS
|
WHAT IT IS
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -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
|
The GStreamer team is thrilled to announce a new major feature release
|
||||||
stable version which will be 1.20.
|
of your favourite cross-platform multimedia framework!
|
||||||
|
|
||||||
The 1.19 development series adds new features on top of the 1.18 series and is
|
As always, this release is again packed with new features, bug fixes and
|
||||||
part of the API and ABI-stable 1.x release series of the GStreamer multimedia
|
other improvements.
|
||||||
framework.
|
|
||||||
|
|
||||||
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/
|
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/
|
directory: https://gstreamer.freedesktop.org/src/gstreamer/
|
||||||
|
|
||||||
The git repository and details how to clone it can be found at
|
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 ====
|
==== Homepage ====
|
||||||
|
|
||||||
|
@ -65,10 +67,9 @@ The project's website is https://gstreamer.freedesktop.org/
|
||||||
|
|
||||||
==== Support and Bugs ====
|
==== Support and Bugs ====
|
||||||
|
|
||||||
We have recently moved from GNOME Bugzilla to GitLab on freedesktop.org
|
We track bugs and feature requests in GitLab:
|
||||||
for bug reports and feature requests:
|
|
||||||
|
|
||||||
https://gitlab.freedesktop.org/gstreamer
|
https://gitlab.freedesktop.org/gstreamer/gstreamer/
|
||||||
|
|
||||||
Please submit patches via GitLab as well, in form of Merge Requests. See
|
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.
|
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 ====
|
==== 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
|
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.
|
Merge Requests or file issues for bugs or feature requests.
|
||||||
|
|
|
@ -38,6 +38,16 @@ hierarchy, and a set of media-agnostic core elements.
|
||||||
</GitRepository>
|
</GitRepository>
|
||||||
</repository>
|
</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>
|
<release>
|
||||||
<Version>
|
<Version>
|
||||||
<revision>1.19.90</revision>
|
<revision>1.19.90</revision>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
project('gstreamer', 'c',
|
project('gstreamer', 'c',
|
||||||
version : '1.19.90',
|
version : '1.20.0',
|
||||||
meson_version : '>= 0.59',
|
meson_version : '>= 0.59',
|
||||||
default_options : [ 'warning_level=1',
|
default_options : [ 'warning_level=1',
|
||||||
'buildtype=debugoptimized' ])
|
'buildtype=debugoptimized' ])
|
||||||
|
|
Loading…
Reference in a new issue