summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2024-03-21 21:47:53 +0100
committerTim-Philipp Müller <tim@centricular.com>2024-03-21 21:47:53 +0100
commit0d0a1d9d16d1eb0f5355202c9f8f3ae6df19cf3b (patch)
tree3af87d33f4248a58f530f47fd0930ec2d7db5585
parent5a80a146f0d8905f5a92dbe58985ab46e5d407fe (diff)
Release 1.24.11.24.1
-rw-r--r--girs/GES-1.0.gir4
-rw-r--r--girs/Gst-1.0.gir4
-rw-r--r--girs/GstPbutils-1.0.gir4
-rw-r--r--meson.build2
-rw-r--r--subprojects/gst-devtools/NEWS299
-rw-r--r--subprojects/gst-devtools/RELEASE2
-rw-r--r--subprojects/gst-devtools/gst-devtools.doap10
-rw-r--r--subprojects/gst-devtools/meson.build2
-rw-r--r--subprojects/gst-docs/meson.build2
-rw-r--r--subprojects/gst-editing-services/NEWS299
-rw-r--r--subprojects/gst-editing-services/RELEASE2
-rw-r--r--subprojects/gst-editing-services/gst-editing-services.doap10
-rw-r--r--subprojects/gst-editing-services/meson.build2
-rw-r--r--subprojects/gst-examples/meson.build2
-rw-r--r--subprojects/gst-integration-testsuites/meson.build2
-rw-r--r--subprojects/gst-libav/NEWS299
-rw-r--r--subprojects/gst-libav/RELEASE2
-rw-r--r--subprojects/gst-libav/gst-libav.doap10
-rw-r--r--subprojects/gst-libav/meson.build2
-rw-r--r--subprojects/gst-plugins-bad/NEWS299
-rw-r--r--subprojects/gst-plugins-bad/RELEASE2
-rw-r--r--subprojects/gst-plugins-bad/gst-plugins-bad.doap10
-rw-r--r--subprojects/gst-plugins-bad/meson.build2
-rw-r--r--subprojects/gst-plugins-base/NEWS299
-rw-r--r--subprojects/gst-plugins-base/RELEASE2
-rw-r--r--subprojects/gst-plugins-base/gst-plugins-base.doap10
-rw-r--r--subprojects/gst-plugins-base/meson.build2
-rw-r--r--subprojects/gst-plugins-good/NEWS299
-rw-r--r--subprojects/gst-plugins-good/RELEASE2
-rw-r--r--subprojects/gst-plugins-good/gst-plugins-good.doap10
-rw-r--r--subprojects/gst-plugins-good/meson.build2
-rw-r--r--subprojects/gst-plugins-rs.wrap2
-rw-r--r--subprojects/gst-plugins-ugly/NEWS299
-rw-r--r--subprojects/gst-plugins-ugly/RELEASE2
-rw-r--r--subprojects/gst-plugins-ugly/gst-plugins-ugly.doap10
-rw-r--r--subprojects/gst-plugins-ugly/meson.build2
-rw-r--r--subprojects/gst-python/NEWS299
-rw-r--r--subprojects/gst-python/RELEASE2
-rw-r--r--subprojects/gst-python/gst-python.doap10
-rw-r--r--subprojects/gst-python/meson.build2
-rw-r--r--subprojects/gst-rtsp-server/NEWS299
-rw-r--r--subprojects/gst-rtsp-server/RELEASE2
-rw-r--r--subprojects/gst-rtsp-server/gst-rtsp-server.doap10
-rw-r--r--subprojects/gst-rtsp-server/meson.build2
-rw-r--r--subprojects/gstreamer-sharp/meson.build2
-rw-r--r--subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs4
-rw-r--r--subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs4
-rw-r--r--subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml16
-rw-r--r--subprojects/gstreamer-vaapi/NEWS299
-rw-r--r--subprojects/gstreamer-vaapi/RELEASE2
-rw-r--r--subprojects/gstreamer-vaapi/gstreamer-vaapi.doap10
-rw-r--r--subprojects/gstreamer-vaapi/meson.build2
-rw-r--r--subprojects/gstreamer/NEWS299
-rw-r--r--subprojects/gstreamer/RELEASE2
-rw-r--r--subprojects/gstreamer/gstreamer.doap10
-rw-r--r--subprojects/gstreamer/meson.build2
56 files changed, 2730 insertions, 761 deletions
diff --git a/girs/GES-1.0.gir b/girs/GES-1.0.gir
index 26c89aba69..324e58e4f4 100644
--- a/girs/GES-1.0.gir
+++ b/girs/GES-1.0.gir
@@ -15458,7 +15458,7 @@ contains one frame)</doc>
<source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="VERSION_MICRO" value="0" c:type="GES_VERSION_MICRO">
+ <constant name="VERSION_MICRO" value="1" c:type="GES_VERSION_MICRO">
<source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/>
<type name="gint" c:type="gint"/>
</constant>
@@ -15466,7 +15466,7 @@ contains one frame)</doc>
<source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="VERSION_NANO" value="1" c:type="GES_VERSION_NANO">
+ <constant name="VERSION_NANO" value="0" c:type="GES_VERSION_NANO">
<source-position filename="../subprojects/gst-editing-services/ges/ges-version.h"/>
<type name="gint" c:type="gint"/>
</constant>
diff --git a/girs/Gst-1.0.gir b/girs/Gst-1.0.gir
index c2746b0a71..25d19af7eb 100644
--- a/girs/Gst-1.0.gir
+++ b/girs/Gst-1.0.gir
@@ -49386,7 +49386,7 @@ determine a order for the two provided values.</doc>
<source-position filename="../subprojects/gstreamer/gst/gstversion.h"/>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="VERSION_MICRO" value="0" c:type="GST_VERSION_MICRO">
+ <constant name="VERSION_MICRO" value="1" c:type="GST_VERSION_MICRO">
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">The micro version of GStreamer at compile time:</doc>
<source-position filename="../subprojects/gstreamer/gst/gstversion.h"/>
<type name="gint" c:type="gint"/>
@@ -49396,7 +49396,7 @@ determine a order for the two provided values.</doc>
<source-position filename="../subprojects/gstreamer/gst/gstversion.h"/>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="VERSION_NANO" value="1" c:type="GST_VERSION_NANO">
+ <constant name="VERSION_NANO" value="0" c:type="GST_VERSION_NANO">
<doc xml:space="preserve" filename="../subprojects/gstreamer/gst/gstversion.h">The nano version of GStreamer at compile time:
Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</doc>
<source-position filename="../subprojects/gstreamer/gst/gstversion.h"/>
diff --git a/girs/GstPbutils-1.0.gir b/girs/GstPbutils-1.0.gir
index b8757a61d1..3cd4b413fc 100644
--- a/girs/GstPbutils-1.0.gir
+++ b/girs/GstPbutils-1.0.gir
@@ -2899,7 +2899,7 @@ in debugging.</doc>
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="PLUGINS_BASE_VERSION_MICRO" value="0" c:type="GST_PLUGINS_BASE_VERSION_MICRO">
+ <constant name="PLUGINS_BASE_VERSION_MICRO" value="1" c:type="GST_PLUGINS_BASE_VERSION_MICRO">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The micro version of GStreamer's gst-plugins-base libraries at compile time.</doc>
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/>
<type name="gint" c:type="gint"/>
@@ -2909,7 +2909,7 @@ in debugging.</doc>
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/>
<type name="gint" c:type="gint"/>
</constant>
- <constant name="PLUGINS_BASE_VERSION_NANO" value="1" c:type="GST_PLUGINS_BASE_VERSION_NANO">
+ <constant name="PLUGINS_BASE_VERSION_NANO" value="0" c:type="GST_PLUGINS_BASE_VERSION_NANO">
<doc xml:space="preserve" filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h">The nano version of GStreamer's gst-plugins-base libraries at compile time.
Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</doc>
<source-position filename="../subprojects/gst-plugins-base/gst-libs/gst/pbutils/gstpluginsbaseversion.h"/>
diff --git a/meson.build b/meson.build
index 13d98ecadf..8cb3320976 100644
--- a/meson.build
+++ b/meson.build
@@ -1,5 +1,5 @@
project('gstreamer-full', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : ['buildtype=debugoptimized',
# Needed due to https://github.com/mesonbuild/meson/issues/1889,
diff --git a/subprojects/gst-devtools/NEWS b/subprojects/gst-devtools/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-devtools/NEWS
+++ b/subprojects/gst-devtools/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-devtools/RELEASE b/subprojects/gst-devtools/RELEASE
index a6695f0313..27268a9d83 100644
--- a/subprojects/gst-devtools/RELEASE
+++ b/subprojects/gst-devtools/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-devtools 1.24.0.
+This is GStreamer gst-devtools 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-devtools/gst-devtools.doap b/subprojects/gst-devtools/gst-devtools.doap
index 5180e43ae4..32728a90b0 100644
--- a/subprojects/gst-devtools/gst-devtools.doap
+++ b/subprojects/gst-devtools/gst-devtools.doap
@@ -55,6 +55,16 @@
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-devtools/gst-devtools-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-devtools/meson.build b/subprojects/gst-devtools/meson.build
index 344f10ee0c..06b3dd0667 100644
--- a/subprojects/gst-devtools/meson.build
+++ b/subprojects/gst-devtools/meson.build
@@ -1,5 +1,5 @@
project('gst-devtools', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'c_std=gnu99',
diff --git a/subprojects/gst-docs/meson.build b/subprojects/gst-docs/meson.build
index 858120109a..00db3cc770 100644
--- a/subprojects/gst-docs/meson.build
+++ b/subprojects/gst-docs/meson.build
@@ -1,5 +1,5 @@
project('GStreamer manuals and tutorials', 'c',
- version: '1.24.0.1',
+ version: '1.24.1',
meson_version : '>= 1.1')
hotdoc_p = find_program('hotdoc')
diff --git a/subprojects/gst-editing-services/NEWS b/subprojects/gst-editing-services/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-editing-services/NEWS
+++ b/subprojects/gst-editing-services/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-editing-services/RELEASE b/subprojects/gst-editing-services/RELEASE
index b842983a6b..de6707e46a 100644
--- a/subprojects/gst-editing-services/RELEASE
+++ b/subprojects/gst-editing-services/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-editing-services 1.24.0.
+This is GStreamer gst-editing-services 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-editing-services/gst-editing-services.doap b/subprojects/gst-editing-services/gst-editing-services.doap
index 1d2fe2f7cb..71007c87aa 100644
--- a/subprojects/gst-editing-services/gst-editing-services.doap
+++ b/subprojects/gst-editing-services/gst-editing-services.doap
@@ -32,6 +32,16 @@ GStreamer library for creating audio and video editors
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-editing-services/gst-editing-services-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-editing-services/meson.build b/subprojects/gst-editing-services/meson.build
index 968671934c..11c3aed927 100644
--- a/subprojects/gst-editing-services/meson.build
+++ b/subprojects/gst-editing-services/meson.build
@@ -1,5 +1,5 @@
project('gst-editing-services', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gst-examples/meson.build b/subprojects/gst-examples/meson.build
index ec90e34789..7ffecfe216 100644
--- a/subprojects/gst-examples/meson.build
+++ b/subprojects/gst-examples/meson.build
@@ -1,4 +1,4 @@
-project('gst-examples', 'c', version : '1.24.0.1', license : 'LGPL')
+project('gst-examples', 'c', version : '1.24.1', license : 'LGPL')
static_build = get_option('default_library') == 'static'
cc = meson.get_compiler('c')
diff --git a/subprojects/gst-integration-testsuites/meson.build b/subprojects/gst-integration-testsuites/meson.build
index c3f8fb17d3..c921ff34f1 100644
--- a/subprojects/gst-integration-testsuites/meson.build
+++ b/subprojects/gst-integration-testsuites/meson.build
@@ -1 +1 @@
-project('gst-integration-testsuites', [], version: '1.24.0.1', meson_version : '>= 1.1', license: 'LGPL')
+project('gst-integration-testsuites', [], version: '1.24.1', meson_version : '>= 1.1', license: 'LGPL')
diff --git a/subprojects/gst-libav/NEWS b/subprojects/gst-libav/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-libav/NEWS
+++ b/subprojects/gst-libav/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-libav/RELEASE b/subprojects/gst-libav/RELEASE
index 89f9e2295e..543c9764d6 100644
--- a/subprojects/gst-libav/RELEASE
+++ b/subprojects/gst-libav/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-libav 1.24.0.
+This is GStreamer gst-libav 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-libav/gst-libav.doap b/subprojects/gst-libav/gst-libav.doap
index e269d4b1c5..e2374609ef 100644
--- a/subprojects/gst-libav/gst-libav.doap
+++ b/subprojects/gst-libav/gst-libav.doap
@@ -34,6 +34,16 @@ colorspace conversion elements.
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-libav/gst-libav-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-libav/meson.build b/subprojects/gst-libav/meson.build
index 5e11277d3f..7f5e437f70 100644
--- a/subprojects/gst-libav/meson.build
+++ b/subprojects/gst-libav/meson.build
@@ -1,5 +1,5 @@
project('gst-libav', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gst-plugins-bad/NEWS b/subprojects/gst-plugins-bad/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-plugins-bad/NEWS
+++ b/subprojects/gst-plugins-bad/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-plugins-bad/RELEASE b/subprojects/gst-plugins-bad/RELEASE
index 42d5d7827e..5581de8c8c 100644
--- a/subprojects/gst-plugins-bad/RELEASE
+++ b/subprojects/gst-plugins-bad/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-bad 1.24.0.
+This is GStreamer gst-plugins-bad 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-plugins-bad/gst-plugins-bad.doap b/subprojects/gst-plugins-bad/gst-plugins-bad.doap
index afcb44dace..2028a0aca9 100644
--- a/subprojects/gst-plugins-bad/gst-plugins-bad.doap
+++ b/subprojects/gst-plugins-bad/gst-plugins-bad.doap
@@ -35,6 +35,16 @@ real live maintainer, or some actual wide use.
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-bad/meson.build b/subprojects/gst-plugins-bad/meson.build
index 4b6ce9ad56..d91c2d96ad 100644
--- a/subprojects/gst-plugins-bad/meson.build
+++ b/subprojects/gst-plugins-bad/meson.build
@@ -1,5 +1,5 @@
project('gst-plugins-bad', 'c', 'cpp',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gst-plugins-base/NEWS b/subprojects/gst-plugins-base/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-plugins-base/NEWS
+++ b/subprojects/gst-plugins-base/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-plugins-base/RELEASE b/subprojects/gst-plugins-base/RELEASE
index 54a5796e5e..e391e2548a 100644
--- a/subprojects/gst-plugins-base/RELEASE
+++ b/subprojects/gst-plugins-base/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-base 1.24.0.
+This is GStreamer gst-plugins-base 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-plugins-base/gst-plugins-base.doap b/subprojects/gst-plugins-base/gst-plugins-base.doap
index a15816a962..a70644562f 100644
--- a/subprojects/gst-plugins-base/gst-plugins-base.doap
+++ b/subprojects/gst-plugins-base/gst-plugins-base.doap
@@ -36,6 +36,16 @@ A wide range of video and audio decoders, encoders, and filters are included.
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-base/meson.build b/subprojects/gst-plugins-base/meson.build
index d490047223..8341c7277f 100644
--- a/subprojects/gst-plugins-base/meson.build
+++ b/subprojects/gst-plugins-base/meson.build
@@ -1,5 +1,5 @@
project('gst-plugins-base', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gst-plugins-good/NEWS b/subprojects/gst-plugins-good/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-plugins-good/NEWS
+++ b/subprojects/gst-plugins-good/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-plugins-good/RELEASE b/subprojects/gst-plugins-good/RELEASE
index 7842f1ef3e..89a96fd421 100644
--- a/subprojects/gst-plugins-good/RELEASE
+++ b/subprojects/gst-plugins-good/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-good 1.24.0.
+This is GStreamer gst-plugins-good 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-plugins-good/gst-plugins-good.doap b/subprojects/gst-plugins-good/gst-plugins-good.doap
index feafc02a23..66f0c7ba3a 100644
--- a/subprojects/gst-plugins-good/gst-plugins-good.doap
+++ b/subprojects/gst-plugins-good/gst-plugins-good.doap
@@ -34,6 +34,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-good/meson.build b/subprojects/gst-plugins-good/meson.build
index 84b0a34c48..51473abdb9 100644
--- a/subprojects/gst-plugins-good/meson.build
+++ b/subprojects/gst-plugins-good/meson.build
@@ -1,5 +1,5 @@
project('gst-plugins-good', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gst-plugins-rs.wrap b/subprojects/gst-plugins-rs.wrap
index 0a4bd9aca2..53d845d2bf 100644
--- a/subprojects/gst-plugins-rs.wrap
+++ b/subprojects/gst-plugins-rs.wrap
@@ -2,4 +2,4 @@
directory=gst-plugins-rs
url=https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
push-url=git@gitlab.freedesktop.org:gstreamer/gst-plugins-rs.git
-revision=0.12
+revision=gstreamer-1.24.1
diff --git a/subprojects/gst-plugins-ugly/NEWS b/subprojects/gst-plugins-ugly/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-plugins-ugly/NEWS
+++ b/subprojects/gst-plugins-ugly/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-plugins-ugly/RELEASE b/subprojects/gst-plugins-ugly/RELEASE
index a0fc31e347..26ab12e47e 100644
--- a/subprojects/gst-plugins-ugly/RELEASE
+++ b/subprojects/gst-plugins-ugly/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-ugly 1.24.0.
+This is GStreamer gst-plugins-ugly 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap b/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
index 84a24d8108..4f1d284e2d 100644
--- a/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
+++ b/subprojects/gst-plugins-ugly/gst-plugins-ugly.doap
@@ -35,6 +35,16 @@ might be widely known to present patent problems.
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-ugly/gst-plugins-ugly-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-plugins-ugly/meson.build b/subprojects/gst-plugins-ugly/meson.build
index b078001da0..2ade8296c6 100644
--- a/subprojects/gst-plugins-ugly/meson.build
+++ b/subprojects/gst-plugins-ugly/meson.build
@@ -1,5 +1,5 @@
project('gst-plugins-ugly', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gst-python/NEWS b/subprojects/gst-python/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-python/NEWS
+++ b/subprojects/gst-python/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-python/RELEASE b/subprojects/gst-python/RELEASE
index 3213cd6252..91f60e080b 100644
--- a/subprojects/gst-python/RELEASE
+++ b/subprojects/gst-python/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-python 1.24.0.
+This is GStreamer gst-python 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-python/gst-python.doap b/subprojects/gst-python/gst-python.doap
index 902aa5ff56..98f53af19f 100644
--- a/subprojects/gst-python/gst-python.doap
+++ b/subprojects/gst-python/gst-python.doap
@@ -32,6 +32,16 @@ GStreamer Python Bindings is a set of overrides and Gst fundamental types handli
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-python/gst-python-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-python/meson.build b/subprojects/gst-python/meson.build
index d2b994288d..d40c1c2ae8 100644
--- a/subprojects/gst-python/meson.build
+++ b/subprojects/gst-python/meson.build
@@ -1,5 +1,5 @@
project('gst-python', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'c_std=gnu99',
diff --git a/subprojects/gst-rtsp-server/NEWS b/subprojects/gst-rtsp-server/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gst-rtsp-server/NEWS
+++ b/subprojects/gst-rtsp-server/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gst-rtsp-server/RELEASE b/subprojects/gst-rtsp-server/RELEASE
index 9ec7af4ced..8a1696bef1 100644
--- a/subprojects/gst-rtsp-server/RELEASE
+++ b/subprojects/gst-rtsp-server/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gst-rtsp-server 1.24.0.
+This is GStreamer gst-rtsp-server 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gst-rtsp-server/gst-rtsp-server.doap b/subprojects/gst-rtsp-server/gst-rtsp-server.doap
index dfd598076e..85e18acdb1 100644
--- a/subprojects/gst-rtsp-server/gst-rtsp-server.doap
+++ b/subprojects/gst-rtsp-server/gst-rtsp-server.doap
@@ -32,6 +32,16 @@ RTSP server library based on GStreamer
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gst-rtsp-server/gst-rtsp-server-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gst-rtsp-server/meson.build b/subprojects/gst-rtsp-server/meson.build
index 7fbb7cd284..1eb331edb4 100644
--- a/subprojects/gst-rtsp-server/meson.build
+++ b/subprojects/gst-rtsp-server/meson.build
@@ -1,5 +1,5 @@
project('gst-rtsp-server', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : ['warning_level=1', 'buildtype=debugoptimized'])
diff --git a/subprojects/gstreamer-sharp/meson.build b/subprojects/gstreamer-sharp/meson.build
index 88af9963e2..8429a32415 100644
--- a/subprojects/gstreamer-sharp/meson.build
+++ b/subprojects/gstreamer-sharp/meson.build
@@ -1,4 +1,4 @@
-project('gstreamer-sharp', ['cs', 'c'], version: '1.24.0.1',
+project('gstreamer-sharp', ['cs', 'c'], version: '1.24.1',
meson_version : '>= 1.1', license: 'LGPL')
fs = import ('fs')
diff --git a/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs b/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
index 009c016a25..55d4e87b2e 100644
--- a/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
+++ b/subprojects/gstreamer-sharp/sources/generated/Gst.PbUtils/Constants.cs
@@ -17,9 +17,9 @@ namespace Gst.PbUtils {
public const string ENCODING_CATEGORY_ONLINE_SERVICE = @"online-service";
public const string ENCODING_CATEGORY_STORAGE_EDITING = @"storage-editing";
public const int PLUGINS_BASE_VERSION_MAJOR = 1;
- public const int PLUGINS_BASE_VERSION_MICRO = 0;
+ public const int PLUGINS_BASE_VERSION_MICRO = 1;
public const int PLUGINS_BASE_VERSION_MINOR = 24;
- public const int PLUGINS_BASE_VERSION_NANO = 1;
+ public const int PLUGINS_BASE_VERSION_NANO = 0;
#endregion
}
}
diff --git a/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs b/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
index 1c33ae49a5..9928337580 100644
--- a/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
+++ b/subprojects/gstreamer-sharp/sources/generated/Gst/Constants.cs
@@ -171,9 +171,9 @@ namespace Gst {
public const int VALUE_LESS_THAN = -1;
public const int VALUE_UNORDERED = 2;
public const int VERSION_MAJOR = 1;
- public const int VERSION_MICRO = 0;
+ public const int VERSION_MICRO = 1;
public const int VERSION_MINOR = 24;
- public const int VERSION_NANO = 1;
+ public const int VERSION_NANO = 0;
#endregion
}
}
diff --git a/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml b/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
index aebbe06a26..8f0d77bb39 100644
--- a/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
+++ b/subprojects/gstreamer-sharp/sources/generated/gstreamer-sharp-api.xml
@@ -12342,10 +12342,10 @@
<constant value="1" ctype="gint" gtype="gint" name="VALUE_GREATER_THAN" />
<constant value="-1" ctype="gint" gtype="gint" name="VALUE_LESS_THAN" />
<constant value="2" ctype="gint" gtype="gint" name="VALUE_UNORDERED" />
- <constant value="1" ctype="gint" gtype="gint" name="VERSION_MAJOR" />
- <constant value="0" ctype="gint" gtype="gint" name="VERSION_MICRO" />
- <constant value="24" ctype="gint" gtype="gint" name="VERSION_MINOR" />
- <constant value="1" ctype="gint" gtype="gint" name="VERSION_NANO" />
+ <constant value="1" ctype="gint" gtype="gint" name="VERSION_MAJOR" />
+ <constant value="1" ctype="gint" gtype="gint" name="VERSION_MICRO" />
+ <constant value="24" ctype="gint" gtype="gint" name="VERSION_MINOR" />
+ <constant value="0" ctype="gint" gtype="gint" name="VERSION_NANO" />
</object>
<class name="Parse" cname="GstParse" disable_void_ctor="1">
<method name="ParseBinFromDescription" cname="gst_parse_bin_from_description" shared="true">
@@ -22376,10 +22376,10 @@
<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="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="0" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MICRO" />
- <constant value="24" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MINOR" />
- <constant value="1" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_NANO" />
+ <constant value="1" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MAJOR" />
+ <constant value="1" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MICRO" />
+ <constant value="24" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_MINOR" />
+ <constant value="0" ctype="gint" gtype="gint" name="PLUGINS_BASE_VERSION_NANO" />
</object>
</namespace>
<namespace name="Gst.Rtp" library="gstrtp-1.0-0.dll">
diff --git a/subprojects/gstreamer-vaapi/NEWS b/subprojects/gstreamer-vaapi/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gstreamer-vaapi/NEWS
+++ b/subprojects/gstreamer-vaapi/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gstreamer-vaapi/RELEASE b/subprojects/gstreamer-vaapi/RELEASE
index c81ca23d05..6c4c4a3e6e 100644
--- a/subprojects/gstreamer-vaapi/RELEASE
+++ b/subprojects/gstreamer-vaapi/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer gstreamer-vaapi 1.24.0.
+This is GStreamer gstreamer-vaapi 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap b/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
index e998687eb5..3d236ac05c 100644
--- a/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
+++ b/subprojects/gstreamer-vaapi/gstreamer-vaapi.doap
@@ -27,6 +27,16 @@
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer-vaapi/gstreamer-vaapi-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gstreamer-vaapi/meson.build b/subprojects/gstreamer-vaapi/meson.build
index e5b03a30b9..145f67ae44 100644
--- a/subprojects/gstreamer-vaapi/meson.build
+++ b/subprojects/gstreamer-vaapi/meson.build
@@ -1,5 +1,5 @@
project('gstreamer-vaapi', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])
diff --git a/subprojects/gstreamer/NEWS b/subprojects/gstreamer/NEWS
index 0a7f0b6afe..46d5d09e2e 100644
--- a/subprojects/gstreamer/NEWS
+++ b/subprojects/gstreamer/NEWS
@@ -2,18 +2,20 @@ GStreamer 1.24 Release Notes
GStreamer 1.24.0 was originally released on 4 March 2024.
+The latest bug-fix release in the stable 1.24 series is 1.24.1 and was released on 21 March 2024.
+
See https://gstreamer.freedesktop.org/releases/1.24/ for the latest version of this document.
-Last updated: Monday 4 March 2024, 23:00 UTC (log)
+Last updated: Thursday 21 March 2024, 14:00 UTC (log)
-Introduction
+## 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
+## Highlights
- New Discourse forum and Matrix chat space
- New Analytics and Machine Learning abstractions and elements
@@ -48,11 +50,12 @@ Highlights
- AVX/AVX2 support and NEON support on macOS on Apple ARM64 CPUs via new liborc
- GStreamer C# bindings have been updated
- Rust bindings improvements and many new and improved Rust plugins
+- Rust plugins now shipped in packages for all major platforms including Android and iOS
- Lots of new plugins, features, performance improvements and bug fixes
-Major new features and changes
+## Major new features and changes
-Discourse forum and Matrix chat space
+### Discourse forum and Matrix chat space
- The new Discourse forum and Matrix chat space are now our preferred communication channels for support and developer chat.
@@ -61,7 +64,7 @@ Discourse forum and Matrix chat space
- For release announcements please subscribe to the News + Announcements category on Discourse, although we will continue to
also send announcements to the mailing list for the time being.
-Playbin3, decodebin3 now stable and default
+### Playbin3, decodebin3 now stable and default
- After a year of stability, testing and more improvements, playbin3, and its various components (uridecodebin3, decodebin3
and urisourcebin), are now the recommended playback components.
@@ -84,7 +87,7 @@ Improvements in this cycle:
partly due to a historical confusion between subtitle “decoders” (which decode the format to text and “parsers” (which only
do timing detection and optional seeking).
-GstMeta serialization/deserialization and other GstMeta improvements
+### GstMeta serialization/deserialization and other GstMeta improvements
- GstMeta serialization/deserialization allows metas to be transmitted or stored. This is used by the unixfd and cudaipc
plugins for inter-process communication (IPC). Implemented so far for GstCustomMeta, GstVideoMeta, GstAudioMeta and
@@ -98,7 +101,7 @@ GstMeta serialization/deserialization and other GstMeta improvements
- Add gst_meta_info_new() and gst_meta_info_register() to register a GstMeta in two steps for easier extensibility.
-New unixfd plugin for efficient 1:N inter-process communication on Linux
+### New unixfd plugin for efficient 1:N inter-process communication on Linux
- unixfdsink and unixfdsrc are elements that, inspired by shmsink andn shmsrc, send UNIX file descriptors (e.g. memfd, dmabuf)
from one sink to multiple source elements in other processes on Linux.
@@ -106,7 +109,7 @@ New unixfd plugin for efficient 1:N inter-process communication on Linux
- The unixfdsink proposes a memfd/shm allocator to upstream elements which allows for example videotestsrc to write directly
into memory that can be transfered to other processes without copying.
-New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
+### New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Previously only various specific GstMeta for ancillary data were provided, such as GstVideoCaptionMeta and GstVideoAFDMeta.
The new GstAncillaryMeta allows passing arbitrary ancillary data between elements, including custom and non-standard
@@ -117,7 +120,7 @@ New GstMeta for SMPTE ST-291M HANC/VANC Ancillary Data
- Supported by the newly added AJA sink and source elements
-DSD audio support
+### DSD audio support
- DSD audio is a non-PCM raw audio format representation and the GstAudio library gained support for this in form of new
GstDsdInfo and GstDsdFormat API.
@@ -125,7 +128,7 @@ DSD audio support
- Support for DSD audio has been implemented in alsasink as well as the GstAudioSink and GstAudioRingBuffer base classes, and
the gst-libav plugin to enable FFmpeg-based DSD elements and functionality.
-Analytics and Machine Learning
+### Analytics and Machine Learning
- A new library, GstAnalytics, has been added. It defines a GstAnalyticsRelationMeta that can efficiently hold a large number
of observations from a data analysis process, for example from machine learning. It also contains a matrix of the
@@ -146,7 +149,7 @@ Analytics and Machine Learning
- In the next release, tensor decoders such as ssdobjectdetector will live outside of the ONNX plugin so they can be used with
other machine learning acceleration frameworks.
-Qt5 + Qt6 QML integration improvements
+### Qt5 + Qt6 QML integration improvements
- The Qt5 qmlglsink, qmlgloverlay, qmlglmixer received support for directly consuming BGRA and YV12 video frames without a
prior glcolorconvert.
@@ -156,7 +159,7 @@ Qt5 + Qt6 QML integration improvements
- qml6d3d11sink is a new Direct3D11 Qt6 QML sink for Windows as an alternative to the existing qml6glsink.
-DRM Modifier Support for dmabufs on Linux
+### DRM Modifier Support for dmabufs on Linux
The Linux dmabuf subsystem provides buffer sharing across different hardware device drivers and subsystems, and is used
extensively by the DRM subsystem to exchange buffers between processes, contexts, and library APIs within the same process, and
@@ -189,7 +192,7 @@ New API has been added for easy handling of these new caps:
- GST_VIDEO_FORMAT_DMA_DRM
-OpenGL integration enhancements
+### OpenGL integration enhancements
- When using EGL, if both OpenGL ES and OpenGL are available, OpenGL ES is preferred over OpenGL. OpenGL ES supports some
necessary features required for dmabuf support. This does not apply if an external library/application chooses an OpenGL API
@@ -233,7 +236,7 @@ OpenGL integration enhancements
- GstGLBufferPool now has a configuration option for allowing a number of buffers to be always outstanding allowing for
reducing the potential synchronisation delay when reusing OpenGL memory backed buffers.
-Vulkan integration enhancements
+### Vulkan integration enhancements
- Add support for the Vulkan H.264 and H.265 decoders.
@@ -246,7 +249,7 @@ Vulkan integration enhancements
- Vulkan/Wayland: add support for xdg_wm_base protocol for creating a visible debug window. Required as the previous wl_shell
interface is being removed from compositors.
-CUDA / NVCODEC integration and feature additions
+### CUDA / NVCODEC integration and feature additions
- New cudaipcsrc and cudaipcsink elements for zero-copy CUDA memory sharing between processes
@@ -265,7 +268,7 @@ CUDA / NVCODEC integration and feature additions
flag, cuStreamSynchronize() or gst_cuda_memory_sync() call is required unless application-side CUDA operation is executed
with the GstCudaMemory’s associated CUDA stream.
-RTP stack improvements
+### RTP stack improvements
- New rtppassthroughpay element which just passes RTP packets through unchanged, but appears like an RTP payloader element.
This is useful for relaying an RTP stream as-is through gst-rtsp-server, which expects an RTP payloader with certain
@@ -310,7 +313,7 @@ RTP stack improvements
rtpsbcdepay, rtpvorbisdepay, rtpmp4vdepay, rtptheoradepay, rtpsv3vdepay, rtpmp4adepay, rtpklvdepay, rtpjpegdepay,
rtpj2kdepay, rtph263pdepay, rtph263depay, rtph261depay. rtpgstdepay.
-WebRTC improvements
+### WebRTC improvements
- Add support for ICE consent freshness (RFC 7675). This requires libnice >= 0.1.22.
@@ -321,7 +324,7 @@ WebRTC improvements
- Various improvements and feature additions in the Rust webrtc plugin, which provides webrtcsrc and webrtcsink elements as
well as specific elements for different WebRTC signalling protocols. See the Rust plugins section below for more details.
-Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
+### Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- hlsdemux2 now supports Low-Latency HLS (LL-HLS)
@@ -345,7 +348,7 @@ Adaptive Streaming improvements and Low-Latency HLS (LL-HLS) support
- No development took place on the legacy demuxers (dashdemux, hlsdemux, mssdemux). Application developers are reminded to use
the new demuxers instead. They are automatically picked up when using urisourcebin, uridecodebin3 or playbin3.
-W3C Media Source Extensions library
+### W3C Media Source Extensions library
- A new GStreamer library (mse) implementing the W3C Media Source Extensions specification was added.
@@ -353,7 +356,7 @@ W3C Media Source Extensions library
without relying on a web browser engine. Typically an application consuming this library will wrap the C API with JavaScript
bindings that match the Media Source API so their existing code can integrate with this library.
-Closed Caption handling improvements
+### Closed Caption handling improvements
- ccconverter supports converting between the two CEA-608 fields.
@@ -362,7 +365,7 @@ Closed Caption handling improvements
- Various improvements and feature additions in the Rust-based closed caption elements. Check out the Rust plugins section
below for more details.
-Precision Time Protocol (PTP) clock improvements
+### Precision Time Protocol (PTP) clock improvements
- Many fixes and compatibility/interoperability improvements.
@@ -376,14 +379,14 @@ Precision Time Protocol (PTP) clock improvements
Windows, macOS, FreeBSD, NetBSD, OpenBSD, DragonFlyBSD, Solaris and Illumos. Newly supported compared to the C version is
Windows. Compared to the C version various error paths are handled more correctly and a couple of memory leaks are fixed.
Otherwise it should work identically. The minimum required Rust version for compiling this is 1.48, i.e. the version
- currently in Debian stable. On Windows, Rust 1.54 is needed at least.
+ currently in Debian oldstable. On Windows, Rust 1.54 is needed at least.
- New ptp-helper Meson build option so PTP support can be disabled or required.
- gst_ptp_init_full() allows for a more fine-grained and extensible configuration and initialization of the GStreamer PTP
subsystem, including TTL configuration.
-Bayer 10/12/14/16-bit depth support
+### Bayer 10/12/14/16-bit depth support
- bayer2rgb and rgb2bayer now support bayer with 10/12/14/16 bit depths
@@ -391,7 +394,7 @@ Bayer 10/12/14/16-bit depth support
- imagefreeze gained bayer support as well
-MPEG-TS improvements
+### MPEG-TS improvements
- mpegtsdemux gained support for
- segment seeking for seamless non-flushing looping, and
@@ -403,7 +406,7 @@ MPEG-TS improvements
- allows writing arbitrary Opus channel mapping families and up to 255 channels
- separate handling of DVB and ATSC AC3 descriptors
-New elements and plugins
+## New elements and plugins
- analyticsoverlay visualises object-detection metas on a video stream.
@@ -436,7 +439,7 @@ New elements and plugins
- New uvcsink element for exporting streams as UVC camera
-New element features and additions
+## New element features and additions
- alphacombine supports I420_10LE now for 10-bit WebM/alpha support.
@@ -594,11 +597,11 @@ New element features and additions
- y4mdec now parses extended headers to support high bit depth video.
-Plugin and library moves
+## Plugin and library moves
-- The AMR-NB and AMR-WB plugins have been moved from -bad to -good.
+- The AMR-NB and AMR-WB plugins have been moved from -ugly to -good.
-Plugin and element removals
+## Plugin and element removals
- The entire gst-omx package and plugin has been retired. See the OMX section below for more details.
@@ -606,7 +609,7 @@ Plugin and element removals
- The kate subtitle plugin has been removed.
-Miscellaneous API additions
+## Miscellaneous API additions
GStreamer Core
@@ -700,7 +703,7 @@ New Video Formats
- Tiled 10-bit NV12 format NV12_10LE40_4L4 (Verisilicon Hantro)
-Miscellaneous performance, latency and memory optimisations
+## Miscellaneous performance, latency and memory optimisations
- liborc 0.4.35 (latest: 0.4.38) adds support for AVX/AVX2 and contains improvements for the SSE backend.
@@ -712,7 +715,7 @@ Miscellaneous performance, latency and memory optimisations
- As always there have been plenty of performance, latency and memory optimisations all over the place.
-Tracing framework and debugging improvements
+## Tracing framework and debugging improvements
- The gst-stats tool can now be passed a custom regular expression
@@ -734,7 +737,7 @@ Fake video decoder
- It draws a snake moving from left to right in the middle of the frame, which is reasonably light weight and still provides
an idea about how smooth the rendering is.
-Tools
+## Tools
- gst-launch-1.0 gained a new --prog-name command line option to set the program name, which will be used by GTK and GStreamer
to set the class or app-id.
@@ -742,7 +745,7 @@ Tools
- gst-play-1.0 now defaults to using playbin3, but can still be made to use the old playbin by passing the --use-playbin2
command line argument.
-GStreamer FFmpeg wrapper
+## GStreamer FFmpeg wrapper
- New avvideocompare element to compare two incoming video buffers using a specified comparison method (e.g. SSIM or PSNR).
@@ -759,7 +762,7 @@ GStreamer FFmpeg wrapper
- Note: see Known Issues section below for known issues with FFmpeg 6.0
-GStreamer RTSP server
+## GStreamer RTSP server
- New “ensure-keyunit-on-start” property: While the suspend modes NONE and PAUSED provided a low startup latency for
connecting clients, it did not ensure that streams started on fresh data. With this new property it is possible to maintain
@@ -769,7 +772,7 @@ GStreamer RTSP server
- rtspclientsink: apply “port-range” property for RTCP port selection as well
-GStreamer VA-API support
+## GStreamer VA-API support
GstVA
@@ -802,7 +805,7 @@ GStreamer-VAAPI
equivalent. Users who rely on gstreamer-vaapi are encouraged to migrate and test the va elements at the earliest
opportunity.
-GStreamer Video4Linux2 support
+## GStreamer Video4Linux2 support
- New uvcsink element, based on v4l2sink allow streaming your pipeline as a UVC camera using Linux UVC Gadget driver.
@@ -814,7 +817,7 @@ GStreamer Video4Linux2 support
- Stateless decoders now tested using Virtual driver (visl), making it possible to run the tests in the cloud based CI
-GStreamer OMX
+## GStreamer OMX
- The gst-omx module has been removed. The OpenMAX standard is long dead and even the Raspberry Pi OS no longer supports it.
There has not been any development since 1.22 was released. Users of these elements should switch to the Video4Linux-based
@@ -823,7 +826,7 @@ GStreamer OMX
- Hardware vendors which still use OpenMAX are known to have non-standard forks and it is recommended that they maintain it
while planning their move to the Video4Linux API.
-GStreamer Editing Services and NLE
+## GStreamer Editing Services and NLE
- Implement a gesvideoscale effect which gives user the ability to chooses where a clip has to be scaled in the chain of
effects. By default scaling is done in the compositor.
@@ -861,7 +864,7 @@ ges-launch
- Move +effect stack effects from source to last effect added, so it feels more natural to user as adding them at the
beginning of the chain while the syntax is +effect felt wrong
-GStreamer validate
+## GStreamer validate
- In action types, add a way to avoid checking property value after setting it, in case elements do it async for example.
@@ -888,7 +891,7 @@ GStreamer validate
- Fixed compatibility with Python 3.12.
-GStreamer Python Bindings
+## GStreamer Python Bindings
gst-python is an extension of the regular GStreamer Python bindings based on gobject-introspection information and PyGObject,
and provides “syntactic sugar” in form of overrides for various GStreamer APIs that makes them easier to use in Python and more
@@ -905,7 +908,7 @@ e.g. GStreamer’s fundamental GLib types such as Gst.Fraction, Gst.IntRange etc
- Fix libpython dlopen on macOS
-GStreamer C# Bindings
+## GStreamer C# Bindings
- The GStreamer C# bindings have been updated to a more recent version of GtkSharp and the bindings have been regenerated with
that version.
@@ -914,7 +917,7 @@ GStreamer C# Bindings
- GstRtspServer bindings have been added, plus an RTSP server example
-GStreamer Rust Bindings and Rust Plugins
+## GStreamer Rust Bindings and Rust Plugins
The GStreamer Rust bindings and plugins are released separately with a different release cadence that’s tied to the twice-a-year
GNOME release cycle.
@@ -928,7 +931,7 @@ backported as needed to the 0.12 brach for future 1.24.x bugfix releases.
Rust plugins can be used from any programming language. To applications they look just like a plugin written in C or C++.
-WebRTC
+### WebRTC
- New element webrtcsrc that can act as a recvonly WebRTC client. Just like the opposite direction, webrtcsink, this can
support various different WebRTC signalling protocols. Some are included with the plugin and provide their own element
@@ -969,7 +972,7 @@ WebRTC
… and various other smaller improvements!
-RTSP
+### RTSP
- New rtspsrc2 element. Only a subset of RTSP features are implemented so far:
- RTSP 1.0 support
@@ -980,7 +983,7 @@ RTSP
- The existing rtspsrc has a hard-coded order list for lower transports
- Many advanced features are not implemented yet, such as non-live support. See the README for the current status.
-GTK4
+### GTK4
- Support for rendering GL textures on X11/EGL, X11/GLX, Wayland, macOS, and WGL/EGL on Windows.
@@ -996,7 +999,7 @@ GTK4
- Various bugfixes, including support for the new GTK 4.14 GL renderer. The plugin needs to be built with at least the
gtk_v4_10 feature to work with the new GTK 4.14 GL renderer, and will work best if built with the gtk_v4_14 feature.
-Closed Caption
+### Closed Caption
- Add cea608tocea708 element for upconverting CEA-608 captions to their CEA-708 representation.
@@ -1007,7 +1010,7 @@ Closed Caption
- awstranscriber is using the new HTTP/2-based API now instead of the WebSocket-based one.
-Other new elements
+### Other new elements
- New awss3putobjectsink that works similar to awss3sink but with a different upload strategy.
@@ -1021,7 +1024,7 @@ Other new elements
- New isomp4mux non-fragmented MP4 muxer element.
-Other improvements
+### Other improvements
- audiornnoise
- Attach audio level meta to output buffers.
@@ -1041,12 +1044,12 @@ Other improvements
For a full list of changes in the Rust plugins see the gst-plugins-rs ChangeLog between versions 0.9 (shipped with GStreamer
1.22) and 0.12 (shipped with GStreamer 1.24).
-Cerbero Rust support
+## Cerbero Rust support
- As of GStreamer 1.24, the GStreamer Rust plugins are shipped as part of our binary packages on all major platforms. This
includes Android and iOS now in addition to macOS and Windows/MSVC.
-Build and Dependencies
+## Build and Dependencies
- Meson >= 1.1 is now required for all modules
@@ -1067,9 +1070,9 @@ Build and Dependencies
- zxing: added support for the zxing-c++ 2.0 API
- The ptp-helper for Precision Time Protocol (PTP) support in GStreamer core has been rewritten in Rust, and the minimum
- required Rust version for building this is 1.48, i.e. the version currently in Debian stable. On Windows, at least Rust 1.54
- is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP support is
- available (if set to ptp-helper=enabled). cargo is not required for building.
+ required Rust version for building this is 1.48, i.e. the version currently in Debian oldstable. On Windows, at least Rust
+ 1.54 is needed. There is a new ptp-helper Meson feature option that can be used to make sure everything needed for PTP
+ support is available (if set to ptp-helper=enabled). cargo is not required for building.
- gst-plugins-rs requires Rust 1.70 or newer.
@@ -1104,7 +1107,7 @@ Development environment
- gst-env.py: Output a setting for the prompt with --only-environment
-Cerbero
+### 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.
@@ -1181,16 +1184,16 @@ Android
- tremor and ivorbisdec plugins are no longer shipped on Android
- openh264 plugin no longer enables ASM optimizations on Android x86 due to relocation errors
-Platform-specific changes and improvements
+## Platform-specific changes and improvements
-Android
+### Android
- Add NDK implementation of Android MediaCodec. This reduces the amount of Java <-> native calls, which should reduce
overhead.
- Add support for AV1 to the androidmedia video encoder and decoder.
-Apple macOS and iOS
+### Apple macOS and iOS
- osxaudio: audio clock improvements (interpolate based on system time)
@@ -1199,7 +1202,7 @@ Apple macOS and iOS
them. Without that, windows would disappear if you clicked outside them and there would be no way to bring them to front
again. This change also allows osxvideosink to receive navigation events correctly.
-Windows
+### Windows
- New DirectWrite text rendering plugin with dwriteclockoverlay, dwritetimeoverlay, dwritetextoverlay, dwritesubtitlemux, and
dwritesubtitleoverlay elements, including closed caption overlay support in dwritetextoverlay.
@@ -1243,12 +1246,12 @@ Windows
- All d3d12 elements are zero ranked for now. Users will need to adjust rank of each d3d12 element via GST_PLUGIN_RANK
environment or appropriate plugin feature APIs if they want these elements autoplugged.
-Documentation improvements
+## Documentation improvements
- hotdoc has been updated to the latest version, and the theme has also been updated, which should fix various usability
issues.
-Possibly Breaking Changes
+## Possibly Breaking Changes
- gst_plugin_feature_check_version() has been updated to fix unexpected version check behaviour for git versions. It would
return TRUE if the plugin version is for a git development version (e.g. 1.24.0.1) and the check is for the “next” micro
@@ -1268,12 +1271,12 @@ Possibly Breaking Changes
- The NVIDIA desktop GPU decoders nvh264sldec, nvh265sldec, nvvp8sldec and nvvp9sldec were renamed to nvh264dec, nvh265dec,
nvvp8dec and nvvp9dec, respectively.
-Known Issues
+## Known Issues
- There are known issues with FFmpeg version 6.0.0 due to opaque passing being broken in that version. This affects at least
avdec_h264, but may affect other decoders as well. Versions before 6.0.0, and 6.0.1 or higher are not affected.
-Statistics
+## Statistics
- 4643 commits
@@ -1293,7 +1296,7 @@ Statistics
- 259791 lines added (net)
-Contributors
+## Contributors
Aaron Boxer, Aaron Huang, Acky Xu, adixonn, Adrian Fiergolski, Adrien De Coninck, Akihiro Sagawa, Albert Sjölund, Alessandro
Bono, Alexande B, Alexander Slobodeniuk, Alicia Boya García, amindfv, Amir Naghdinezhad, anaghdin, Anders Hellerup Madsen,
@@ -1341,6 +1344,172 @@ bug-fix releases will be made from the git 1.24 branch, which will be a stable b
GStreamer 1.24.0 was released on 4 March 2024.
+1.24.1
+
+The first 1.24 bug-fix release (1.24.1) was released on 21 March 2024.
+
+This release only contains bugfixes and it should be safe to update from 1.24.0.
+
+Highlighted bugfixes in 1.24.1
+
+- Fix instant-EOS regression in audio sinks in some cases when volume is 0
+- rtspsrc: server compatibility improvements and ONVIF trick mode fixes
+- rtsp-server: fix issues if RTSP media was set to be both shared and reusable
+- (uri)decodebin3 and playbin3 fixes
+- adaptivdemux2/hlsdemux2: Fix issues with failure updating playlists
+- mpeg123 audio decoder fixes
+- v4l2codecs: DMA_DRM caps support for decoders
+- va: various AV1 / H.264 / H.265 video encoder fixes
+- vtdec: fix potential deadlock regression with ProRes playback
+- gst-libav: fixes for video decoder frame handling, interlaced mode detection
+- avenc_aac: support for 7.1 and 16 channel modes
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- Fix usability of binary packages on arm64 iOS
+- various bug fixes, memory leak fixes, and other stability and reliability improvements
+
+gstreamer
+
+- registry, ptp: Canonicalize the library path returned by dladdr
+- segment: Don’t use g_return_val_if_fail() in gst_segment_to_running_time_full()
+- uri: Sort uri protocol sources/sinks by feature name to break a feature rank tie
+- ptp: Initialize expected DELAY_REQ seqnum to an invalid value
+- ptp: Don’t install test executable
+- gst-inspect: fix –exists for plugins with versions other than GStreamer’s version, like the Rust plugins
+- identity: Don’t refuse seeks unless single-segment=true
+
+gst-plugins-base
+
+- audiobasesink: Don’t wait on gap events
+- audioencoder: Avoid using temporarily mapped memory as base for input buffers
+- decodebin3: Be more specific when sending missing plugin messages
+- decodebin3: Fix re-usability issues
+- decodebin3: Provide clear error message if no decoders present
+- playbin3: Remove un-needed URI NULL check
+- uridecodebin3: Don’t hold lock when posting messages or signals
+- uridecodebin3: Handle potential double redirection errors
+- glimagesink: Fix the sink not always respecting preferred size on macOS
+- glupload: Do not propose allocators with sysmem, fixes warning when playing VP9 with alpha
+- shmallocator: fix build on Illumos
+- meson: Fix the condition to skip theoradec test
+
+gst-plugins-good
+
+- adaptivdemux/hlsdemux2: Fix issues with failure updating playlists
+- mpg123audiodec: Correctly handle the case of clipping all decoded samples
+- mpg123audiodec: gst_audio_decoder_allocate_output_buffer: assertion ‘size > 0’ failed
+- qt: Fix description in meson build options
+- qtdemux: Do not set channel-mask to zero
+- rtspsrc: remove ‘deprecated’ flag from the ‘push-backchannel-sample’ signal
+- rtspsrc: Consider 503 Service Not Available when handling broken control urls
+- rtspsrc, rtponviftimestamp: ONVIF mode fixes
+- rtspsrc: Don’t invoke close when stopping if we’ve started cleanup, fixing potential crash on shutdown
+- rtpgstpay: Delay pushing of event packets until the next buffer
+
+gst-plugins-bad
+
+- asio: Fix {input,output}-channels property handling
+- cuda,d3d11,d3d12bufferpool: Disable preallocation
+- d3d11device: Fix adapter LUID comparison in wrapped device mode
+- d3d12device: Fix IDXGIFactory2 leak
+- d3d12: Fix SDK debug layer activation
+- dvbsubenc: Fix bottom field size calculation
+- dvdspu: avoid null dereference
+- GstPlay: Fix a critical warning in error callback
+- v4l2codecs: decoders: Add DMA_DRM caps support
+- vaav1enc: Init the output_frame_num when resetting gf group
+- vah264enc, vah265enc, vaav1enc: fix potential crash on devices without rate control
+- vah265enc: checking surface alignment
+- videoparsers: Don’t verbosely warn about CEA_708_PROCESS_EM_DATA_FLAG not being set
+- vtdec: Fix a deadlock during ProRes playback, handle non-linked gracefully
+
+gst-plugins-ugly
+
+- No changes
+
+GStreamer Rust plugins
+
+- gtk4paintablesink: Fix scaling of texture position
+- janusvrwebrtcsink: Handle 64 bit numerical room ids
+- janusvrwebrtcsink: Don’t include deprecated audio/video fields in publish messages
+- janusvrwebrtcsink: Handle various other messages to avoid printing errors
+- livekitwebrtc: Fix shutdown behaviour
+- rtpgccbwe: Don’t forward buffer lists with buffers from different SSRCs to avoid breaking assumptions in rtpsession
+- sccparse: Ignore invalid timecodes during seeking
+- webrtcsink: Don’t try parsing audio caps as video caps
+- webrtc: Allow resolution and framerate changes
+- webrtcsrc: Make producer-peer-id optional
+- livekitwebrtcsrc: Add new LiveKit source element
+- regex: Add support for configuring regex behaviour
+- spotifyaudiosrc: Document how to use with non-Facebook accounts
+- webrtcsrc: Add do-retransmission property
+
+gst-libav
+
+- avcodecmap: Increase max AAC channels to 16
+- avviddec: Fix how we get back the codec frame
+- avviddec: Fix interlaced mode detection
+- avviddec: Double check if AV_CODEC_FLAG_COPY_OPAQUE port is safe for our scenario
+
+gst-rtsp-server
+
+- media: gst_rtsp_media_set_reusable() and gst_rtsp_media_set_shared() have become incompatible
+- rtsp-stream: clear sockets when leaving bin
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: Fix critical warning
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.24.1
+
+- gstreamer: Enable ptp helper explicitly
+- gst-plugins-bad: Package new insertbin plugin
+- gst-plugins-rs: Adjust parallel architecture build blocks
+- libnice: update to 0.1.22
+- pixman: Bump to 0.43.4
+- orc: disable JIT code generation on arm64 on iOS again, fixing crashes
+
+Contributors to 1.24.1
+
+Alexander Slobodeniuk, Antonio Larrosa, Edward Hervey, Elizabeth Figura, François Laignel, Guillaume Desmottes, He Junyan, Jan
+Schmidt, Jordan Yelloz, L. E. Segovia, Mark Nauwelaerts, Mathieu Duponchelle, Michael Tretter, Mikhail Rudenko, Nicolas
+Dufresne, Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Robert Mader, Ruijing Dong, Sebastian Dröge, Seungha Yang,
+Thomas Goodwin, Thomas Klausner, Tim-Philipp Müller, Xi Ruoyao,
+
+… and many others who have contributed bug reports, translations, sent suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.24.1
+
+- List of Merge Requests applied in 1.24.1
+- List of Issues fixed in 1.24.1
+
Schedule for 1.26
Our next major feature release will be 1.26, and 1.25 will be the unstable development version leading up to the stable 1.26
diff --git a/subprojects/gstreamer/RELEASE b/subprojects/gstreamer/RELEASE
index f5708747f1..35a0baddff 100644
--- a/subprojects/gstreamer/RELEASE
+++ b/subprojects/gstreamer/RELEASE
@@ -1,4 +1,4 @@
-This is GStreamer core 1.24.0.
+This is GStreamer core 1.24.1.
The GStreamer team is thrilled to announce a new major feature release
of your favourite cross-platform multimedia framework!
diff --git a/subprojects/gstreamer/gstreamer.doap b/subprojects/gstreamer/gstreamer.doap
index 5bae6e3423..4a1dca3fc1 100644
--- a/subprojects/gstreamer/gstreamer.doap
+++ b/subprojects/gstreamer/gstreamer.doap
@@ -40,6 +40,16 @@ hierarchy, and a set of media-agnostic core elements.
<release>
<Version>
+ <revision>1.24.1</revision>
+ <branch>1.24</branch>
+ <name></name>
+ <created>2024-03-21</created>
+ <file-release rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.24.1.tar.xz" />
+ </Version>
+ </release>
+
+ <release>
+ <Version>
<revision>1.24.0</revision>
<branch>main</branch>
<name></name>
diff --git a/subprojects/gstreamer/meson.build b/subprojects/gstreamer/meson.build
index 264e87f91a..3f8b36b0bc 100644
--- a/subprojects/gstreamer/meson.build
+++ b/subprojects/gstreamer/meson.build
@@ -1,5 +1,5 @@
project('gstreamer', 'c',
- version : '1.24.0.1',
+ version : '1.24.1',
meson_version : '>= 1.1',
default_options : [ 'warning_level=1',
'buildtype=debugoptimized' ])