mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 23:36:38 +00:00
328 lines
10 KiB
Text
328 lines
10 KiB
Text
GStreamer 1.20 Release Notes
|
||
|
||
GStreamer 1.20 has not been released yet. It is scheduled for release in
|
||
November 2021.
|
||
|
||
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.3
|
||
is the current development release in that series
|
||
|
||
It is expected that feature freeze will be in early October 2021,
|
||
followed by one or two 1.19.9x pre-releases and the new 1.20 stable
|
||
release around October/November 2021.
|
||
|
||
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
|
||
version of this document.
|
||
|
||
Last updated: Monday 1 November 2021, 01:00 UTC (log)
|
||
|
||
Introduction
|
||
|
||
The GStreamer team is proud to announce a new major feature release in
|
||
the stable 1.x API series of your favourite cross-platform multimedia
|
||
framework!
|
||
|
||
As always, this release is again packed with many new features, bug
|
||
fixes and other improvements.
|
||
|
||
Highlights
|
||
|
||
- this section will be completed in due course
|
||
|
||
Major new features and changes
|
||
|
||
Noteworthy new features and API
|
||
|
||
- this section will be filled in in due course
|
||
|
||
New elements
|
||
|
||
- this section will be filled in in due course
|
||
|
||
New element features and additions
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Plugin and library moves
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- There were no plugin moves or library moves in this cycle.
|
||
|
||
Plugin removals
|
||
|
||
The following elements or plugins have been removed:
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- The ofa audio fingerprinting plugin has been removed. The MusicIP
|
||
database has been defunct for years so this plugin is likely neither
|
||
useful nor used by anyone.
|
||
|
||
- The mms plugin containing mmssrc has been removed. It seems unlikely
|
||
anyone still needs this or that there are even any streams left out
|
||
there. The MMS protocol was deprecated in 2003 (in favour of RTSP)
|
||
and support for it was dropped with Microsoft Media Services 2008,
|
||
and Windows Media Player apparently also does not support it any
|
||
more.
|
||
|
||
Miscellaneous API additions
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Miscellaneous performance, latency and memory optimisations
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Miscellaneous other changes and enhancements
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Tracing framework and debugging improvements
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Tools
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer RTSP server
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer VAAPI
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer OMX
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer Editing Services and NLE
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer validate
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer Python Bindings
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer C# Bindings
|
||
|
||
- this section will be filled in in due course
|
||
|
||
GStreamer Rust Bindings and Rust Plugins
|
||
|
||
The GStreamer Rust bindings are released separately with a different
|
||
release cadence that’s tied to gtk-rs, but the latest release has
|
||
already been updated for the upcoming new GStreamer 1.20 API.
|
||
|
||
gst-plugins-rs, the module containing GStreamer plugins written in Rust,
|
||
has also seen lots of activity with many new elements and plugins.
|
||
|
||
What follows is a list of elements and plugins available in
|
||
gst-plugins-rs, so people don’t miss out on all those potentially useful
|
||
elements that have no C equivalent.
|
||
|
||
- FIXME: add new elements
|
||
|
||
Rust audio plugins
|
||
|
||
- audiornnoise: New element for audio denoising which implements the
|
||
noise removal algorithm of the Xiph RNNoise library, in Rust
|
||
- rsaudioecho: Port of the audioecho element from gst-plugins-good
|
||
rsaudioloudnorm: Live audio loudness normalization element based on
|
||
the FFmpeg af_loudnorm filter
|
||
- claxondec: FLAC lossless audio codec decoder element based on the
|
||
pure-Rust claxon implementation
|
||
- csoundfilter: Audio filter that can use any filter defined via the
|
||
Csound audio programming language
|
||
- lewtondec: Vorbis audio decoder element based on the pure-Rust
|
||
lewton implementation
|
||
|
||
Rust video plugins
|
||
|
||
- cdgdec/cdgparse: Decoder and parser for the CD+G video codec based
|
||
on a pure-Rust CD+G implementation, used for example by karaoke CDs
|
||
- cea608overlay: CEA-608 Closed Captions overlay element
|
||
- cea608tott: CEA-608 Closed Captions to timed-text (e.g. VTT or SRT
|
||
subtitles) converter
|
||
- tttocea608: CEA-608 Closed Captions from timed-text converter
|
||
- mccenc/mccparse: MacCaption Closed Caption format encoder and parser
|
||
- sccenc/sccparse: Scenarist Closed Caption format encoder and parser
|
||
- dav1dec: AV1 video decoder based on the dav1d decoder implementation
|
||
by the VLC project
|
||
- rav1enc: AV1 video encoder based on the fast and pure-Rust rav1e
|
||
encoder implementation
|
||
- rsflvdemux: Alternative to the flvdemux FLV demuxer element from
|
||
gst-plugins-good, not feature-equivalent yet
|
||
- rsgifenc/rspngenc: GIF/PNG encoder elements based on the pure-Rust
|
||
implementations by the image-rs project
|
||
|
||
Rust text plugins
|
||
|
||
- textwrap: Element for line-wrapping timed text (e.g. subtitles) for
|
||
better screen-fitting, including hyphenation support for some
|
||
languages
|
||
|
||
Rust network plugins
|
||
|
||
- reqwesthttpsrc: HTTP(S) source element based on the Rust
|
||
reqwest/hyper HTTP implementations and almost feature-equivalent
|
||
with the main GStreamer HTTP source souphttpsrc
|
||
- s3src/s3sink: Source/sink element for the Amazon S3 cloud storage
|
||
- awstranscriber: Live audio to timed text transcription element using
|
||
the Amazon AWS Transcribe API
|
||
|
||
Generic Rust plugins
|
||
|
||
- sodiumencrypter/sodiumdecrypter: Encryption/decryption element based
|
||
on libsodium/NaCl
|
||
- togglerecord: Recording element that allows to pause/resume
|
||
recordings easily and considers keyframe boundaries
|
||
- fallbackswitch/fallbacksrc: Elements for handling potentially
|
||
failing (network) sources, restarting them on errors/timeout and
|
||
showing a fallback stream instead
|
||
- threadshare: Set of elements that provide alternatives for various
|
||
existing GStreamer elements but allow to share the streaming threads
|
||
between each other to reduce the number of threads
|
||
- rsfilesrc/rsfilesink: File source/sink elements as replacements for
|
||
the existing filesrc/filesink elements
|
||
|
||
Build and Dependencies
|
||
|
||
- Meson 0.59 or newer is required to build GStreamer now.
|
||
|
||
- FIXME: this section will be filled in in due course
|
||
|
||
Explicit opt-in required for build of certain plugins with (A)GPL dependencies
|
||
|
||
Some plugins have GPL- or AGPL-licensed dependencies and those plugins
|
||
will no longer be built by default unless you have explicitly opted in
|
||
to allow (A)GPL-licensed dependencies by passing -Dgpl=enabled to Meson,
|
||
even if the required dependencies are available.
|
||
|
||
See Building plugins with (A)GPL-licensed dependencies for more details
|
||
and a non-exhaustive list of plugins affected.
|
||
|
||
gst-build: replaced by Monorepo
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- FIXME: describe + link to Monorepo FAQ
|
||
|
||
Cerbero
|
||
|
||
Cerbero is a meta build system used to build GStreamer plus dependencies
|
||
on platforms where dependencies are not readily available, such as
|
||
Windows, Android, iOS and macOS.
|
||
|
||
General improvements
|
||
|
||
- this section will be filled in in due course
|
||
|
||
macOS / iOS
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Windows
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Windows MSI installer
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Linux
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Android
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Platform-specific changes and improvements
|
||
|
||
Android
|
||
|
||
- this section will be filled in in due course
|
||
|
||
macOS and iOS
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Windows
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Linux
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Documentation improvements
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Possibly Breaking Changes
|
||
|
||
- FIXME: this section will be filled in in due course
|
||
- MPEG-TS SCTE-35 API changes (FIXME: flesh out)
|
||
- gst_parse_launch() and friends now error out on non-existing
|
||
properties on top-level bins where they would silently fail and
|
||
ignore those before.
|
||
- playbin and uridecodebin now emit the source-setup signal before the
|
||
element is added to the bin and linked so that the source element is
|
||
already configured before any scheduling query comes in, which is
|
||
useful for elements such as appsrc or giostreamsrc. (Merge Request)
|
||
|
||
Known Issues
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- There are a couple of known WebRTC-related regressions/blockers:
|
||
|
||
- webrtc: DTLS setup with Chrome is broken
|
||
- webrtcbin: First keyframe is usually lost
|
||
|
||
Contributors
|
||
|
||
- this section will be filled in in due course
|
||
|
||
… and many others who have contributed bug reports, translations, sent
|
||
suggestions or helped testing.
|
||
|
||
Stable 1.20 branch
|
||
|
||
After the 1.20.0 release there will be several 1.20.x bug-fix releases
|
||
which will contain bug fixes which have been deemed suitable for a
|
||
stable branch, but no new features or intrusive changes will be added to
|
||
a bug-fix release usually. The 1.20.x bug-fix releases will be made from
|
||
the git 1.20 branch, which will be a stable branch.
|
||
|
||
1.20.0
|
||
|
||
1.20.0 is scheduled to be released around October/November 2021.
|
||
|
||
Schedule for 1.22
|
||
|
||
Our next major feature release will be 1.22, and 1.21 will be the
|
||
unstable development version leading up to the stable 1.22 release. The
|
||
development of 1.21/1.22 will happen in the git main branch.
|
||
|
||
The plan for the 1.22 development cycle is yet to be confirmed.
|
||
|
||
1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14,
|
||
1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
|
||
|
||
------------------------------------------------------------------------
|
||
|
||
These release notes have been prepared by Tim-Philipp Müller with
|
||
contributions from …
|
||
|
||
License: CC BY-SA 4.0
|