mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-22 16:26:39 +00:00
359 lines
12 KiB
Text
359 lines
12 KiB
Text
GStreamer 1.22 Release Notes
|
||
|
||
GStreamer 1.22 has not been released yet. It is scheduled for release
|
||
around in January 2023.
|
||
|
||
1.21.x is the unstable development version that is being developed in
|
||
the git master branch and which will eventually result in 1.22, and
|
||
1.21.90 is the first release candidate for 1.22 (rc1) in that series
|
||
|
||
A feature freeze is now into effect for the 1.21 branch, but newly-added
|
||
API might still change until the final 1.22.0 stable release, and minor
|
||
features may also still be added until then.
|
||
|
||
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.
|
||
|
||
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
|
||
version of this document.
|
||
|
||
Last updated: Thursday 12 January 2023, 15: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
|
||
|
||
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.22 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
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- GLib >= 2.64 is now required (technically it still says >= 2.62 but
|
||
the plan is to bump that to 2.64 soon once some CI issues are sorted
|
||
out)
|
||
|
||
- libnice >= 0.1.21 is now required and contains important fixes for
|
||
GStreamer’s WebRTC stack.
|
||
|
||
gst-build
|
||
|
||
- this section will be filled in in due course
|
||
|
||
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
|
||
|
||
- The Windows universal UWP build is currently non-functional and will
|
||
need updating after the recent GLib upgrade. It is unclear if anyone
|
||
is using these binaries, so if you are please make yourself known.
|
||
|
||
Linux
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Documentation improvements
|
||
|
||
- this section will be filled in in due course
|
||
|
||
Possibly Breaking Changes
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- the Opus audio payloader and depayloader no longer accept the lower
|
||
case encoding-format=multiopus but instead produce and accept only
|
||
the upper case variant encoding-format=MULTIOPUS, since those should
|
||
always be upper case in GStreamer (caps fields are always case
|
||
sensitive). This should hopefully only affect applications where RTP
|
||
caps are set manually and multi-channel audio (>= 3 channels) is
|
||
used.
|
||
|
||
Known Issues
|
||
|
||
- this section will be filled in in due course
|
||
|
||
- Known regressions/blockers:
|
||
|
||
- FIXME
|
||
|
||
- GStreamer may fail to build the hotdoc documentation with the Meson
|
||
0.64.0 release owing to a Meson bug. This should only affect systems
|
||
where hotdoc is installed, and will be fixed in Meson 0.64.1 by
|
||
Meson PR 10982 in combination with GStreamer MR 3352. In the
|
||
meantime, users can pass -Ddoc=disabled or downgrade to an older
|
||
Meson version (< 0.64.0).
|
||
|
||
Contributors
|
||
|
||
Ádám Balázs, Adam Doupe, Adrian Fiergolski, Adrian Perez de Castro, Alba
|
||
Mendez, Aleix Conchillo Flaqué, Aleksandr Slobodeniuk, Alicia Boya
|
||
García, Alireza Miryazdi, Andoni Morales Alastruey, Andrew Pritchard,
|
||
Arun Raghavan, Bastian Krause, Bastien Nocera, Benjamin Gaignard, Brad
|
||
Hards, Branko Subasic, Bruce Liang, Camilo Celis Guzman, Carlos
|
||
Falgueras García, Carlos Rafael Giani, Célestin Marot, Christopher
|
||
Obbard, Christoph Reiter, Chris Wiggins, Chun-wei Fan, Corentin Damman,
|
||
Corentin Noël, Damian Hobson-Garcia, Daniel Almeida, Daniel Morin,
|
||
Daniel Stone, Daniels Umanovskis, Danny Smith, David Svensson Fors,
|
||
Devin Anderson, Diogo Goncalves, Dmitry Osipenko, Dongil Park, Doug
|
||
Nazar, Edward Hervey, Eli Schwartz, Elliot Chen, Enrique Ocaña González,
|
||
Eric Knapp, Erwann Gouesbet, Fabian Orccon, Fabrice Fontaine, Fan F He,
|
||
fduncanh, Filip Hanes, Florian Zwoch, François Laignel, Fuga Kato,
|
||
George Kiagiadakis, Guillaume Desmottes, Gu Yanjie, Haihao Xiang, Haihua
|
||
Hu, Havard Graff, Heiko Becker, He Junyan, Hoonhee Lee, Hosang Lee, Hou
|
||
Qi, Ignacio Casal Quinteiro, Ignazio Pillai, Igor V. Kovalenko, Jakub
|
||
Adam, James Cowgill, James Hilliard, Jan Alexander Steffens (heftig),
|
||
Jan Schmidt, Jianhui Dai, jinsl00000, Johan Sternerup, Jonas Bonn, Jonas
|
||
Danielsson, Jordan Petridis, Joseph Donofry, Jose Quaresma, Julian
|
||
Bouzas, Junsoo Park, Justin Chadwell, Khem Raj, Krystian Wojtas, László
|
||
Károlyi, Linus Svensson, Loic Le Page, Loïc Le Page, Ludvig Rappe, Marc
|
||
Leeman, Marek Vasut, Marijn Suijten, Mark Nauwelaerts, Martin Dørum,
|
||
Martin Reboredo, Mart Raudsepp, Mathieu Duponchelle, Matt Crane, Matthew
|
||
Waters, Matthias Clasen, Matthias Fuchs, Mengkejiergeli Ba, MG
|
||
Lolenstine, Michael Gruner, Michal Kubiak, Mikhail Fludkov, Ming Qian,
|
||
Myles Inglis, Nicolas Dufresne, Nirbheek Chauhan, Olivier Crête,
|
||
Patricia Muscalu, Patrick Griffis, Paweł Stawicki, Peter Stensson,
|
||
Philippe Normand, Philipp Zabel, Pierre Bourré, Piotr Brzeziński,
|
||
Piotrek Brzeziński, Rabindra Harlalka, Rafael Caricio, Rafael Sobral,
|
||
Raul Tambre, Robert Mader, Robert Rosengren, Rouven Czerwinski, Ruben
|
||
Gonzalez, Sam Van Den Berge, Sanchayan Maity, Sangchul Lee, Sebastian
|
||
Dröge, Sebastian Fricke, Sebastian Groß, Sebastian Mueller, Sebastian
|
||
Wick, Sergei Kovalev, Seungha Yang, Sherrill Lin, Shingo Kitagawa,
|
||
Stéphane Cerveau, Thibault Saunier, Tim Mooney, Tim-Philipp Müller,
|
||
Tomasz Andrzejak, Tom Schuring, Tong Wu, toor, Tristan Matthews, Tulio
|
||
Beloqui, U. Artie Eoff, Víctor Manuel Jáquez Leal, Vincent Cheah Beng
|
||
Keat, Vivia Nikolaidou, Vivienne Watermeier, WANG Xuerui, Wojciech
|
||
Kapsa, Wonchul Lee, Wu Tong, Xabier Rodriguez Calvar, Xavier Claessens,
|
||
Yatin Maan, Yeongjin Jeong, Zebediah Figura, Zhao Zhili, Zhiyuan Liu,
|
||
|
||
… and many others who have contributed bug reports, translations, sent
|
||
suggestions or helped testing.
|
||
|
||
Stable 1.22 branch
|
||
|
||
After the 1.22.0 release there will be several 1.22.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.22.x bug-fix releases will be made from
|
||
the git 1.22 branch, which will be a stable branch.
|
||
|
||
1.22.0
|
||
|
||
1.22.0 is scheduled to be released in January 2023.
|
||
|
||
Schedule for 1.24
|
||
|
||
Our next major feature release will be 1.24, and 1.23 will be the
|
||
unstable development version leading up to the stable 1.24 release. The
|
||
development of 1.23/1.24 will happen in the git main branch of the
|
||
GStreamer mono repository.
|
||
|
||
The plan for the 1.24 development cycle is yet to be confirmed.
|
||
|
||
1.24 will be backwards-compatible to the stable 1.22, 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
|