GStreamer 1.22.0 was originally released on 23 January 2023.
-The latest bug-fix release in the stable 1.22 series is 1.22.1 and was
-released on 04 March 2023.
+The latest bug-fix release in the stable 1.22 series is 1.22.4 and was
+released on 20 June 2023.
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
version of this document.
-Last updated: Monday 04 March 2023, 13:00 UTC (log)
+Last updated: Tuesday 20 June 2023, 16:30 UTC (log)
Introduction
- List of Merge Requests applied in 1.22.1
- List of Issues fixed in 1.22.1
+1.22.2
+
+The second 1.22 bug-fix release (1.22.2) was released on 11 April 2023.
+
+This release only contains bugfixes and it should be safe to update from
+1.22.x.
+
+Highlighted bugfixes in 1.22.2
+
+- avdec_h264: fix decoder deadlocks with FFmpeg 6.0
+- rtspsrc: fix regression with URI protocols in OPTIONS requests for
+ RTSP over TLS
+- rtspsrc: improved control url handling compatibility for broken
+ servers
+- decklink: fix 10 bit RGB (r210) format auto detection for capture
+ and fix playout if video caps are configured before audio caps
+- d3d11videosink: Fix tearing in case of fullscreen mode
+- playbin: fix deadlock when stopping stream with subtitles visible
+ (even more)
+- typefinding: fix regression not detecting application/dash+xml in
+ some corner cases
+- osxvideosink: fix broken aspect ratio and frame drawing region
+- decodebin3, parsebin: Improve elementary stream handling when
+ decoders are not present and fix hang when removing a failing stream
+- urisourcebin: Propagate sticky events from parsebin, so that the
+ STREAM_START event with the GstStream info is always available when
+ pads get exposed
+- v4l2: Add support for YVU420M format; mark JPEG content as parsed
+- h264decoder, h265decoder: DPB bumping process and latency reporting
+ fixes
+- Opus: Fix reading of extended channel config in MPEG-TS and fix
+ missing sample rate when remuxing from RTP to Matroska
+- zxing: add support for building against zxing-c++ 2.0
+- cerbero: Fix packaging of Rust plugins on Android; fix modern Gentoo
+ distro detection
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- datetime: Return G_MAXFLOAT instead of G_MAXDOUBLE for no timezone
+ offset
+- inputselector: Wake up streaming thread before PLAYING_TO_PAUSED
+ transition
+- tools: fix potential crash when passing command-line options on
+ Windows
+
+gst-plugins-base
+
+- alsasink: Fix for being stuck in stop_streaming_threads state
+- decodebin3: fix hang when removing a failing stream
+- gl: wayland: cleanup on close
+- parsebin: Improve elementary stream handling
+- playbin: fix deadlock when stopping stream with subtitles visible
+ even more
+- sdp: Skip source-specific caps fields when creating an SDP media
+ from caps
+- urisourcebin: Propagate sticky events from parsebin
+- urisourcebin: Activate pad before transferring sticky events
+- typefinding: fix failure to recognize application/dash+xml in some
+ cases
+
+gst-plugins-good
+
+- osxvideosink: fix broken aspect ratio and frame drawing region
+- qtdemux: Fix seek adjustment with SNAP_AFTER flag
+- rtpopusdepay, matroskamux: Fix invalid rate while muxing Opus in
+ Matroska
+- rtpmanager: twcc: Fix duplicate packet handling
+- rtsp: url: fix incorrect request URI scheme for TLS transport
+ methods (regression)
+- rtspsrc: Consider “451: Parameter Not Understood” when handling
+ broken control urls
+- rtspsrc: fix behavior change with URI protocols in OPTIONS requests
+- rtspsrc: Skip PTs with caps incompatible to the global caps
+- rtpjpegdepay: fix logic error when checking if an end of image (EOI)
+ tag is present
+- v4l2: Add support for YVU420M format
+- v4l2: mark JPEG as parsed
+
+gst-plugins-bad
+
+- cea708overlay: fix HCR interpretation
+- d3d11bufferpool: Fix invalid access in debug print loop
+- d3d11compositor: Fix composition error on release_pad()
+- d3d11converter: Fix conversion backend selection
+- d3d11videosink: Fix tearing in case of fullscreen mode -
+ d3d11bufferpool: Fix invalid access in debug print loop
+- d3d11window: fix memory leak
+- decklink: fix 10 bit RGB (r210) format auto detection
+- decklinkaudiosink: Fix playback when video caps is configured before
+ audio
+- decklinkvideosrc: RGB 4:4:4 doesn’t work after GStreamer upgrade
+ (regression)
+- decklinkvideosrc: unable to show HDMI stream that Blackmagic’s Media
+ Express is able to see
+- debugqroverlay: fix string leak
+- gtkwaylandsink: Destroy GstWlWindow when parent GtkWindow is
+ destroyed
+- gtkwaylandsink: Fix crash when rendering after the window is closed
+- ksvideo, directshow: Fix reference leaks in device providers
+- h264decoder: Fix DPB bumping process
+- h264decoder, h265decoder: Latency reporting related fixes
+- h264parse: Validate VUI framerate
+- jpegparse: reset parse state when the SOI is not the first marker
+- nvencoder: Fix CQP option setting
+- nvh264encoder: Fix template caps to include progressive mode as well
+- openjpegdec: allow multithread decoding only in subframe mode
+- tsdemux: Fix reading of extended Opus channel configuration
+- vulkan: fix validation layer issues
+- vulkanoverlaycompositor: fix potential use after free
+- vulkanswapper: correctly handle force-aspect-ratio=false
+- wasapi2: Fix potential crash on device activation failure
+- webrtc: Fix segfault traversing ice transports
+- webrtc: patch leak caused by early return
+- zxing: add support for zxing-c++ 2.0
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- avdec_h264 pipeline freeze with FFmpeg6
+- avdeinterlace, avmux: fix element reference leak
+- avviddec: Drop decoder stream lock when calling send_packet
+
+gst-rtsp-server
+
+- rtsp-server: fix deadlock on shutdown with non-live pipeline if
+ media isn’t playing/prerolled yet and eos-shutdown is enabled for
+ the media
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- No changes
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- git: prevent CRLF line ending conversion for patches to fix pango
+ subproject patching issues on Windows
+
+Cerbero build tool and packaging changes in 1.22.2
+
+- build: retry rust build on SIGBUS errors too
+- Fix packaging of rust plugins on Android
+- Modern Gentoo distro adaptation
+- sbc: update to 2.0
+- speex: update to 1.2.1
+
+Contributors to 1.22.2
+
+Adrien De Coninck, Albert Sjölund, Alexande B, Antonio Rojas, Arun
+Raghavan, Bart Van Severen, Carlo Cabrera, Colin Kinloch, Edward Hervey,
+Guillaume Desmottes, Haihua Hu, He Junyan, Ilie Halip, Jordan Petridis,
+Josef Kolář, Lily Foster, Mathieu Duponchelle, Matt Feury, Matthew
+Waters, Maxim P. Dementyev, Michael Tretter, Nicolas Dufresne, Nirbheek
+Chauhan, Piotr Brzeziński, Robert Rosengren, Rouven Czerwinski,
+Sebastian Dröge, Seungha Yang, Shengqi Yu, Stéphane Cerveau, Talha Khan,
+Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Vivia
+Nikolaidou, Wang Chuan, Wojciech Kapsa,
+
+… 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.22.2
+
+- List of Merge Requests applied in 1.22.2
+- List of Issues fixed in 1.22.2
+
+1.22.3
+
+The third 1.22 bug-fix release (1.22.3) was released on 19 May 2023.
+
+This release only contains bugfixes and it should be safe to update from
+1.22.x.
+
+Highlighted bugfixes in 1.22.3
+
+- avdec: fix occasional video decoder deadlock on seeking with FFmpeg
+ 6.0
+- decodebin3: fix regression handling input streams without CAPS or
+ TIME segment such as e.g. udpsrc or `pushfilesrc
+- bluez: a2dpsink: fix Bluetooth SIG Certification test failures
+- osxvideosink: fix deadlock upon closing output window
+- qtdemux: fix edit list handling regression and AV1 codec box parsing
+- qtmux: fix extraction of CEA608 closed caption data from S334-1A
+ packets
+- rtspsrc: Fix handling of * control path
+- splitmux: timestamp handling improvements
+- v4l2videodec: Rework dynamic resolution change handling (needed for
+ IMX6 mainline codec)
+- videoflip: fix regression with automatically rotating video based on
+ tags
+- d3d11: many d3d11videosink and d3d11compositor fixes
+- webrtc, rtp: numerous data race fixes and stability fixes
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- tracing: Initialize tracing infrastructure even if the debug system
+ is not compiled in
+- parse-launch: fix missing unref of looked-up child element
+- gstutils: Add category and object to most logging messages
+
+gst-plugins-base
+
+- allocators: Fix fdmem unit test with recent GLib versions
+- audiotestsrc: Initialize all samples in wave=ticks mode
+- decodebin3: Handle input streams without CAPS or TIME segment such
+ as e.g. udpsrc or pushfilesrc
+- decodebin3: fix regression handling streams without caps
+- decodebin3: fix random hang when remove failing stream
+- uridecodebin3: Ensure atomic urisourcebin state change
+- glvideoflip: fix leaked caps
+- glcontext_wgl: fix missing unref
+- playsink: Fix volume leak
+
+gst-plugins-good
+
+- adaptivedemux2: fix critical when using an unsupported URI
+- dashdemux2: mpdclient: fix divide by 0 if segment has no duration
+- imagesequencesrc: Properly set default location
+- multifile: error out if no filename was set
+- osxvideosink: fix deadlock upon closing output window
+- rtpmanager: rtpsession: data race leading to critical warnings
+- rtpmanager: rtpsession: race conditions leading to critical warnings
+- rtspsrc: Fix handling of * control path
+- splitmuxsink: Catch invalid DTS to avoid running into problems later
+- splitmuxsrc: Make PTS contiguous by preference
+- qtdemux: emit no-more-pads after pruning old pads
+- Revert “qtdemux: fix conditions for end of segment in reverse
+ playback” to fix edit list regression
+- qtdemux: Fix av1C parsing
+- qtmux: Fix extraction of CEA608 data from S334-1A packets
+- qtwindow: unref caps in destructor
+- v4l2: device provider: Fix GMainLoop leak
+- v4l2: videodec: Rework dynamic resolution change handling
+- v4l2: videodec: Prefer acquired caps over anything downstream
+- videoflip: fix setting of method property at construction time
+- videoflip 1.22.2 not rotating video when extracting frames
+
+gst-plugins-bad
+
+- a2dpsink: Fails many tests in Bluetooth SIG Certification
+- avdtputil: Use int instead of int range for fixed bitpool values
+- ccconverter: reintroduce frame count reset on cycle completion
+- ccconverter: integer overflow & crashing
+- codectimestamper: remove PC file generation from plugin’s own
+ meson.build
+- cudamemory: Fix for semi planar YUV memory size decision
+- d3d11compositor: Reconfigure resource only when output caps is
+ changed
+- d3d11compositor: Skip zero alpha input
+- d3d11convert: Fix for runtime property update
+- d3d11memory: Don’t clear wrapped texture memory
+- d3d11videosink: Fix for ignored initial render rectangle
+- d3d11videosink: fix race condition in window unprepare
+- d3d11videosink: Enhancement for initial window size decision
+- d3d11videosink: Don’t clear prepared buffer on unlock_stop()
+- dashdemux: mpdclient: fix divide by 0 if segment has no duration
+- dtlstransport: Keep strong ref of dtls encoder/decoder
+- GstPlay: avoid getting property of playbin2 if subtitle_sid is null
+- GstPlay: fix critical log when using playbin3
+- h264decoder: Drop nonexisting picture silently without error
+- dtmf: element classification improvements
+- mfvideoenc: Allow only even resolution numbers
+- sctpenc: Fix potential shutdown deadlock
+- srtpdec: fix “srtp-key” check
+- tests: disable dtls test if openssl is not present
+- tsdemux: Set number of channels to 2 for dual mono Opus
+- va: Various fixes for defects found with MSVC
+- wasapi2: Allows process loopback capture on Windows 10
+- webrtcdatachannel: Bind to parent webrtcbin using a weak reference
+- webrtcbin: Fix potential deadlock when closing before any data was
+ sent
+- webrtc: Plug leaks of resolved ICE addresses
+- webrtc: do not tear down data channel before data is flushed
+
+gst-plugins-ugly
+
+- mpegpsdemux: Rework gap sending
+
+gst-libav
+
+- avviddec: Temporarily unlock stream lock while flushing buffers
+- Random freeze and deadlock in ffmpegviddec flush and get_buffer
+ while seeking
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- No changes
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: base-xml-formatter: Don’t pass non-GObject pointers to
+ GST_DEBUG_OBJECT
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.22.3
+
+- glib: Ship Windows process spawning helpers
+- recipes: add recipe for libltc for timecodestamper element
+- Add support for RHEL9 and Rocky Linux
+
+Contributors to 1.22.3
+
+Aleksandr Slobodeniuk, Antonio Kevo, Arun Raghavan, Carlos Rafael Giani,
+Daniel Moberg, Edward Hervey, Elliot Chen, François Laignel, Guillaume
+Desmottes, Haihua Hu, Jan Alexander Steffens (heftig), Jan Beich, Jan
+Schmidt, Johan Sternerup, John King, Jordan Petridis, Juan Navarro, Lily
+Foster, Martin Nordholts, Mathieu Duponchelle, Matthew Waters, Matthias
+Fuchs, Michael Olbrich, Mihail Ivanchev, Nick Steel, Nicolas Dufresne,
+Nirbheek Chauhan, Patricia Muscalu, Philippe Normand, Piotr Brzeziński,
+Sanchayan Maity, Sebastian Dröge, Seungha Yang, Stéphane Cerveau,
+Thibault Saunier, Tim-Philipp Müller, Xabier Rodriguez Calvar,
+
+… 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.22.3
+
+- List of Merge Requests applied in 1.22.3
+- List of Issues fixed in 1.22.3
+
+1.22.4
+
+The fourth 1.22 bug-fix release (1.22.4) was released on 20 June 2023.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.22.x.
+
+Highlighted bugfixes in 1.22.4
+
+- Security fixes for flacparse, dvdspu, and subparse
+- d3d11videosink: Fix error on pause and play
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- gldownload: handle passthrough without a critical
+- h265parse: Fix framerate handling regression
+- oggdemux: vp8 fixes
+- mp4mux, qtmux, qtdemux: Opus audio mapping fixes
+- pngdec: Fix wrong colours output from 16bit RGB images
+- ptp clock: Work around ptpd bug in default configuration
+- srtpdec: fix critical warnings on shutdown
+- v4l2src: fix support for bayer format
+- v4l2videoenc: support force-keyframe event in v4l2 encoder
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- gst-python: allow more functions to be called before gst_init()
+- cerbero: fix vaapi variant; add qt6 build on windows; ensure errors
+ on unguarded use of new APIs, require macOS 10.13
+- packages: ship codecalpha, rtponvif, dvbsubenc, switchbin,
+ videosignal plugins; fix pango crash on 32-bit windows
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- filesink: Fix buffered mode writing of buffer lists and buffers with
+ multiple memories
+- basesink: Clear EOS flag on STREAM-START event
+- typefindhelper: downgrade bogus error level debug log message
+- ptp: Correctly parse clock ID from the commandline parameters in the
+ helper
+- ptp: Work around bug in ptpd in default configuration
+
+gst-plugins-base
+
+- alsasink: Fix stall for transition from PAUSED to READY with USB
+ speakerphone.
+- appsink: unref buffer in prev sample early so buffers from v4l2 can
+ be released properly
+- basetextoverlay: Fix typo in “text-y” property description
+- gldownload: handle passthrough without a critical
+- glfilter: add parent meta to output buffer for input buffer
+- oggdemux: vp8: Push headers downstream and detect keyframe packets
+- opus: Fix potential crash when getting unexpected channel position
+- streamsynchronizer: reset eos on STREAM_START
+- subparse: Look for the closing > of a tag after the opening <
+- video: convertframe: Add D3D11 specific conversion path
+- videometa: Only validate the alignment only when it contains some
+ info
+- video-blend: Fix linking error with C++
+
+gst-plugins-good
+
+- flacparse: Avoid integer overflow in available data check for image
+ tags
+- flvmux: use the correct timestamp to calculate wait times
+- isomp4: Fix (E)AC-3 channel count handling
+- jpegdec: fixes related to interlaced jpeg
+- pngdec: Fix wrong colours output from 16bit RGB images
+- qtmux, qtdemux: fix byte order for opus extension
+- rtspsrc: Do not try send dropped get/set parameter
+- qt5, qt6: Add more meson options and eliminate all automagic
+- qt: glrenderer: don’t attempt to use QWindow from non-Qt main thread
+- qml6glsink: Support building on win32
+- v4l2src: fix support for bayer format
+- v4l2: Change to query only up to
+ V4L2_CID_PRIVATE_BASE+V4L2_CID_MAX_CTRLS
+- v4l2videodec: treat MPEG-1 format as MPEG-2
+- v4l2videoenc: support force keyframe event in v4l2 encoder
+- tests: rtpbin_buffer_list: fix possible unaligned write/read on
+ 32-bit ARM
+
+gst-plugins-bad
+
+- asfmux: fix possible unaligned write on 32-bit ARM
+- d3d11videosink: Fix error on pause and play
+- d3dvideosink: Fix navigation event leak
+- decklink: Correctly handle SDK strings on macOS and free strings
+ after usage on Linux
+- dvdspu: Make sure enough data is allocated for the available data
+- fdkaacdec: Support up to 5 rear channels
+- h265parse: Fix framerate handling
+- kmssink: Add STM32 LTDC and NXP i.MX8M Plus LCDIFv3 auto-detection
+- sdpdemux: ensure that only one srcpad is created per stream
+- srtpdec: fix critical warnings on shutdown
+- testsrcbin: Remove spurious caps unref
+- va: map the mbbrc to correct enum value in get_property()
+- vtenc: apply DTS offset to ensure DTS <= PTS
+- vtdec: time glitches on h264 playback
+- waylandsink: Emit “map” signal boarder surface is ready
+
+gst-plugins-ugly
+
+- No changes
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapidecodebin: don’t load vaapipostproc if not available
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- python: More functions can be called before gst_init()
+
+gst-editing-services
+
+- ges: launcher: Never put sinks in a GstPipeline
+
+gst-validate + gst-integration-testsuites
+
+- No changes
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- No changes
+
+Cerbero build tool and packaging changes in 1.22.4
+
+- Ship codecalpha, rtponvif, dvbsubenc, switchbin, videosignal plugins
+- pango: Fix crash on Windows 32bit build
+- qml6: Add support for building the qml6 plugin on Windows and bump
+ meson to 1.1.1
+- vaapi: update vaapi variant/recipe for meson option changes
+- packages: Put libass in the same category as assrender
+- cerbero: Don’t extract if already extracted in fetch
+- darwin: Ensure errors on unguarded use of new APIs, require macOS
+ 10.13
+
+Contributors to 1.22.4
+
+Andoni Morales Alastruey, Arun Raghavan, Colin Kinloch, Daniel Morin,
+Edward Hervey, ekwange, Elliot Chen, François Laignel, Guillaume
+Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander Steffens
+(heftig), Jochen Henneberg, Jordan Petridis, Kevin Song, Maksym
+Khomenko, Marek Vasut, Mathieu Duponchelle, Matthew Waters,
+Mengkejiergeli Ba, Michael Olbrich, Nicolas Beland, Nicolas Dufresne,
+Nirbheek Chauhan, Philippe Normand, Piotr Brzeziński, Sebastian Dröge,
+Seungha Yang, Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez
+Leal, William Manley, Xavier Claessens, Yuri Fedoseev,
+
+… 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.22.4
+
+- List of Merge Requests applied in 1.22.4
+- List of Issues fixed in 1.22.4
+
Schedule for 1.24
Our next major feature release will be 1.24, and 1.23 will be the