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.5 and was
+released on 20 July 2023.
+
See https://gstreamer.freedesktop.org/releases/1.22/ for the latest
version of this document.
-Last updated: Monday 23 January 2023, 17:00 UTC (log)
+Last updated: Thursday 20 July 2023, 12:00 UTC (log)
Introduction
- This is enabled by setting the instant-uri property to true,
setting the URI to switch to immediately, and then disabling the
instant-uri property again afterwards.
-- playbin3, decodebin3, uridecodebin3, parsebin, and urisrc are no
- longer experimental
+- playbin3, decodebin3, uridecodebin3, parsebin, and urisourcebin are
+ no longer experimental
- They were originally marked as ‘technology preview’ but have
since seen extensive usage in production settings, so are
considered ready for general use now.
New MP4 muxer + Fragmented MP4 muxer
-- fmp4mux: New fragmented MP4/ISOBMFF/CMAF muxer for generating
- e.g. DASH/HLS media fragments.
-- isomp4mux: New non-fragmented, normal MP4 muxer.
+- isofmp4mux, cmafmux, dashmp4mux, onviffmp4mux: New fragmented
+ MP4/ISOBMFF/CMAF muxer for generating e.g. DASH/HLS media fragments.
+- isomp4mux, onvifmp4mux: New non-fragmented, normal MP4 muxer.
Both plugins provides elements that replace the existing qtmux/mp4mux
element from gst-plugins-good. While not feature-equivalent yet, the new
1.22.0 was originally released on 23 January 2023.
+1.22.1
+
+The first 1.22 bug-fix release (1.22.1) was released on 04 March 2023.
+
+This release only contains bugfixes and it should be safe to update from
+1.22.0.
+
+Highlighted bugfixes in 1.22.1
+
+- audio channel-mix: allow up to 64 channels (instead of up to 63
+ channels)
+- avfvideosrc: Don’t wait on main thread for permissions request
+- avvidenc: avoid generating inaccurate output timestamps, especially
+ with variable framerate streams
+- AV1 video codec caps signalling improvements in various elements
+- codectimestamper: Fix timestamping on sequence update
+- d3d11overlaycompositor: fix texture width and height
+- d3d11videosink: Fix rendering on external handle
+- dashdemux2: fix seek operation taking a log time to finish for some
+ streams
+- nvencoder: Fix B-frame encoding on Linux and min buffers in auto GPU
+ mode
+- playbin3: fixing buffering for live pipelines
+- playbin: fix potential deadlock when stopping stream with subtitles
+ visible
+- redenc: fix setting of extension ID for twcc
+- rtspsrc: improved compatibility with more broken RTSP servers
+- v4l2h264dec: Fix Raspberry Pi4 will not play video in application
+- vtdec: fix jittery playback of H.264 Level 4.1 movies in macOS
+- vtdec: Fix non-deterministic frame output after flushing seeks
+- vtenc: fix handling of interlaced ProRes on Apple M1 hardware
+- vtenc: don’t advertise ARGB/RGBA64 input caps on M1 Pro/Max with
+ macOS <13
+- wasapi2src: Fix loopback capture on Windows 10 Anniversary Update
+- tools: better handling of non-ASCII command line arguments on
+ Windows
+- gst-libav: fix build against newer ffmpeg versions
+- gst-python: Use arch-specific install dir for gi overrides
+- cerbero: Fix setuptools site.py breakage in Python 3.11
+- macOS packages: Fix broken binaries on macos < 11.0
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- buffer: fix copy meta reference debug log formatting
+- bin: Don’t unlock unlocked mutex in gst_bin_remove_func()
+- pad: Don’t leak user_data in gst_pad_start_task()
+- aggregator: Always lock aggpad around update_time_level
+- inputselector: Avoid potential deadlock when shutting down,
+ e.g. playbin with subtitles
+- multiqueue: Handle use-interleave latency live pipelines, fixing
+ buffering for live pipelines in playbin3
+- GstBaseSrc: fix transfer annotation for fixate() virtual method
+- GstBaseSrc, GstPushSrc: add nullable annotations to virtual methods
+- tools: Make sure UTF-8 encoded command line arguments on Windows
+
+gst-plugins-base
+
+- alsasink: Fix stall when going from PLAYING to NULL (stucked at
+ PAUSED) with uac1 gadget
+- appsrc: Don’t chain up BaseSrc::negotiate()
+- audio: channel-mix: Fix channel count limit to be able to equal 64
+- gldisplay: Mark gst_gl_display_create_context() other_context
+ parameter as nullable
+- gldisplay: Remove unused code
+- gstglwindow_x11.c: Fix colormap leak
+- gl/cocoa: Return a strong ref to the parent GstGLContext
+- rtspconnection: Annotate RTSP message and RTSP events parameters
+ correctly
+- sdp, typefind: Fix some annotations
+- sdp: gstmikey: gst_mikey_message_to_caps: extract ROC from first
+ crypto session
+- subparse: Properly forward segment seqnum
+- uridecodebin: Set source element to READY before querying it
+- uritranscodebin: Fix unref of NULL
+- gst-play-1.0: Don’t force accurate seeking
+
+gst-plugins-good
+
+- adaptivedemux2: Fix buffering threshold initialization
+- dashdemux2: the seek operation takes a log time to finish for some
+ streams
+- glvideomixer: Keep a reference to the underlying pad
+- qtdemux: Don’t emit GstSegment correcting start time when in MSE
+ mode
+- qtdemux: Handle moov atom length=0 case by reading until the end
+- qtdemux, qtmux: Drop av1C version 0 parsing and implement version 1
+ parsing/writing
+- qtmux: Fix assertion on caps update
+- redenc: fix setting of extension ID for twcc
+- rtspsrc: Use the correct vfunc for the push-backchannel-sample
+ action signal
+- rtpssrcdemux: set different stream-id on each src pad
+- udpsrc: GstSocketTimestampMessage only for SCM_TIMESTAMPNS
+- v4l2h264dec: Fix Raspberry Pi4 will not play video in application
+
+gst-plugins-bad
+
+- aom: Include stream-format and alignment in the AV1 caps
+- av1parser, h265parser: Fix some code defects
+- av1parser: Don’t consider unknown metadata OBUs a bitstream error
+- avfvideosrc: Don’t wait on main thread for permissions request
+- ccconverter: don’t debug a potentially freed filter caps
+- codectimestamper: Fix timestamping on sequence update
+- codecparsers: {h264, h265}bitwriter: Remove redundant condition
+ checks
+- codecs: decoders: fail early if no input caps have been provided for
+ all new decoder base classes
+- closedcaption: Don’t leak caps event
+- curlhttpsrc: Add curl anyauth option
+- d3d11overlaycompositor: fix texture width and height
+- d3d11videosink: Fix rendering on external handle
+- h265parse: Always set profile on src caps
+- msdkav1enc: fix the category for msdkav1enc debug
+- nvcodec: improve error reporting on plugin init
+- nvencoder: Fix b-frame encoding on Linux
+- nvencoder: Fix min buffers parameter of allocation query in auto GPU
+ mode
+- nvvp9dec: Fix return value
+- qsvav1enc, amfav1enc: Set stream-format on caps
+- vtdec: Jittery playback of H.264 Level 4.1 movies in macOS (both
+ x86_64 and arm64)
+- vtdec: Fix DPB size calculations not taking values from SPS into
+ account
+- vtdec: Fix not waiting for async frames when flushing
+- vtenc: Disable ARGB/RGBA64 caps on M1 Pro/Max with macOS <13
+- vtenc: Fix checking for certain CPU variants when running in VMs
+- vtenc: Disable HW acceleration for interlaced ProRes
+- va: Avoid the array index overflow when filling 8x8 scaling list.
+- va: Fix some code defects
+- vah265enc: Use helper to update properties.
+- vulkan: memory: Flush non coherent memory after write.
+- wasapi2src: Fix loopback capture on Windows 10 Anniversary Update
+- webrtcbin: small stats improvements
+- win32ipcutils: Add missing include
+- wpe: Logging fixes for the WebExtension
+
+gst-plugins-ugly
+
+- mpegpsdemux: Ignore DTS if PTS < DTS
+
+gst-libav
+
+- avauddec, avviddec: Free packet side data after usage
+- avviddec: change
+ AV_CODEC_CAP_AUTO_THREADS->AV_CODEC_CAP_OTHER_THREADS to fix build
+ against newer ffmpeg versions
+- Memory leak in ’ av_packet_add_side_data’ in
+ /lib/x86_64-linux-gnu/libavcodec.so reading the file
+ clock_odd_size_RLE_g1597902.avi
+- avvidenc: Don’t take ffmpeg timestamps verbatim but only use them to
+ calculate DTS
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapi: Skip plugin pc file for shared plugins
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- gst-python: Use arch-specific install dir for gi overrides
+
+gst-editing-services
+
+- No changes
+
+gst-validate + gst-integration-testsuites
+
+- validate:scenario: sink refs when building
+- tests: Fix known issue definition location for unit tests and how we
+ handle them in validate launcher
+- tests: mark elements_srtp.test_play test as flaky
+- Fix gstreamer-validate-1.0 dependency name
+- validate-scenario: fix g-i warning in annotation
+- validate: Fix gst_validate_execute_action annotation
+
+gst-examples
+
+- webrtc examples: Use webrtc.gstreamer.net
+- webrtc_sendrecv.py: Various fixes
+
+Development build environment
+
+- gst-env: Handle installing python modules to dist-packages
+- meson: Allow sysdeps to be forced as fallback subprojects
+- meson: Switch dav1d wrap to a tarball and update to dav1d 1.1.0
+
+Cerbero build tool and packaging changes in 1.22.1
+
+- macos: Fix broken binaries on macos < 11.0
+- orc: Update pthread_jit_write_protect fix for macOS/iOS
+- dav1d: Update to 1.1.0
+- libsrtp: update to v2.5.0
+- rustup: Update to 1.25.2
+- rust: Update to 1.67; cargo-c to 0.9.16
+- cerbero: Don’t error out if bindir already exists
+- Fix setuptools site.py breakage in Python 3.11, bump
+ gobject-introspection, bump windows image
+- cerbero: Retry if cargo update fails on macOS
+- gst-plugins-rs: Build glib/gio bindings with 2.74 API support
+
+Contributors to 1.22.1
+
+Alessandro Bono, Arun Raghavan, Bart Van Severen, Carlos Falgueras
+García, Célestin Marot, David Svensson Fors, Edward Hervey, Enrique
+Ocaña González, Frank Dana, Guillaume Desmottes, He Junyan, James
+Hilliard, Jan Alexander Steffens (heftig), Jan Schmidt, Jordan Petridis,
+Mathieu Duponchelle, Matthew Waters, medithe, Mengkejiergeli Ba, Nicolas
+Beland, Nirbheek Chauhan, Patricia Muscalu, Pawel Stawicki, Philippe
+Normand, Piotr Brzeziński, Rajneesh Soni, Robert Rosengren, Sanchayan
+Maity, Sebastian Dröge, Seungha Yang, Simon Himmelbauer, Thibault
+Saunier, Tim-Philipp Müller, Tristan van Berkom, U. Artie Eoff, Víctor
+Manuel Jáquez Leal, Vivia Nikolaidou, Xuchen Yang, Yinhang Liu,
+
+… 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.1
+
+- 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
+
+1.22.5
+
+The fifth 1.22 bug-fix release (1.22.5) was released on 20 July 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.5
+
+- Security fixes for the RealMedia demuxer
+- vaapi decoders, postproc: Disable DMAbuf from caps negotiation to
+ fix garbled video in some cases
+- decodebin3, playbin3, parsebin fixes, especially for stream
+ reconfiguration
+- hlsdemux2: fix early seeking; don’t pass referer when updating
+ playlists; webvtt fixes
+- gtk: Fix critical caused by pointer movement when stream is getting
+ ready
+- qt6: Set sampler filtering method, fixes bad quality with qml6glsink
+ and gstqt6d3d11
+- v4l2src: handle resolution change when buffers are copied
+- videoflip: update orientation tag in auto mode
+- video timecode: Add support for framerates lower than 1fps and
+ accept 119.88 (120/1.001) fps
+- webrtcsink: fixes for x264enc and NVIDIA encoders
+- cerbero: Pull ninja from system if possible, avoid spurious
+ bootstrap of cmake
+- packages: Recipe updates for ffmpeg, libsoup, orc
+- various bug fixes, memory leak fixes, and other stability and
+ reliability improvements
+
+gstreamer
+
+- taglist, plugins: fix compiler warnings with GLib >= 2.76
+- tracerutils: allow casting parameter types
+- inputselector: fix playing variable is never set
+
+gst-plugins-base
+
+- appsink: add missing make_writable call
+- audioaggregator: Do not post message before being constructed
+- decodebin3: Prevent a critical warning when reassigning output slots
+- decodebin3: Fix slot input linking when the associated stream has
+ changed
+- decodebin3: Remove spurious input locking during parsebin
+ reconfiguration
+- urisourcebin: Set source element to READY before querying it
+- gl/viv-fb: meson build updates
+- plugins: fix compiler warnings with GLib >= 2.76
+- subtitleoverlay: fix mutex error if sink caps is not video
+- video: timecode: Add support for framerates lower than 1fps
+- video: accept timecode of 119.88 (120/1.001) FPS
+- video: cannot attach time code meta when frame rate is 119.88
+ (120000/1001)
+- videodecoder: fix copying buffer metas
+
+gst-plugins-good
+
+- adaptivedemux2: Fix early seeking
+- hlsdemux2: Ensure processed webvtt ends with empty new line
+- hlsdemux2: Don’t set a referer when updating playlists
+- matroska: demux: Strip signal byte when encrypted
+- rtspsrc: Fix crash when is-live=false
+- gtk: Fix critical caused by pointer movement when stream is getting
+ ready
+- qt6: Set sampler filtering method, fixes bad quality with qml6glsink
+ and gstqt6d3d11
+- qtdemux: opus: set entry as sampled
+- v4l2src: handle resolution change when buffers are copied
+- v4l2videodec: Fix handling of initial gaps
+- v4l2videodec: correctly register v4l2mpeg2dec
+- v4l2videoenc: replace custom QUERY_CAPS handling with getcaps
+ callback
+- videoflip: update orientation tag in auto mode
+- videoflip: fix critical when tag list is not writable
+
+gst-plugins-bad
+
+- d3d11bufferpool: Fix heavy CPU usage in case of fixed-size pool
+- jpegparser: jpegdecoder: Don’t pollute bus and comply with spec
+- plugins: fix compiler warnings with GLib >= 2.76
+- webrtcbin: Prevent critical warning when creating an additional data
+ channel
+- webrtcstats: Properly report IceCandidate type
+
+gst-plugins-ugly
+
+- rmdemux: add some integer overflow checks
+
+gst-plugins-rs
+
+- fallbackswitch: Change the threshold for trailing buffers
+- fallbackswitch: Fix pad health calculation and notifies
+- fmp4mux: Fix draining in chunk mode if keyframes are too late
+- livesync: Wait for the end timestamp of the previous buffer before
+ looking at queue
+- livesync: Improve EOS handling
+- togglerecord: Clip segment before calculating timestamp/duration
+- togglerecord: Error out if main stream buffer has no valid running
+ time
+- webrtcsink: fix pipeline when input caps contain max-framerate
+- webrtcsink: Configure only 4 threads for x264enc
+- webrtcsink: Translate force-keyunit events to force-IDR action
+ signal for NVIDIA encoders
+- webrtcsink: Set config-interval=-1 and aggregate-mode=zero-latency
+ on rtph264pay and rtph265pay
+- webrtcsink: Set VP8/VP9 payloader based on payloader element factory
+ name
+- webrtcink: Use correct property types for nvvideoconvert
+- webrtc/signalling: fix race condition in message ordering
+- videofx: Minimize dependencies of the image crate
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+gstreamer-vaapi
+
+- vaapidecode,vaapipostproc: Disable DMAbuf from caps negotiation.
+
+gstreamer-sharp
+
+- No changes
+
+gst-omx
+
+- No changes
+
+gst-python
+
+- No changes
+
+gst-editing-services
+
+- ges: some fixes for 32-bit systems
+- ges, nle: Avoid setting state or sending query when constructing
+ objects
+
+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.5
+
+- Pull ninja from system if possible, avoid spurious bootstrap of
+ cmake
+- ffmpeg: update to 5.0.3
+- libsoup: update to 2.74.3
+- orc: update to 0.4.34
+
+Contributors to 1.22.5
+
+Andoni Morales Alastruey, Bastien Nocera, Carlos Rafael Giani, David
+Craven, Doug Nazar, Edward Hervey, François Laignel, Guillaume
+Desmottes, He Junyan, Hou Qi, Jan Alexander Steffens (heftig), Jan
+Schmidt, Maksym Khomenko, Mathieu Duponchelle, Matthew Waters, Michael
+Olbrich, Michael Tretter, Nicolas Dufresne, Nirbheek Chauhan, Philippe
+Normand, Ruslan Khamidullin, Sebastian Dröge, Seungha Yang, Théo
+Maillart, Thibault Saunier, Tim-Philipp Müller, Víctor Manuel Jáquez
+Leal, Vivia Nikolaidou, Yatin Maan,
+
+… 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.5
+
+- List of Merge Requests applied in 1.22.5
+- List of Issues fixed in 1.22.5
+
+1.22.6
+
+The sixth 1.22 bug-fix release (1.22.6) was released on 20 September
+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.6
+
+- Security fixes for the MXF demuxer and H.265 video parser
+- Fix latency regression in H.264 hardware decoder base class
+- androidmedia: fix HEVC codec profile registration and fix coded_data
+ handling
+- decodebin3: fix switching from a raw stream to an encoded stream
+- gst-inspect: prettier and more correct signal and action signals
+ printing
+- rtmp2: Allow NULL flash version, omitting the field, for better RTMP
+ server compatibility
+- rtspsrc: better compatibility with buggy RTSP servers that don’t set
+ a clock-rate
+- rtpjitterbuffer: fix integer overflow that led to more packets being
+ declared lost than have been lost
+- v4l2: fix video encoding regression on RPi and fix support for left
+ and top padding
+- waylandsink: Crop surfaces to their display width height
+- cerbero: recognise Manjaro; add Rust support for MSVC ARM64; cmake
+ detection fixes
+- various bug fixes, build fixes, memory leak fixes, and other
+ stability and reliability improvements
+
+gstreamer
+
+- gst-inspect: prettier and more correct signal printing, and print
+ action signals in g_signal_emit_by_name() format
+- gst-launch: Disable fault signal handlers on macOS
+
+gst-plugins-base
+
+- audio: Make sure to stop ringbuffer on error
+- decodebin3: avoid identity, sinkpad, parsebin leakage when reset
+ input
+- decodebin3: Ensure the slot is unlinked before linking to decoder
+- sdp: fix wrong debug log error message for missing clock-rate in
+ caps
+- sdp: Parse zero clock-rate as default
+
+gst-plugins-good
+
+- adaptivedemux2: fix memory leak
+- pulsedeviceprovider: fix incorrect usage of GST_ELEMENT_ERROR
+- qt: Unbreak build with qt-egl enabled but viv_fb missing
+- qt: Fix searching of qt5/qt6 tools with qmake in Meson
+- qtdemux: Fix premature EOS when some files are played in push mode
+- qtdemux: attach cbcs crypt info at the right moment
+- rtpjitterbuffer: Avoid integer overflow in max saveable packets
+ calculation with negative offset
+- videoflip: fix concurrent access when modifying the tag list
+- v4l2: allocator: Don’t close foreign dmabuf
+- v4l2: bufferpool: Fix large encoded stream regression
+- v4l2: bufferpool: Problems when checking for truncated buffer
+- v4l2: Fix support for left and top padding
+- v4l2object: clear format lists if source change event is received
+
+gst-plugins-bad
+
+- androidmedia/enc: handle codec-data before popping
+ GstVideoCodecFrames
+- androidmedia: fix hevc codec profile registration
+- androidmedia: Small fixes
+- androidmedia: Add more null checks (of env) to JNI utilities
+- applemedia: Fix pixel format for I420 and NV12
+- audiolatency: Forward latency query and event upstream
+- av1parser: Fix segmentation params update
+- codecparsers: Fix MPEG-1 aspect ratio table
+- d3d11convert: Passthrough allocation query on same caps
+- h264decoder: Update latency dynamically
+- h265parser: Allow partially broken hvcC data
+- h265parser: Fix possible overflow using max_sub_layers_minus1
+- hlssink2: Always use forward slash separator
+- mdns: Fix a crash on context error
+- mxfdemux: Fix integer overflow causing out of bounds writes when
+ handling invalid uncompressed video and check channels for AES3
+- nvencoder: Fix negotiation error when interlace-mode is unspecified
+- rtmp2: Allow NULL flash version, omitting the field
+- rtmp2sink: fix crash if message conversion failed
+- transcodebin: Fixes for upstream selectable support
+- va: Fix in error logs functions mismatches
+- waylandsink: Crop surfaces to their display width height
+- waylandsink: Fix cropping for video with non-square aspect ratio
+- webrtc: Fix docs for create-data-channel action signal
+- win32ipc: Fix pipe handle leak
+
+gst-plugins-ugly
+
+- No changes
+
+gst-plugins-rs
+
+- fallbackswitch: locking/deadlock fixes
+- onvifmetadataparse: Skip metadata frames with unrepresentable UTC
+ time
+- transcriberbin: Configure audioresample in front of transcriber
+- webrtcsink: Propagate GstContext messages
+- webrtcsink: Add support for d3d11 memory and qsvh264enc
+- webrtcsink: fix TWCC extension adding
+- webrtcsink: don’t forget to setup encoders for discoveries
+- webrtcsink: NVIDIA V4L2 encoders always require NVMM memory
+- meson: Fix handling of optional deps, and don’t require Python 3.8
+
+gst-libav
+
+- No changes
+
+gst-rtsp-server
+
+- No changes
+
+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
+
+- gst-validate: Disable fault signal handlers on macOS
+
+gst-examples
+
+- No changes
+
+Development build environment
+
+- macos-bison: Update to 3.8.2 and add an ARM64 build
+- wrap: update libpsl to 0.21.2
+
+Cerbero build tool and packaging changes in 1.22.6
+
+- Add Rust support for MSVC ARM64
+- Recognise PERL5LIB as a joinable Unix variable
+- Recognise Manjaro as an Arch derivative
+- Fix picking up cmake from build-tools
+
+Contributors to 1.22.6
+
+Akihiro Sagawa, Alicia Boya García, Guillaume Desmottes, Haihua Hu,
+Hugues Fruchet, Ivan Molodetskikh, Jan Alexander Steffens (heftig), Jan
+Schmidt, L. E. Segovia, Mathieu Duponchelle, Matthew Waters, Ming Qian,
+Nicolas Dufresne, Nirbheek Chauhan, Olivier Blin, Olivier Crête,
+Philippe Normand, Piotr Brzeziński, Robert Ayrapetyan, Ryan Pavlik,
+Sebastian Dröge, Seungha Yang, Stéphane Cerveau, Stephan Seitz, Thomas
+Schneider, Tim-Philipp Müller, Víctor Manuel Jáquez Leal, Wang Chuan,
+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.6
+
+- List of Merge Requests applied in 1.22.6
+- List of Issues fixed in 1.22.6
+
Schedule for 1.24
Our next major feature release will be 1.24, and 1.23 will be the