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