1 GStreamer 1.20 Release Notes
3 GStreamer 1.20 has not been released yet. It is scheduled for release in
6 1.19.x is the unstable development version that is being developed in
7 the git main branch and which will eventually result in 1.20, and 1.19.3
8 is the current development release in that series
10 It is expected that feature freeze will be in early October 2021,
11 followed by one or two 1.19.9x pre-releases and the new 1.20 stable
12 release around October/November 2021.
14 1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
15 1.10, 1.8, 1.6,, 1.4, 1.2 and 1.0 release series.
17 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
18 version of this document.
20 Last updated: Monday 1 November 2021, 01:00 UTC (log)
24 The GStreamer team is proud to announce a new major feature release in
25 the stable 1.x API series of your favourite cross-platform multimedia
28 As always, this release is again packed with many new features, bug
29 fixes and other improvements.
33 - this section will be completed in due course
35 Major new features and changes
37 Noteworthy new features and API
39 - this section will be filled in in due course
43 - this section will be filled in in due course
45 New element features and additions
47 - this section will be filled in in due course
49 Plugin and library moves
51 - this section will be filled in in due course
53 - There were no plugin moves or library moves in this cycle.
57 The following elements or plugins have been removed:
59 - this section will be filled in in due course
61 - The ofa audio fingerprinting plugin has been removed. The MusicIP
62 database has been defunct for years so this plugin is likely neither
63 useful nor used by anyone.
65 - The mms plugin containing mmssrc has been removed. It seems unlikely
66 anyone still needs this or that there are even any streams left out
67 there. The MMS protocol was deprecated in 2003 (in favour of RTSP)
68 and support for it was dropped with Microsoft Media Services 2008,
69 and Windows Media Player apparently also does not support it any
72 Miscellaneous API additions
74 - this section will be filled in in due course
76 Miscellaneous performance, latency and memory optimisations
78 - this section will be filled in in due course
80 Miscellaneous other changes and enhancements
82 - this section will be filled in in due course
84 Tracing framework and debugging improvements
86 - this section will be filled in in due course
90 - this section will be filled in in due course
94 - this section will be filled in in due course
98 - this section will be filled in in due course
102 - this section will be filled in in due course
104 GStreamer Editing Services and NLE
106 - this section will be filled in in due course
110 - this section will be filled in in due course
112 GStreamer Python Bindings
114 - this section will be filled in in due course
116 GStreamer C# Bindings
118 - this section will be filled in in due course
120 GStreamer Rust Bindings and Rust Plugins
122 The GStreamer Rust bindings are released separately with a different
123 release cadence that’s tied to gtk-rs, but the latest release has
124 already been updated for the upcoming new GStreamer 1.20 API.
126 gst-plugins-rs, the module containing GStreamer plugins written in Rust,
127 has also seen lots of activity with many new elements and plugins.
129 What follows is a list of elements and plugins available in
130 gst-plugins-rs, so people don’t miss out on all those potentially useful
131 elements that have no C equivalent.
133 - FIXME: add new elements
137 - audiornnoise: New element for audio denoising which implements the
138 noise removal algorithm of the Xiph RNNoise library, in Rust
139 - rsaudioecho: Port of the audioecho element from gst-plugins-good
140 rsaudioloudnorm: Live audio loudness normalization element based on
141 the FFmpeg af_loudnorm filter
142 - claxondec: FLAC lossless audio codec decoder element based on the
143 pure-Rust claxon implementation
144 - csoundfilter: Audio filter that can use any filter defined via the
145 Csound audio programming language
146 - lewtondec: Vorbis audio decoder element based on the pure-Rust
147 lewton implementation
151 - cdgdec/cdgparse: Decoder and parser for the CD+G video codec based
152 on a pure-Rust CD+G implementation, used for example by karaoke CDs
153 - cea608overlay: CEA-608 Closed Captions overlay element
154 - cea608tott: CEA-608 Closed Captions to timed-text (e.g. VTT or SRT
156 - tttocea608: CEA-608 Closed Captions from timed-text converter
157 - mccenc/mccparse: MacCaption Closed Caption format encoder and parser
158 - sccenc/sccparse: Scenarist Closed Caption format encoder and parser
159 - dav1dec: AV1 video decoder based on the dav1d decoder implementation
161 - rav1enc: AV1 video encoder based on the fast and pure-Rust rav1e
162 encoder implementation
163 - rsflvdemux: Alternative to the flvdemux FLV demuxer element from
164 gst-plugins-good, not feature-equivalent yet
165 - rsgifenc/rspngenc: GIF/PNG encoder elements based on the pure-Rust
166 implementations by the image-rs project
170 - textwrap: Element for line-wrapping timed text (e.g. subtitles) for
171 better screen-fitting, including hyphenation support for some
176 - reqwesthttpsrc: HTTP(S) source element based on the Rust
177 reqwest/hyper HTTP implementations and almost feature-equivalent
178 with the main GStreamer HTTP source souphttpsrc
179 - s3src/s3sink: Source/sink element for the Amazon S3 cloud storage
180 - awstranscriber: Live audio to timed text transcription element using
181 the Amazon AWS Transcribe API
185 - sodiumencrypter/sodiumdecrypter: Encryption/decryption element based
187 - togglerecord: Recording element that allows to pause/resume
188 recordings easily and considers keyframe boundaries
189 - fallbackswitch/fallbacksrc: Elements for handling potentially
190 failing (network) sources, restarting them on errors/timeout and
191 showing a fallback stream instead
192 - threadshare: Set of elements that provide alternatives for various
193 existing GStreamer elements but allow to share the streaming threads
194 between each other to reduce the number of threads
195 - rsfilesrc/rsfilesink: File source/sink elements as replacements for
196 the existing filesrc/filesink elements
198 Build and Dependencies
200 - Meson 0.59 or newer is required to build GStreamer now.
202 - FIXME: this section will be filled in in due course
204 Explicit opt-in required for build of certain plugins with (A)GPL dependencies
206 Some plugins have GPL- or AGPL-licensed dependencies and those plugins
207 will no longer be built by default unless you have explicitly opted in
208 to allow (A)GPL-licensed dependencies by passing -Dgpl=enabled to Meson,
209 even if the required dependencies are available.
211 See Building plugins with (A)GPL-licensed dependencies for more details
212 and a non-exhaustive list of plugins affected.
214 gst-build: replaced by Monorepo
216 - this section will be filled in in due course
218 - FIXME: describe + link to Monorepo FAQ
222 Cerbero is a meta build system used to build GStreamer plus dependencies
223 on platforms where dependencies are not readily available, such as
224 Windows, Android, iOS and macOS.
228 - this section will be filled in in due course
232 - this section will be filled in in due course
236 - this section will be filled in in due course
238 Windows MSI installer
240 - this section will be filled in in due course
244 - this section will be filled in in due course
248 - this section will be filled in in due course
250 Platform-specific changes and improvements
254 - this section will be filled in in due course
258 - this section will be filled in in due course
262 - this section will be filled in in due course
266 - this section will be filled in in due course
268 Documentation improvements
270 - this section will be filled in in due course
272 Possibly Breaking Changes
274 - FIXME: this section will be filled in in due course
275 - MPEG-TS SCTE-35 API changes (FIXME: flesh out)
276 - gst_parse_launch() and friends now error out on non-existing
277 properties on top-level bins where they would silently fail and
279 - playbin and uridecodebin now emit the source-setup signal before the
280 element is added to the bin and linked so that the source element is
281 already configured before any scheduling query comes in, which is
282 useful for elements such as appsrc or giostreamsrc. (Merge Request)
286 - this section will be filled in in due course
288 - There are a couple of known WebRTC-related regressions/blockers:
290 - webrtc: DTLS setup with Chrome is broken
291 - webrtcbin: First keyframe is usually lost
295 - this section will be filled in in due course
297 … and many others who have contributed bug reports, translations, sent
298 suggestions or helped testing.
302 After the 1.20.0 release there will be several 1.20.x bug-fix releases
303 which will contain bug fixes which have been deemed suitable for a
304 stable branch, but no new features or intrusive changes will be added to
305 a bug-fix release usually. The 1.20.x bug-fix releases will be made from
306 the git 1.20 branch, which will be a stable branch.
310 1.20.0 is scheduled to be released around October/November 2021.
314 Our next major feature release will be 1.22, and 1.21 will be the
315 unstable development version leading up to the stable 1.22 release. The
316 development of 1.21/1.22 will happen in the git main branch.
318 The plan for the 1.22 development cycle is yet to be confirmed.
320 1.22 will be backwards-compatible to the stable 1.20, 1.18, 1.16, 1.14,
321 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
323 ------------------------------------------------------------------------
325 These release notes have been prepared by Tim-Philipp Müller with
328 License: CC BY-SA 4.0