Release 1.22.6
[platform/upstream/gstreamer.git] / subprojects / gst-plugins-base / NEWS
index 9802493..ec11f3c 100644 (file)
@@ -2,10 +2,13 @@ GStreamer 1.22 Release Notes
 
 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
 
@@ -298,8 +301,8 @@ migrate to the new components to benefit from these improvements.
     -   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.
@@ -819,9 +822,9 @@ Video Effects (videofx)
 
 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
@@ -1217,6 +1220,1152 @@ the git 1.22 branch, which will be a stable branch.
 
 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