372 lines
18 KiB
Plaintext
372 lines
18 KiB
Plaintext
GStreamer 1.27.x Release Notes
|
||
|
||
GStreamer 1.27.x is an API/ABI-unstable development series leading up to the stable 1.28 series.
|
||
|
||
GStreamer 1.28.0 has not been released yet. It will be released in late 2025.
|
||
|
||
The current stable series is 1.26.
|
||
|
||
The latest development release towards the upcoming 1.28 stable series is 1.27.1 and was released on 8 July 2025.
|
||
|
||
1.27.1
|
||
|
||
The first API/ABI-unstable 1.27.x development snapshot release (1.27.1) was released on 8 July 2025.
|
||
|
||
Any newly-added API in the 1.27.x series may still change or be removed again before 1.28 and should be considered unstable
|
||
until 1.28 is released.
|
||
|
||
The 1.27.x release series is for testing and development purposes, and distros should probably not package it.
|
||
|
||
Highlighted changes in 1.27.1
|
||
|
||
- Add AMD HIP plugin
|
||
- Add Vulkan H.264 encoder and add 10-bit support to Vulkan H.265 decoder
|
||
- Add LiteRT inference element
|
||
- Aggregator: expose current-level-* properties on sink pads
|
||
- Analytics: add general classifier tensor-decoder, facedetector, and more convenience API
|
||
- alsa: Support enumerating virtual PCM sinks
|
||
- d3d12: Add d3d12remap element
|
||
- Wayland: Add basic colorimetrie support
|
||
- Webkit: New wpe2 plugin making use of the “WPE Platform API”
|
||
- MPEG-TS demuxer: Add property to disable skew corrections
|
||
- qml6gloverlay: support directly passing a QQuickItem for QML the render tree
|
||
- unifxfdsink: Add a property to allow copying to make sink usable with more upstream elements
|
||
- videorate: Revive “new-pref” property for better control in case of caps changes
|
||
- wasapi2: Port to IMMDevice based device selection
|
||
- GstReferenceTimestampMeta can carry additional per-timestamp information now
|
||
- Added GstLogContext API that allows to fix log spam in several components
|
||
- New tracer hook to track when buffers are queued/dequeued in buffer pools
|
||
- gst-inspect-1.0: Prints type info for caps fields now
|
||
- Pipeline graph dot files now contain information about active tracers
|
||
- Python bindings: add Gst.Float wrapper, Gst.ValueArray.append_value(), analytics API improvements
|
||
- cerbero packages: ship vvdec and curl plugins; ship wasapi2 on MingW builds
|
||
- Removed the gstreamer-vaapi module which has now been superseded by the va plugin
|
||
|
||
gstreamer
|
||
|
||
- aggregator: add sub_latency_min to pad queue size
|
||
- aggregator: expose current-level-* properties on sink pads
|
||
- baseparse: Add disable-clip property
|
||
- buffer: Add optional info structure to GstReferenceTimestampMeta
|
||
- core changes needed for tensor negotiation
|
||
- core: gstvalue: fix ANY/EMPTY caps (features) hash
|
||
- general: Stop checking G_HAVE_GNUC_VARARGS now that we require on c99
|
||
- Add information about active tracers in dot files
|
||
- gst: info: Add a GstLogContext API
|
||
- gstmessage: Debug error message is nullable
|
||
- gstvalue: add hashing
|
||
- gstvalue: fix gst_value_is_subset_array_array()
|
||
- meta: Add g_return_val_if_fail() for NULL valid_tags in gst_meta_api_type_tags_contain_only()
|
||
- tracer: Add a hook to track when buffers are queued/dequeued in pools
|
||
- tracer: Make it compile when tracer hooks are disabled
|
||
- Fix log spam in several components
|
||
- Misc changes to avoid build failures with fedora 42
|
||
- meson: rename meson_options.txt to meson.options
|
||
- tests: More valgrind and test fixes
|
||
- gst-inspect-1.0: Added type info for caps fields
|
||
|
||
gst-plugins-base
|
||
|
||
- Fix log spam in several components using the new log context API
|
||
- alsa: Support enumerating virtual PCM sinks
|
||
- appsink, appsrc: Only notify drop property and not in/out
|
||
- appsink, appsrc: Add some more stats
|
||
- decodebin, pbutils: use new GstLogContext API
|
||
- discoverer: Make gst_discoverer_info_from_variant nullable
|
||
- discoverer: Enhance debug logging
|
||
- elements: use set_static_metadata when it’s allowed
|
||
- general: Stop checking G_HAVE_GNUC_VARARGS now that we require on c99
|
||
- gl/window: add support for configuring whether a backing surface is needed
|
||
- gl/x11: need to check display type
|
||
- gl: Fix support for dmabuf using a DRM format that we can’t emulate with shaders
|
||
- gl: cocoa: Add navigation event support
|
||
- gldmabufferpool: disable “free cache” workaround in GstGLBufferPool
|
||
- gldownload: improve logging of gl-dmabuf pool usage
|
||
- glupload: Promote fixate caps results print to info
|
||
- glvideomixer, compositor: fix mouse event handling to return wether upstream handled the events or not.
|
||
- glwindow_cocoa: fix window not closing (w/o user window handle)
|
||
- opengl: VA / glimagesink broke in some cases (regression)
|
||
- opengl: Fix DRM format and modifier negotiation regressions
|
||
- orc: Update pregenerated files
|
||
- unifxfdsink: Add an property to allow copying
|
||
- unixfdsrc: fix allocating FD memory with nonzero offsets
|
||
- video formats: Add DRM equivalents for 10/12/16 bit SW-decoders formats
|
||
- video: Add 10bit 422 NV16_10LE40 format
|
||
- videorate, imagefreeze: add support for JPEG XS
|
||
- videorate: Revive ‘new-pref’ property
|
||
- webrtcbin: Include all accepted media formats in SDP answers
|
||
- gst-device-monitor-1.0: Deinitialize GStreamer before exiting
|
||
- GStreamer with OpenGL creates an empty “OpenGL Renderer” window on Wayland
|
||
- meson: rename meson_options.txt to meson.options
|
||
- tests: More valgrind and test fixes
|
||
|
||
gst-plugins-good
|
||
|
||
- gldownload: improve logging of gl-dmabuf pool usage
|
||
- imagefreeze: Handle EOS from send_event()
|
||
- matroskademux: Add support for relative position cues
|
||
- orc: Update pregenerated files
|
||
- qml6gloverlay: support directly passing a QQuickItem for QML the render tree
|
||
- rtph265depay: output profile, tier, level in output caps
|
||
- rtpjpeg: fix copying of quant data if it spans memory segments
|
||
- v4l2object: Make extra-controls property mutable in playing state
|
||
- v4l2object: Provide padding requirements during propose allocation
|
||
- video: Add 10bit 422 NV16_10LE40 format
|
||
- videorate, imagefreeze: add support for JPEG XS
|
||
- y4m: move y4mdec to good to have a single y4m plugin
|
||
- Fix build with -DGST_REMOVE_DEPRECATED
|
||
- Name buffer pools for new buffer pool enqueue/dequeue tracer
|
||
- meson: rename meson_options.txt to meson.options
|
||
- elements: use set_static_metadata when it’s allowed
|
||
- tests: More valgrind and test fixes
|
||
|
||
gst-plugins-bad
|
||
|
||
- Fix build with -DGST_REMOVE_DEPRECATED
|
||
- Misc changes to avoid build failures with fedora 42
|
||
- analytics: Add transform function to copy the tensor meta
|
||
- analytics: Fix docs of gst_tensor_check_type()
|
||
- analytics: Fix transfer annotations of gst_tensor_check_type()
|
||
- analytics: add a convenient API to retrieve tensor
|
||
- analytics: add more convenient API to retrieve tensor
|
||
- analytics: classifier tensor decoder
|
||
- analytics: Move IoU calculation to gstanalytics lib
|
||
- analyticsoverlay: add filled-box mode
|
||
- cuda: Lower debug log level on nvrtc compilation failure
|
||
- curl: Fix wrong format specifier for macOS
|
||
- curl: Recover missing comment
|
||
- d3d12: Add d3d12remap element
|
||
- d3d12screencapturesrc: Fix OS handle leaks/random crash in WGC mode
|
||
- d3d12swapchainsink: Add uv-remap and redraw action signal
|
||
- elements: use set_static_metadata when it’s allowed
|
||
- general: Stop checking G_HAVE_GNUC_VARARGS now that we require on c99
|
||
- h264parse: Drop NAL units that can’t be parsed using AU alignment
|
||
- h264parse: Forward LCEVC caps
|
||
- h265parser: Make gst_h265_parser_link_slice_hdr public
|
||
- hip: Add AMD HIP plugin
|
||
- hip: Add missing #ifdef
|
||
- hip: stream and event integration
|
||
- motioncells: fix typo in header comment
|
||
- mpegtsdemux: Add property to disable skew corrections
|
||
- mpegtsmux: Read prog-map[PMT_ORDER_<PID>] for PMT order key
|
||
- nice: Don’t modify struct borrowed by signal
|
||
- nvjpegenc: Add autogpu mode element
|
||
- onnx: Cleanup the session creation
|
||
- onnx: Use system installed Eigen to avoid hash mismatch failure
|
||
- onnx: produce tensor caps
|
||
- opengl: Fix DRM format and modifier negotiation regressions
|
||
- orc: Update pregenerated files
|
||
- parser: fix spelling of GstAV1SegmentationParams
|
||
- tensordecoder: facedetector: Detect tensor output from the inference of Ultra Light Face Detection
|
||
- test: analytics: add more test on tracking mtd
|
||
- tfliteinference: Add LiteRT inference element
|
||
- tfliteinference: initialize means and stddevs arrays appropriately
|
||
- unifxfdsink: Add an property to allow copying
|
||
- unixfdsrc: fix allocating FD memory with nonzero offsets
|
||
- v4l2codecs: Fix typos in the documentation
|
||
- v4l2codecs: Use prop_offset in gst_v4l2_decoder_install_properties
|
||
- va: remove unused headers
|
||
- video: Add 10bit 422 NV16_10LE40 format
|
||
- videorate: Revive ‘new-pref’ property
|
||
- vkerror: add invalid_video_std_parameters message
|
||
- vkh264enc: add Vulkan H264 encoder
|
||
- vkh265dec: add 10 bits support
|
||
- vkvideoencodeh26x: don’t leak queues and ensure we call teardown() for each test
|
||
- vtenc: Use strlcpy instead of strncpy
|
||
- vulkan: use VK_EXT_debug_utils if available
|
||
- vulkan: Fix drawing too many triangles in fullscreenquad
|
||
- waylandsink: some property handling fixes
|
||
- webrtc: Fix compatibility with LiveKit
|
||
- webrtc: Fix hangup when duplicate sctp association IDs chosen
|
||
- vulkanupload: refactor frame copy
|
||
- wasapi2: Log buffer QPC position and status flags
|
||
- wasapi2: Port to IMMDevice based device selection
|
||
- wayland: Add basic colorimetrie support
|
||
- wayland: Add support for local protocols
|
||
- wayland: Remove custom format mapping
|
||
- waylandsink: Add force-aspect-ratio property
|
||
- waylandsink: some property handling fixes
|
||
- webrtc: Partial revert of !8698
|
||
- webrtc: stats: Fill data-channel transport stats and increase spec compliance for ICE candidate stats
|
||
- webrtc: stats: Improve spec compliance for ICE candidate stats
|
||
- webrtc: Fix compatibility with LiveKit
|
||
- webrtcbin: Include all accepted media formats in SDP answers
|
||
- webrtcbin: Make mid optional in offers and answers
|
||
- webrtcdsp: Respect disabled feature option
|
||
- wpe2: New WPE plugin making use of the “WPE Platform API”
|
||
- svtjpegxs: print message for architectures unsupported by SVT-JPEG-XS
|
||
- x265enc: Add bitrate tags to the output
|
||
- y4m: move y4mdec to good to have a single y4m plugin
|
||
- Name buffer pools for new buffer pool enqueue/dequeue tracer
|
||
- meson: rename meson_options.txt to meson.options
|
||
- tests: More valgrind and test fixes
|
||
|
||
gst-plugins-ugly
|
||
|
||
- Name buffer pools for new buffer pool enqueue/dequeue tracer
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
GStreamer Rust plugins
|
||
|
||
Changes compared to the current stable release (1.26.3) which both track gst-plugins-rs main branch for the time being:
|
||
|
||
- aws: s3hlssink: Write to S3 on OutputStream flush
|
||
- gopbuffer: Push GOPs in order of time on EOS
|
||
- gtk4: Promote set_caps debug log to info
|
||
- hlssink3: Use closed fragment location in playlist generation
|
||
- livekit: add room-timeout
|
||
- mp4mux: add TAI timestamp muxing
|
||
- rtpbin2: fix race condition on serialized Queries
|
||
- rtpbin2: sync: fix race condition
|
||
- rtprecv: fix SSRC collision event sent in wrong direction
|
||
- webrtc: sink: avoid recursive locking of the session
|
||
- webrtc: fix Safari addIceCandidate crash
|
||
- webrtcsink: fix deadlock on error setting remote description
|
||
- webrtcsink: add signal to configure mitigation modes
|
||
|
||
gst-libav
|
||
|
||
- Name buffer pools for new buffer pool enqueue/dequeue tracer
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
gst-rtsp-server
|
||
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
gstreamer-vaapi
|
||
|
||
- Remove gstreamer-vaapi module which has now been superseded by the va plugin
|
||
|
||
gstreamer-sharp
|
||
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
gst-python
|
||
|
||
- analytics: Add python API to iterate over specific Mtd types.
|
||
- analytics: Add python API to get relation path
|
||
- analytics: Add API iter_direct_related to GstAnalyticsMeta
|
||
- Add Gst.Float wrapper
|
||
- Override Gst.ValueArray.append_value()
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
gst-editing-services
|
||
|
||
- Enhance debug logging
|
||
- Handle add_control_binding failures
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
gst-devtools, gst-validate + gst-integration-testsuites
|
||
|
||
- devtools: dots-viewer: Add a button to download the SVG file
|
||
- devtools: dots-viewer: sort static files
|
||
- elements: use set_static_metadata when it’s allowed
|
||
- validate: Do not list test files that are not autogenerated in .testlist
|
||
- validate: Minor launcher improvements
|
||
- validate: baseclasses: Reset Test.extra_logfiles when copying to start an iteration
|
||
- validate: launcher: Downgrade non-critical log messages from ERROR to INFO
|
||
- validate: Add a set of tests for checking if videooverlaycomposition reaches the sink
|
||
- meson: rename meson_options.txt to meson.options
|
||
|
||
gstreamer-docs
|
||
|
||
- android tutorials: Update provided projects to Gradle 8.11 and API level 24
|
||
|
||
Development build environment
|
||
|
||
- Add devcontainer manifest for our CI image!
|
||
- Some subproject fixes on Windows
|
||
- general: Stop checking G_HAVE_GNUC_VARARGS now that we require on c99
|
||
- meson: rename meson_options.txt to meson.options
|
||
- cairo: update wrap to 1.18.4
|
||
- ffmpeg: update wrap to 7.1.1
|
||
- librsvg: Add wrap
|
||
- svtjpegxs: Add wrap
|
||
- wayland-protocols: Update wrap
|
||
- webrtc-audio-processing: Add patches to wrap to fix compilation with gcc 15
|
||
|
||
Cerbero build tool and packaging changes in 1.27.1
|
||
|
||
- Add override_build_tools property
|
||
- Add vvdec recipe and build/ship vvdec plugin
|
||
- Fix gensdkshell command
|
||
- Fix librsvg recipe FatalError for usupported RUST arch/platform
|
||
- Fixes for MinGW builds with Meson master
|
||
- Local source
|
||
- UX: improve error msg
|
||
- a52dec: update to 0.8.0 and port to Meson
|
||
- bootstrap: linux: Install libatomic on RedHat-based distros
|
||
- build-tools: Update bison and flex
|
||
- build: honor library_type for autotools recipes
|
||
- build: use a list instead of a string for configure options
|
||
- cargo-c: Update to 0.10.13
|
||
- cdparanoia: port to Meson
|
||
- cerbero: Add bindgen for Cargo recipes
|
||
- cerbero: Fix bundle-source bugs
|
||
- cerbero: Handle rust variant on Linux for old binutils versions
|
||
- cmake: respect the configured output library type
|
||
- curl: Add missing payloads
|
||
- curl: add curl support
|
||
- curl: fix install step in Windows when target file exists
|
||
- dvdread: update to 6.1.3 and switch to Meson
|
||
- expat: update to 2.7.1
|
||
- glib, gobject-introspection: Update for MSVC patches
|
||
- gst-devtools, bindgen-cli: Fix install_name_tool relocation error
|
||
- gst-plugins-bad: Ship wasapi2 plugin in MinGW build as well
|
||
- gst-plugins-rs: Force preset LIBCLANG_PATH for bindgen
|
||
- gst-plugins-rs: Update recipe to simplify inheriting
|
||
- libdvdnav: Fix missing build type
|
||
- libdvdnav: Update to 6.1.1 and port to Meson
|
||
- libdvdread: Fix incomplete MSVC compatibility
|
||
- librsvg: Update to 2.60.0
|
||
- libxml2: update to 2.14.2
|
||
- meson: check if Rust variant to configure rustc bin
|
||
- osxrelocator: Add .so to the allowed dylib extensions
|
||
- pixman: update to 0.46.0
|
||
- rust: Update to Rust 1.88 and cargo-c 0.10.14
|
||
- rustup: Implement installer status caching, inplace target installs and upgrades
|
||
- rustup: Work around broken symlink support in CI
|
||
- spandsp: Fix signature compatibility with MSVC x86
|
||
- spandsp: port to Meson
|
||
- svt-av1: fix compatibility with CMake 4
|
||
- y4m: update recipes for the fusion of both plugins
|
||
|
||
Contributors to 1.27.1
|
||
|
||
Adrian Perez de Castro, Aleix Pol, Alexander Slobodeniuk, Alicia Boya García, Alyssa Ross, Andoni Morales Alastruey, Andrew
|
||
Yooeun Chun, Arnout Engelen, Artem Martus, Arun Raghavan, Ben Butterworth, Biswapriyo Nath, Brad Hards, Branko Subasic, Carlos
|
||
Bentzen, Carlos Rafael Giani, César Alejandro Torrealba Vázquez, Changyong Ahn, Daniel Morin, David Maseda Neira, David Monge,
|
||
David Smitmanis, Denis Shimizu, Detlev Casanova, Diego Nieto, Dongyun Seo, Doug Nazar, Devon Sookhoo, Edward Hervey, Eli Mallon,
|
||
Elliot Chen, Enock Gomes Neto, Enrique Ocaña González, Eric, F. Duncanh, François Laignel, Gang Zhao, Glyn Davies, Guillaume
|
||
Desmottes, Gustav Fahlen, He Junyan, Hou Qi, Jakub Adam, James Cowgill, Jan Alexander Steffens (heftig), Jan Schmidt, Jan
|
||
Tojnar, Jan Vermaete, Jerome Colle, Jochen Henneberg, Johan Sternerup, Jordan Petridis, Jordan Yelloz, Jorge Zapata, Julian
|
||
Bouzas, L. E. Segovia, Loïc Le Page, Marc Leeman, Marek Olejnik, Mathieu Duponchelle, Matteo Bruni, Matthew Waters, Michael
|
||
Grzeschik, Michael Olbrich, Nicolas Dufresne, Nirbheek Chauhan, Ognyan Tonchev, Olivier Blin, Olivier Crête, Pablo García,
|
||
Philippe Normand, Piotr Brzeziński, Pratik Pachange, Qian Hu (胡骞), Raghavendra Rao, Razvan Grigore, Robert Ayrapetyan, Robert
|
||
Mader, Ruben Gonzalez, Santosh Mahto, Sebastian Dröge, Seungha Yang, Shengqi Yu (喻盛琪), Stefan Andersson, Stéphane Cerveau,
|
||
Taruntej Kanakamalla, Théo Maillart, Thibault Saunier, Tim-Philipp Müller, Vasiliy Doylov, Víctor Manuel Jáquez Leal, Vineet
|
||
Suryan, Wim Taymans, Xavier Claessens,
|
||
|
||
… 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.27.1
|
||
|
||
- List of Merge Requests applied in 1.27.1
|
||
- List of Issues fixed in 1.27.1
|
||
|
||
Schedule for 1.28
|
||
|
||
Our next major feature release will be 1.28, and 1.27.x is the unstable development series leading up to the stable 1.28
|
||
release. The development of 1.27/1.28 will happen in the git main branch of the GStreamer mono repository.
|
||
|
||
The schedule for 1.28 is yet to be decided, but we’re targetting late 2025.
|
||
|
||
1.28 will be backwards-compatible to the stable 1.26, 1.24, 1.22, 1.20, 1.18, 1.16, 1.14, 1.12, 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0
|
||
release series.
|
||
|
||
--------------------------------------------------------------------------------------------------------------------------------
|
||
|
||
These release notes have been prepared by Tim-Philipp Müller.
|
||
|
||
License: CC BY-SA 4.0
|