Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer-plugins-good for 
openSUSE:Factory checked in at 2023-04-15 22:32:11
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-good (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.19717 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-good"

Sat Apr 15 22:32:11 2023 rev:91 rq:1079380 version:1.22.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes
    2023-03-24 15:16:05.393519602 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.19717/gstreamer-plugins-good.changes
 2023-04-15 22:32:13.553219025 +0200
@@ -1,0 +2,23 @@
+Wed Apr 12 12:14:15 UTC 2023 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 1.22.2:
+  + 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
+    - fix behavior change with URI protocols in OPTIONS requests
+    - 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
+    - mark JPEG as parsed
+- Rebase patch with quilt.
+
+-------------------------------------------------------------------

Old:
----
  gst-plugins-good-1.22.1.tar.xz

New:
----
  gst-plugins-good-1.22.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.vToTc8/_old  2023-04-15 22:32:14.549224772 +0200
+++ /var/tmp/diff_new_pack.vToTc8/_new  2023-04-15 22:32:14.553224795 +0200
@@ -26,7 +26,7 @@
 %define gst_branch 1.0
 
 Name:           gstreamer-plugins-good
-Version:        1.22.1
+Version:        1.22.2
 Release:        0
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
 License:        LGPL-2.1-or-later

++++++ gst-plugins-good-1.22.1.tar.xz -> gst-plugins-good-1.22.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/ChangeLog 
new/gst-plugins-good-1.22.2/ChangeLog
--- old/gst-plugins-good-1.22.1/ChangeLog       2023-03-04 14:45:27.364387300 
+0100
+++ new/gst-plugins-good-1.22.2/ChangeLog       2023-04-11 18:31:02.645229300 
+0200
@@ -1,3 +1,150 @@
+=== release 1.22.2 ===
+
+2023-04-11 17:29:28 +0100  Tim-Philipp Müller <t...@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * docs/gst_plugins_cache.json:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.22.2
+
+2023-04-04 09:21:47 +0200  Edward Hervey <edw...@centricular.com>
+
+       * gst/rtpmanager/rtptwcc.c:
+       * tests/check/elements/rtpsession.c:
+         twcc: Better handle duplicate packets
+         The previous code would only check if two packets in a row were 
duplicates. If
+         not (i.e. a packet is a duplicate of a packet received slightly 
before) the code
+         would generate completely bogus FCI because it assumes there were no 
duplicates
+         present in the array.
+         In order to be efficient, just store all received packets and remove 
the
+         duplicates just before the FCI is generated once the array of 
observations have
+         been sorted by seqnum.
+         Fixes TWCC usage with moderate to high packet duplication.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4378>
+
+2022-11-04 22:04:21 +0100  Alexande B <abobrikov...@gmail.com>
+
+       * sys/osxvideo/cocoawindow.m:
+         osxvideosink: fix broken aspect ration and frame drawing region
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4346>
+
+2023-04-04 19:23:14 +0300  Sebastian Dröge <sebast...@centricular.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Skip PTs with caps incompatible to the global caps
+         Otherwise empty caps are created while all following code assumes that
+         the caps will have exactly one structure, and then run into 
assertions.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4343>
+
+2023-03-28 15:29:46 +0800  Shengqi Yu <shengqi...@mediatek.com>
+
+       * docs/gst_plugins_cache.json:
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: Add support for YVU420M format
+         This is a multi-planar format with planes non contiguous in memory. It
+         is intended to be used only in drivers and applications that support 
the
+         multi-planar API.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4318>
+
+2023-03-23 16:40:54 +0000  Tim-Philipp Müller <t...@centricular.com>
+
+       * gst/rtp/gstrtpjpegdepay.c:
+         rtpjpegdepay: fix logic error when checking if an EOI is present
+         We wouldn't add the missing EOI marker if the frame ended with
+         either 0xFF NN or 0xNN D9.
+         Fixes #2407
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4269>
+
+2023-03-20 16:35:45 +0100  Piotr Brzeziński <pi...@centricular.com>
+
+       * gst/isomp4/qtdemux.c:
+         qtdemux: Fix seek adjustment with SNAP_AFTER flag
+         With GST_SEEK_FLAG_SNAP_AFTER present, the previous version would
+         adjust seek time based on the keyframe farthest away from 
desired_time.
+         This was incorrect, because we always want the *earliest* suitable 
keyframe
+         to seek to, not the last one.
+         With this fix, in case of the SNAP_AFTER, we now look for the closest 
keyframe
+         that can be found after desired_time. Behaviour for SNAP_BEFORE 
should remain
+         unchanged.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4251>
+
+2023-01-31 16:02:03 +0100  Michael Tretter <m.tret...@pengutronix.de>
+
+       * docs/gst_plugins_cache.json:
+       * sys/v4l2/gstv4l2object.c:
+         v4l2object: mark jpeg as parsed
+         Assuming that V4L2 CAPTURE devices always use one buffer per JPEG 
image, we can
+         always mark JPEGs provided by a V4L2 element as parsed.
+         The V4L2 elements require that JPEG images sent to V4L2 OUTPUT 
devices must
+         always be parsed.
+         This is necessary to link a V4L2 CAPTURE device with a V4L2 OUTPUT 
device
+         without explicitly marking the stream as parsed or adding a jpegparse 
into the
+         pipeline.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4247>
+
+2023-03-17 17:13:39 +0200  Sebastian Dröge <sebast...@centricular.com>
+
+       * gst/matroska/matroska-read-common.c:
+         matroskademux: Make gst_byte_reader_get_data() usage less confusing
+         This is effectively the same behaviour but retrieving 0 bytes of data 
is
+         confusing to read.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>
+
+2023-03-17 16:48:51 +0200  Sebastian Dröge <sebast...@centricular.com>
+
+       * ext/flac/gstflacenc.c:
+         flacenc: Fix mapping of GStreamer image tag type to FLAC image tag 
type
+         These enums are not compatible so just casting them does not work.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>
+
+2023-03-17 16:32:45 +0200  Sebastian Dröge <sebast...@centricular.com>
+
+       * ext/adaptivedemux2/gstadaptivedemux-stream.c:
+       * sys/oss/gstossaudio.c:
+       * sys/oss/gstosshelper.c:
+         plugins: Fix various trivial clang compiler warnings
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4221>
+
+2023-03-10 13:10:16 -0500  Arun Raghavan <a...@asymptotic.io>
+
+       * docs/gst_plugins_cache.json:
+       * gst/matroska/matroska-mux.c:
+         matroskamux: Set rate/channels in Opus template caps
+         For some reason these were missed, and if caps didn't have them, we 
would emit
+         an invalid Matroska file with a 0 value for Sampling Frequency or 
channels.
+         Fixes: 
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2354
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4172>
+
+2023-03-10 12:06:08 -0500  Arun Raghavan <a...@asymptotic.io>
+
+       * gst/rtp/gstrtpopusdepay.c:
+         rtpopusdepay: Assume 48 kHz if sprop-maxcapturerate is missing
+         This matches 7587, section 6.1:
+         >   sprop-maxcapturerate:  a hint about the maximum input sampling 
rate
+         >      [...]
+         >      bandwidths (Table 1).  By default, the sender is assumed to 
have
+         >      no limitations, i.e., 48000.
+         Fixes: 
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2354
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4172>
+
+2023-03-06 19:56:08 +0000  Matt Feury <mattfe...@gmail.com>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Consider "451: Parameter Not Understood" when handling 
broken control urls
+         similar to 
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3854
+         it seems that some implementations return this when
+         the server does not implement URL handling correctly
+         this fixes 
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/2334
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4129>
+
+2023-03-04 16:13:04 +0000  Tim-Philipp Müller <t...@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
 === release 1.22.1 ===
 
 2023-03-04 13:42:32 +0000  Tim-Philipp Müller <t...@centricular.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/NEWS 
new/gst-plugins-good-1.22.2/NEWS
--- old/gst-plugins-good-1.22.1/NEWS    2023-03-04 14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/NEWS    2023-04-11 18:29:28.000000000 +0200
@@ -2,13 +2,13 @@
 
 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.2 and was
+released on 11 April 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 11 April 2023, 16:45 UTC (log)
 
 Introduction
 
@@ -1454,6 +1454,200 @@
 -   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
+
 Schedule for 1.24
 
 Our next major feature release will be 1.24, and 1.23 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/RELEASE 
new/gst-plugins-good-1.22.2/RELEASE
--- old/gst-plugins-good-1.22.1/RELEASE 2023-03-04 14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/RELEASE 2023-04-11 18:29:28.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-good 1.22.1.
+This is GStreamer gst-plugins-good 1.22.2.
 
 The GStreamer team is thrilled to announce a new major feature release
 of your favourite cross-platform multimedia framework!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/docs/gst_plugins_cache.json 
new/gst-plugins-good-1.22.2/docs/gst_plugins_cache.json
--- old/gst-plugins-good-1.22.1/docs/gst_plugins_cache.json     2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/docs/gst_plugins_cache.json     2023-04-11 
18:29:28.000000000 +0200
@@ -7027,7 +7027,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.22.1 FLV muxer",
+                        "default": "GStreamer 1.22.2 FLV muxer",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -7039,7 +7039,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.22.1 FLV muxer",
+                        "default": "GStreamer 1.22.2 FLV muxer",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -9546,7 +9546,7 @@
                 "long-name": "Matroska muxer",
                 "pad-templates": {
                     "audio_%%u": {
-                        "caps": "audio/mpeg:\n    mpegversion: 1\n          
layer: [ 1, 3 ]\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 
2147483647 ]\naudio/mpeg:\n    mpegversion: { (int)2, (int)4 }\n  
stream-format: raw\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 
2147483647 ]\naudio/x-ac3:\n       channels: [ 1, 2147483647 ]\n           
rate: [ 1, 2147483647 ]\naudio/x-eac3:\n       channels: [ 1, 2147483647 ]\n    
       rate: [ 1, 2147483647 ]\naudio/x-dts:\n       channels: [ 1, 2147483647 
]\n           rate: [ 1, 2147483647 ]\naudio/x-vorbis:\n       channels: [ 1, 
2147483647 ]\n           rate: [ 1, 2147483647 ]\naudio/x-flac:\n       
channels: [ 1, 2147483647 ]\n           rate: [ 1, 2147483647 
]\naudio/x-opus:\naudio/x-speex:\n       channels: [ 1, 2147483647 ]\n          
 rate: [ 1, 2147483647 ]\naudio/x-raw:\n         format: { U8, S16BE, S16LE, 
S24BE, S24LE, S32BE, S32LE, F32LE, F64LE }\n         layout: interleaved\n      
 channels: [ 1, 214
 7483647 ]\n           rate: [ 1, 2147483647 ]\naudio/x-tta:\n          width: 
{ (int)8, (int)16, (int)24 }\n       channels: { (int)1, (int)2 }\n           
rate: [ 8000, 96000 ]\naudio/x-pn-realaudio:\n      raversion: { (int)1, 
(int)2, (int)8 }\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 
2147483647 ]\naudio/x-wma:\n     wmaversion: [ 1, 3 ]\n    block_align: [ 0, 
65535 ]\n        bitrate: [ 0, 524288 ]\n       channels: [ 1, 2147483647 ]\n   
        rate: [ 1, 2147483647 ]\naudio/x-alaw:\n       channels: { (int)1, 
(int)2 }\n           rate: [ 8000, 192000 ]\naudio/x-mulaw:\n       channels: { 
(int)1, (int)2 }\n           rate: [ 8000, 192000 ]\naudio/x-adpcm:\n         
layout: dvi\n    block_align: [ 64, 8192 ]\n       channels: { (int)1, (int)2 
}\n           rate: [ 8000, 96000 ]\naudio/G722:\n       channels: 1\n          
 rate: 16000\naudio/x-adpcm:\n         layout: g726\n       channels: 1\n       
    rate: 8000\n",
+                        "caps": "audio/mpeg:\n    mpegversion: 1\n          
layer: [ 1, 3 ]\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 
2147483647 ]\naudio/mpeg:\n    mpegversion: { (int)2, (int)4 }\n  
stream-format: raw\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 
2147483647 ]\naudio/x-ac3:\n       channels: [ 1, 2147483647 ]\n           
rate: [ 1, 2147483647 ]\naudio/x-eac3:\n       channels: [ 1, 2147483647 ]\n    
       rate: [ 1, 2147483647 ]\naudio/x-dts:\n       channels: [ 1, 2147483647 
]\n           rate: [ 1, 2147483647 ]\naudio/x-vorbis:\n       channels: [ 1, 
2147483647 ]\n           rate: [ 1, 2147483647 ]\naudio/x-flac:\n       
channels: [ 1, 2147483647 ]\n           rate: [ 1, 2147483647 
]\naudio/x-opus:\n       channels: [ 1, 8 ]\n           rate: { (int)8000, 
(int)16000, (int)24000, (int)32000, (int)48000 }\naudio/x-speex:\n       
channels: [ 1, 2147483647 ]\n           rate: [ 1, 2147483647 ]\naudio/x-raw:\n 
        format: { U8, S16BE,
  S16LE, S24BE, S24LE, S32BE, S32LE, F32LE, F64LE }\n         layout: 
interleaved\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 
2147483647 ]\naudio/x-tta:\n          width: { (int)8, (int)16, (int)24 }\n     
  channels: { (int)1, (int)2 }\n           rate: [ 8000, 96000 
]\naudio/x-pn-realaudio:\n      raversion: { (int)1, (int)2, (int)8 }\n       
channels: [ 1, 2147483647 ]\n           rate: [ 1, 2147483647 ]\naudio/x-wma:\n 
    wmaversion: [ 1, 3 ]\n    block_align: [ 0, 65535 ]\n        bitrate: [ 0, 
524288 ]\n       channels: [ 1, 2147483647 ]\n           rate: [ 1, 2147483647 
]\naudio/x-alaw:\n       channels: { (int)1, (int)2 }\n           rate: [ 8000, 
192000 ]\naudio/x-mulaw:\n       channels: { (int)1, (int)2 }\n           rate: 
[ 8000, 192000 ]\naudio/x-adpcm:\n         layout: dvi\n    block_align: [ 64, 
8192 ]\n       channels: { (int)1, (int)2 }\n           rate: [ 8000, 96000 
]\naudio/G722:\n       channels: 1\n           rate: 16000\naudio/x-adpcm:\n    
   
   layout: g726\n       channels: 1\n           rate: 8000\n",
                         "direction": "sink",
                         "presence": "request"
                     },
@@ -21257,7 +21257,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer/1.22.1",
+                        "default": "GStreamer/1.22.2",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -21816,7 +21816,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.22.1",
+                        "default": "GStreamer 1.22.2",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -23253,7 +23253,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer souphttpsrc 1.22.1 ",
+                        "default": "GStreamer souphttpsrc 1.22.2 ",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -24891,7 +24891,7 @@
                 "long-name": "Video (video4linux2) Sink",
                 "pad-templates": {
                     "sink": {
-                        "caps": "image/jpeg:\nvideo/mpeg:\n    mpegversion: 
4\n   systemstream: false\nvideo/mpeg:\n    mpegversion: { (int)1, (int)2 
}\nvideo/mpegts:\n   systemstream: true\nvideo/x-bayer:\n         format: { 
bggr, gbrg, grbg, rggb }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-raw:\n         format: { RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, 
GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, 
NV12_64Z32, N
 V12_8L128, NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, NV21, NV12, I420, 
ARGB, xRGB, BGRA, BGRx, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         
height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-sonix:\n  
        width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 
0/1, 2147483647/1 ]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 
3\n         format: WVC1\n\nvideo/x-raw(format:Interlaced):\n         format: { 
RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, 
YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV12_8L128, 
NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, 
BGRA, BGRx, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 
1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: 
alternate\n",
+                        "caps": "image/jpeg:\n         parsed: 
true\nvideo/mpeg:\n    mpegversion: 4\n   systemstream: false\nvideo/mpeg:\n    
mpegversion: { (int)1, (int)2 }\nvideo/mpegts:\n   systemstream: 
true\nvideo/x-bayer:\n         format: { bggr, gbrg, grbg, rggb }\n          
width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 
2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-raw:\n         format: { RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, 
GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YUY2, YVYU, UYVY, Y42B, Y41B, YU
 V9, NV12_64Z32, NV12_8L128, NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, 
NV21, NV12, I420, YV12, ARGB, xRGB, BGRA, BGRx, BGR15, RGB15 }\n          
width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 
2147483647/1 ]\nvideo/x-sonix:\n          width: [ 1, 32768 ]\n         height: 
[ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 3\n         
format: WVC1\n\nvideo/x-raw(format:Interlaced):\n         format: { RGB16, BGR, 
RGB, ABGR, xBGR, RGBA, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YUY2, YVYU, 
UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV12_8L128, NV12_10BE_8L128, NV24, 
NV12_16L32S, NV61, NV16, NV21, NV12, I420, YV12, ARGB, xRGB, BGRA, BGRx, BGR15, 
RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      
framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: alternate\n",
                         "direction": "sink",
                         "presence": "always"
                     }
@@ -25199,7 +25199,7 @@
                 "long-name": "Video (video4linux2) Source",
                 "pad-templates": {
                     "src": {
-                        "caps": "image/jpeg:\nvideo/mpeg:\n    mpegversion: 
4\n   systemstream: false\nvideo/mpeg:\n    mpegversion: { (int)1, (int)2 
}\nvideo/mpegts:\n   systemstream: true\nvideo/x-bayer:\n         format: { 
bggr, gbrg, grbg, rggb }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-raw:\n         format: { RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, 
GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, 
NV12_64Z32, N
 V12_8L128, NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, NV21, NV12, I420, 
ARGB, xRGB, BGRA, BGRx, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         
height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-sonix:\n  
        width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 
0/1, 2147483647/1 ]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 
3\n         format: WVC1\n\nvideo/x-raw(format:Interlaced):\n         format: { 
RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, 
YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV12_8L128, 
NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, 
BGRA, BGRx, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 
1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: 
alternate\n",
+                        "caps": "image/jpeg:\n         parsed: 
true\nvideo/mpeg:\n    mpegversion: 4\n   systemstream: false\nvideo/mpeg:\n    
mpegversion: { (int)1, (int)2 }\nvideo/mpegts:\n   systemstream: 
true\nvideo/x-bayer:\n         format: { bggr, gbrg, grbg, rggb }\n          
width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 
2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-raw:\n         format: { RGB16, BGR, RGB, ABGR, xBGR, RGBA, RGBx, 
GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YUY2, YVYU, UYVY, Y42B, Y41B, YU
 V9, NV12_64Z32, NV12_8L128, NV12_10BE_8L128, NV24, NV12_16L32S, NV61, NV16, 
NV21, NV12, I420, YV12, ARGB, xRGB, BGRA, BGRx, BGR15, RGB15 }\n          
width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 
2147483647/1 ]\nvideo/x-sonix:\n          width: [ 1, 32768 ]\n         height: 
[ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 3\n         
format: WVC1\n\nvideo/x-raw(format:Interlaced):\n         format: { RGB16, BGR, 
RGB, ABGR, xBGR, RGBA, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YUY2, YVYU, 
UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV12_8L128, NV12_10BE_8L128, NV24, 
NV12_16L32S, NV61, NV16, NV21, NV12, I420, YV12, ARGB, xRGB, BGRA, BGRx, BGR15, 
RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n      
framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: alternate\n",
                         "direction": "src",
                         "presence": "always"
                     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.22.1/ext/adaptivedemux2/gstadaptivedemux-stream.c 
new/gst-plugins-good-1.22.2/ext/adaptivedemux2/gstadaptivedemux-stream.c
--- old/gst-plugins-good-1.22.1/ext/adaptivedemux2/gstadaptivedemux-stream.c    
2023-03-04 14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/ext/adaptivedemux2/gstadaptivedemux-stream.c    
2023-04-11 18:29:28.000000000 +0200
@@ -2564,7 +2564,7 @@
    * fraction of the measured download rate */
   target_download_rate =
       CLAMP (stream->current_download_rate, 0,
-      G_MAXUINT) * demux->bandwidth_target_ratio;
+      G_MAXUINT) * (gdouble) demux->bandwidth_target_ratio;
 
   GST_DEBUG_OBJECT (stream, "Bitrate after target ratio limit (%0.2f): %u",
       demux->bandwidth_target_ratio, target_download_rate);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/ext/flac/gstflacenc.c 
new/gst-plugins-good-1.22.2/ext/flac/gstflacenc.c
--- old/gst-plugins-good-1.22.1/ext/flac/gstflacenc.c   2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/ext/flac/gstflacenc.c   2023-04-11 
18:29:28.000000000 +0200
@@ -687,7 +687,89 @@
       gst_buffer_unmap (buffer, &map);
 
       GST_LOG_OBJECT (flacenc, "Setting picture type %d", image_type);
-      flacenc->meta[entries]->data.picture.type = image_type;
+      switch (image_type) {
+        case GST_TAG_IMAGE_TYPE_NONE:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER;
+          break;
+        case GST_TAG_IMAGE_TYPE_FRONT_COVER:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER;
+          break;
+        case GST_TAG_IMAGE_TYPE_BACK_COVER:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER;
+          break;
+        case GST_TAG_IMAGE_TYPE_LEAFLET_PAGE:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE;
+          break;
+        case GST_TAG_IMAGE_TYPE_MEDIUM:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA;
+          break;
+        case GST_TAG_IMAGE_TYPE_LEAD_ARTIST:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST;
+          break;
+        case GST_TAG_IMAGE_TYPE_ARTIST:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST;
+          break;
+        case GST_TAG_IMAGE_TYPE_CONDUCTOR:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR;
+          break;
+        case GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_BAND;
+          break;
+        case GST_TAG_IMAGE_TYPE_COMPOSER:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER;
+          break;
+        case GST_TAG_IMAGE_TYPE_LYRICIST:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST;
+          break;
+        case GST_TAG_IMAGE_TYPE_RECORDING_LOCATION:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION;
+          break;
+        case GST_TAG_IMAGE_TYPE_DURING_RECORDING:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING;
+          break;
+        case GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE;
+          break;
+        case GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE;
+          break;
+        case GST_TAG_IMAGE_TYPE_FISH:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_FISH;
+          break;
+        case GST_TAG_IMAGE_TYPE_ILLUSTRATION:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION;
+          break;
+        case GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE;
+          break;
+        case GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE;
+          break;
+        case GST_TAG_IMAGE_TYPE_UNDEFINED:
+        default:
+          flacenc->meta[entries]->data.picture.type =
+              FLAC__STREAM_METADATA_PICTURE_TYPE_UNDEFINED;
+          break;
+      }
 
       if (width > 0 && height > 0) {
         flacenc->meta[entries]->data.picture.width = width;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst/isomp4/qtdemux.c 
new/gst-plugins-good-1.22.2/gst/isomp4/qtdemux.c
--- old/gst-plugins-good-1.22.1/gst/isomp4/qtdemux.c    2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/isomp4/qtdemux.c    2023-04-11 
18:29:28.000000000 +0200
@@ -1125,7 +1125,7 @@
   gint64 min_byte_offset = -1;
   guint i;
 
-  min_offset = desired_time;
+  min_offset = next ? G_MAXUINT64 : desired_time;
 
   /* for each stream, find the index of the sample in the segment
    * and move back to the previous keyframe. */
@@ -1184,10 +1184,10 @@
       index++;
 
     if (!empty_segment) {
-      /* find previous keyframe */
+      /* find previous or next keyframe */
       kindex = gst_qtdemux_find_keyframe (qtdemux, str, index, next);
 
-      /* we will settle for one before if none found after */
+      /* if looking for next one, we will settle for one before if none found 
after */
       if (next && kindex == -1)
         kindex = gst_qtdemux_find_keyframe (qtdemux, str, index, FALSE);
 
@@ -1213,8 +1213,12 @@
           /* this keyframe is inside the segment, convert back to
            * segment time */
           seg_time = (media_time - seg->media_start) + seg->time;
-          if ((!next && (seg_time < min_offset)) ||
-              (next && (seg_time > min_offset)))
+
+          /* Adjust the offset based on the earliest suitable keyframe found,
+           * based on which GST_SEEK_FLAG_SNAP_* is present (indicated by 
'next').
+           * For SNAP_BEFORE we look for the earliest keyframe before 
desired_time,
+           * and in case of SNAP_AFTER - for the closest one after it. */
+          if (seg_time < min_offset)
             min_offset = seg_time;
         }
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst/matroska/matroska-mux.c 
new/gst-plugins-good-1.22.2/gst/matroska/matroska-mux.c
--- old/gst-plugins-good-1.22.1/gst/matroska/matroska-mux.c     2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/matroska/matroska-mux.c     2023-04-11 
18:29:28.000000000 +0200
@@ -180,7 +180,9 @@
         COMMON_AUDIO_CAPS "; "
         "audio/x-flac, "
         COMMON_AUDIO_CAPS "; "
-        "audio/x-opus; "
+        "audio/x-opus, "
+        "channels = (int) [ 1, 8 ], "
+        "rate = (int) { 8000, 16000, 24000, 32000, 48000 }; "
         "audio/x-speex, "
         COMMON_AUDIO_CAPS "; "
         "audio/x-raw, "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.22.1/gst/matroska/matroska-read-common.c 
new/gst-plugins-good-1.22.2/gst/matroska/matroska-read-common.c
--- old/gst-plugins-good-1.22.1/gst/matroska/matroska-read-common.c     
2023-03-04 14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/matroska/matroska-read-common.c     
2023-04-11 18:29:28.000000000 +0200
@@ -592,8 +592,9 @@
     gst_structure_set (info_protect, "subsample_count", G_TYPE_UINT, 0, NULL);
   }
 
-  gst_byte_reader_get_data (&reader, 0, (const guint8 **) data_out);
   *size_out = gst_byte_reader_get_remaining (&reader);
+  gst_byte_reader_get_data (&reader, *size_out, (const guint8 **) data_out);
+
   return TRUE;
 
 release_err:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst/rtp/gstrtpjpegdepay.c 
new/gst-plugins-good-1.22.2/gst/rtp/gstrtpjpegdepay.c
--- old/gst-plugins-good-1.22.1/gst/rtp/gstrtpjpegdepay.c       2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/rtp/gstrtpjpegdepay.c       2023-04-11 
18:29:28.000000000 +0200
@@ -705,7 +705,7 @@
      * marker */
     gst_adapter_copy (rtpjpegdepay->adapter, end, avail - 2, 2);
 
-    if (end[0] != 0xff && end[1] != 0xd9) {
+    if (GST_READ_UINT16_BE (end) != 0xffd9) {
       GST_DEBUG_OBJECT (rtpjpegdepay, "no EOI marker, adding one");
 
       /* no EOI marker, add one */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst/rtp/gstrtpopusdepay.c 
new/gst-plugins-good-1.22.2/gst/rtp/gstrtpopusdepay.c
--- old/gst-plugins-good-1.22.1/gst/rtp/gstrtpopusdepay.c       2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/rtp/gstrtpopusdepay.c       2023-04-11 
18:29:28.000000000 +0200
@@ -100,6 +100,8 @@
   GstStructure *s;
   gboolean ret;
   const gchar *sprop_maxcapturerate;
+  /* Default unless overridden by sprop_maxcapturerate */
+  gint rate = 48000;
 
   srccaps = gst_caps_new_empty_simple ("audio/x-opus");
 
@@ -215,19 +217,22 @@
 
   if ((sprop_maxcapturerate =
           gst_structure_get_string (s, "sprop-maxcapturerate"))) {
-    gulong rate;
     gchar *tailptr;
+    gulong tmp_rate;
 
-    rate = strtoul (sprop_maxcapturerate, &tailptr, 10);
-    if (rate > INT_MAX || *tailptr != '\0') {
+    tmp_rate = strtoul (sprop_maxcapturerate, &tailptr, 10);
+    if (tmp_rate > INT_MAX || *tailptr != '\0') {
       GST_WARNING_OBJECT (depayload,
           "Failed to parse sprop-maxcapturerate value '%s'",
           sprop_maxcapturerate);
     } else {
-      gst_caps_set_simple (srccaps, "rate", G_TYPE_INT, rate, NULL);
+      /* Valid rate from sprop, let's use it */
+      rate = tmp_rate;
     }
   }
 
+  gst_caps_set_simple (srccaps, "rate", G_TYPE_INT, rate, NULL);
+
   ret = gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depayload), srccaps);
 
   GST_DEBUG_OBJECT (depayload,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst/rtpmanager/rtptwcc.c 
new/gst-plugins-good-1.22.2/gst/rtpmanager/rtptwcc.c
--- old/gst-plugins-good-1.22.1/gst/rtpmanager/rtptwcc.c        2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/rtpmanager/rtptwcc.c        2023-04-11 
18:29:28.000000000 +0200
@@ -598,6 +598,20 @@
 
   g_array_sort (twcc->recv_packets, _twcc_seqnum_sort);
 
+  /* Quick scan to remove duplicates */
+  prev = &g_array_index (twcc->recv_packets, RecvPacket, 0);
+  for (i = 1; i < twcc->recv_packets->len;) {
+    RecvPacket *cur = &g_array_index (twcc->recv_packets, RecvPacket, i);
+
+    if (prev->seqnum == cur->seqnum) {
+      GST_DEBUG ("Removing duplicate packet #%u", cur->seqnum);
+      g_array_remove_index (twcc->recv_packets, i);
+    } else {
+      prev = cur;
+      i += 1;
+    }
+  }
+
   /* get first and last packet */
   first = &g_array_index (twcc->recv_packets, RecvPacket, 0);
   last =
@@ -740,6 +754,11 @@
   first = &g_array_index (twcc->recv_packets, RecvPacket, 0);
   packet_count = seqnum - first->seqnum + 1;
 
+  /* If there are a high number of duplicates, we can't use the following
+   * metrics */
+  if (received_packets > packet_count)
+    return FALSE;
+
   /* check if we lost half of the threshold */
   lost_packets = packet_count - received_packets;
   if (received_packets >= 30 && lost_packets >= 60)
@@ -787,17 +806,6 @@
     return FALSE;
   }
 
-  if (twcc->recv_packets->len > 0) {
-    RecvPacket *last = &g_array_index (twcc->recv_packets, RecvPacket,
-        twcc->recv_packets->len - 1);
-
-    diff = gst_rtp_buffer_compare_seqnum (last->seqnum, seqnum);
-    if (diff == 0) {
-      GST_INFO ("Received duplicate packet (%u), dropping", seqnum);
-      return FALSE;
-    }
-  }
-
   /* store the packet for Transport-wide RTCP feedback message */
   recv_packet_init (&packet, seqnum, pinfo);
   g_array_append_val (twcc->recv_packets, packet);
@@ -817,6 +825,8 @@
           pinfo->running_time + twcc->feedback_interval;
 
     if (pinfo->running_time >= twcc->next_feedback_send_time) {
+      GST_LOG ("Generating feedback : Exceeded feedback interval %"
+          GST_TIME_FORMAT, GST_TIME_ARGS (twcc->feedback_interval));
       rtp_twcc_manager_create_feedback (twcc);
       send_feedback = TRUE;
 
@@ -824,6 +834,8 @@
         twcc->next_feedback_send_time += twcc->feedback_interval;
     }
   } else if (pinfo->marker || _many_packets_some_lost (twcc, seqnum)) {
+    GST_LOG ("Generating feedback because of %s",
+        pinfo->marker ? "marker packet" : "many packets some lost");
     rtp_twcc_manager_create_feedback (twcc);
     send_feedback = TRUE;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst/rtsp/gstrtspsrc.c 
new/gst-plugins-good-1.22.2/gst/rtsp/gstrtspsrc.c
--- old/gst-plugins-good-1.22.1/gst/rtsp/gstrtspsrc.c   2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst/rtsp/gstrtspsrc.c   2023-04-11 
18:29:28.000000000 +0200
@@ -2301,6 +2301,13 @@
     outcaps = gst_caps_intersect (caps, global_caps);
     gst_caps_unref (caps);
 
+    if (gst_caps_is_empty (outcaps)) {
+      GST_WARNING_OBJECT (src,
+          " skipping pt %d with caps conflicting with the global caps", pt);
+      gst_caps_unref (outcaps);
+      continue;
+    }
+
     /* the first pt will be the default */
     if (stream->ptmap->len == 0)
       stream->default_pt = pt;
@@ -7721,6 +7728,7 @@
       case GST_RTSP_STS_BAD_REQUEST:
       case GST_RTSP_STS_NOT_FOUND:
       case GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE:
+      case GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD:
         /* There are various non-compliant servers that don't require control
          * URLs that are not resolved correctly but instead are just appended.
          * See e.g.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/gst-plugins-good.doap 
new/gst-plugins-good-1.22.2/gst-plugins-good.doap
--- old/gst-plugins-good-1.22.1/gst-plugins-good.doap   2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/gst-plugins-good.doap   2023-04-11 
18:29:28.000000000 +0200
@@ -34,6 +34,16 @@
 
  <release>
   <Version>
+   <revision>1.22.2</revision>
+   <branch>1.22</branch>
+   <name></name>
+   <created>2023-04-11</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.22.2.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.22.1</revision>
    <branch>1.22</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/meson.build 
new/gst-plugins-good-1.22.2/meson.build
--- old/gst-plugins-good-1.22.1/meson.build     2023-03-04 14:42:32.000000000 
+0100
+++ new/gst-plugins-good-1.22.2/meson.build     2023-04-11 18:29:28.000000000 
+0200
@@ -1,5 +1,5 @@
 project('gst-plugins-good', 'c',
-  version : '1.22.1',
+  version : '1.22.2',
   meson_version : '>= 0.62',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/po/gst-plugins-good-1.0.pot 
new/gst-plugins-good-1.22.2/po/gst-plugins-good-1.0.pot
--- old/gst-plugins-good-1.22.1/po/gst-plugins-good-1.0.pot     2023-03-04 
14:45:27.124386000 +0100
+++ new/gst-plugins-good-1.22.2/po/gst-plugins-good-1.0.pot     2023-04-11 
18:31:02.401225600 +0200
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-1.22.1\n"
+"Project-Id-Version: gst-plugins-good-1.22.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-03-04 13:45+0000\n"
+"POT-Creation-Date: 2023-04-11 17:31+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <l...@li.org>\n"
@@ -99,49 +99,49 @@
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7367 gst/isomp4/qtdemux.c:7436
-#: gst/isomp4/qtdemux.c:7742 gst/isomp4/qtdemux.c:9135
+#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7371 gst/isomp4/qtdemux.c:7440
+#: gst/isomp4/qtdemux.c:7746 gst/isomp4/qtdemux.c:9139
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3041
+#: gst/isomp4/qtdemux.c:3045
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4360 gst/isomp4/qtdemux.c:8522
-#: gst/isomp4/qtdemux.c:8529 gst/isomp4/qtdemux.c:9837
-#: gst/isomp4/qtdemux.c:10279 gst/isomp4/qtdemux.c:10286
-#: gst/isomp4/qtdemux.c:13450
+#: gst/isomp4/qtdemux.c:4364 gst/isomp4/qtdemux.c:8526
+#: gst/isomp4/qtdemux.c:8533 gst/isomp4/qtdemux.c:9841
+#: gst/isomp4/qtdemux.c:10283 gst/isomp4/qtdemux.c:10290
+#: gst/isomp4/qtdemux.c:13454
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4602
+#: gst/isomp4/qtdemux.c:4606
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4655 gst/isomp4/qtdemux.c:4662
+#: gst/isomp4/qtdemux.c:4659 gst/isomp4/qtdemux.c:4666
 msgid "Cannot query file size"
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4671
+#: gst/isomp4/qtdemux.c:4675
 msgid "Cannot demux file"
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4711
+#: gst/isomp4/qtdemux.c:4715
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:11420
+#: gst/isomp4/qtdemux.c:11424
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:7886
+#: gst/rtsp/gstrtspsrc.c:7894
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:7891
+#: gst/rtsp/gstrtspsrc.c:7899
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -213,104 +213,104 @@
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:1241
+#: sys/v4l2/gstv4l2object.c:1242
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3192
+#: sys/v4l2/gstv4l2object.c:3197
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3200
+#: sys/v4l2/gstv4l2object.c:3205
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3207
+#: sys/v4l2/gstv4l2object.c:3212
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4079
+#: sys/v4l2/gstv4l2object.c:4084
 msgid "Invalid caps"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4086 sys/v4l2/gstv4l2object.c:4110
+#: sys/v4l2/gstv4l2object.c:4091 sys/v4l2/gstv4l2object.c:4115
 #, c-format
 msgid "Device '%s' has no supported format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4092 sys/v4l2/gstv4l2object.c:4116
+#: sys/v4l2/gstv4l2object.c:4097 sys/v4l2/gstv4l2object.c:4121
 #, c-format
 msgid "Device '%s' failed during initialization"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4104
+#: sys/v4l2/gstv4l2object.c:4109
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4127
+#: sys/v4l2/gstv4l2object.c:4132
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4136
+#: sys/v4l2/gstv4l2object.c:4141
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4147
+#: sys/v4l2/gstv4l2object.c:4152
 #, c-format
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4162
+#: sys/v4l2/gstv4l2object.c:4167
 #, c-format
 msgid "Device '%s' does not support %s interlacing"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4176
+#: sys/v4l2/gstv4l2object.c:4181
 #, c-format
 msgid "Device '%s' does not support %s colorimetry"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4188
+#: sys/v4l2/gstv4l2object.c:4193
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4196
+#: sys/v4l2/gstv4l2object.c:4201
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4337
+#: sys/v4l2/gstv4l2object.c:4342
 msgid "Video device did not provide output format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4343
+#: sys/v4l2/gstv4l2object.c:4348
 msgid "Video device returned invalid dimensions."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4351
+#: sys/v4l2/gstv4l2object.c:4356
 msgid "Video device uses an unsupported interlacing method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4358
+#: sys/v4l2/gstv4l2object.c:4363
 msgid "Video device uses an unsupported pixel format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:5256
+#: sys/v4l2/gstv4l2object.c:5261
 msgid "Failed to configure internal buffer pool."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:5262
+#: sys/v4l2/gstv4l2object.c:5267
 msgid "Video device did not suggest any buffer size."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:5268
+#: sys/v4l2/gstv4l2object.c:5273
 msgid "No downstream pool to import from."
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/po/gst-plugins-good.pot 
new/gst-plugins-good-1.22.2/po/gst-plugins-good.pot
--- old/gst-plugins-good-1.22.1/po/gst-plugins-good.pot 2023-03-04 
14:45:27.124386000 +0100
+++ new/gst-plugins-good-1.22.2/po/gst-plugins-good.pot 2023-04-11 
18:31:02.401225600 +0200
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-1.22.1\n"
+"Project-Id-Version: gst-plugins-good-1.22.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-03-04 13:45+0000\n"
+"POT-Creation-Date: 2023-04-11 17:31+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <l...@li.org>\n"
@@ -99,49 +99,49 @@
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7367 gst/isomp4/qtdemux.c:7436
-#: gst/isomp4/qtdemux.c:7742 gst/isomp4/qtdemux.c:9135
+#: gst/isomp4/qtdemux.c:556 gst/isomp4/qtdemux.c:7371 gst/isomp4/qtdemux.c:7440
+#: gst/isomp4/qtdemux.c:7746 gst/isomp4/qtdemux.c:9139
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3041
+#: gst/isomp4/qtdemux.c:3045
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4360 gst/isomp4/qtdemux.c:8522
-#: gst/isomp4/qtdemux.c:8529 gst/isomp4/qtdemux.c:9837
-#: gst/isomp4/qtdemux.c:10279 gst/isomp4/qtdemux.c:10286
-#: gst/isomp4/qtdemux.c:13450
+#: gst/isomp4/qtdemux.c:4364 gst/isomp4/qtdemux.c:8526
+#: gst/isomp4/qtdemux.c:8533 gst/isomp4/qtdemux.c:9841
+#: gst/isomp4/qtdemux.c:10283 gst/isomp4/qtdemux.c:10290
+#: gst/isomp4/qtdemux.c:13454
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4602
+#: gst/isomp4/qtdemux.c:4606
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4655 gst/isomp4/qtdemux.c:4662
+#: gst/isomp4/qtdemux.c:4659 gst/isomp4/qtdemux.c:4666
 msgid "Cannot query file size"
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4671
+#: gst/isomp4/qtdemux.c:4675
 msgid "Cannot demux file"
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:4711
+#: gst/isomp4/qtdemux.c:4715
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:11420
+#: gst/isomp4/qtdemux.c:11424
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:7886
+#: gst/rtsp/gstrtspsrc.c:7894
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:7891
+#: gst/rtsp/gstrtspsrc.c:7899
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -213,104 +213,104 @@
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:1241
+#: sys/v4l2/gstv4l2object.c:1242
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3192
+#: sys/v4l2/gstv4l2object.c:3197
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3200
+#: sys/v4l2/gstv4l2object.c:3205
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3207
+#: sys/v4l2/gstv4l2object.c:3212
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4079
+#: sys/v4l2/gstv4l2object.c:4084
 msgid "Invalid caps"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4086 sys/v4l2/gstv4l2object.c:4110
+#: sys/v4l2/gstv4l2object.c:4091 sys/v4l2/gstv4l2object.c:4115
 #, c-format
 msgid "Device '%s' has no supported format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4092 sys/v4l2/gstv4l2object.c:4116
+#: sys/v4l2/gstv4l2object.c:4097 sys/v4l2/gstv4l2object.c:4121
 #, c-format
 msgid "Device '%s' failed during initialization"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4104
+#: sys/v4l2/gstv4l2object.c:4109
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4127
+#: sys/v4l2/gstv4l2object.c:4132
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4136
+#: sys/v4l2/gstv4l2object.c:4141
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4147
+#: sys/v4l2/gstv4l2object.c:4152
 #, c-format
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4162
+#: sys/v4l2/gstv4l2object.c:4167
 #, c-format
 msgid "Device '%s' does not support %s interlacing"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4176
+#: sys/v4l2/gstv4l2object.c:4181
 #, c-format
 msgid "Device '%s' does not support %s colorimetry"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4188
+#: sys/v4l2/gstv4l2object.c:4193
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4196
+#: sys/v4l2/gstv4l2object.c:4201
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4337
+#: sys/v4l2/gstv4l2object.c:4342
 msgid "Video device did not provide output format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4343
+#: sys/v4l2/gstv4l2object.c:4348
 msgid "Video device returned invalid dimensions."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4351
+#: sys/v4l2/gstv4l2object.c:4356
 msgid "Video device uses an unsupported interlacing method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4358
+#: sys/v4l2/gstv4l2object.c:4363
 msgid "Video device uses an unsupported pixel format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:5256
+#: sys/v4l2/gstv4l2object.c:5261
 msgid "Failed to configure internal buffer pool."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:5262
+#: sys/v4l2/gstv4l2object.c:5267
 msgid "Video device did not suggest any buffer size."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:5268
+#: sys/v4l2/gstv4l2object.c:5273
 msgid "No downstream pool to import from."
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/sys/oss/gstossaudio.c 
new/gst-plugins-good-1.22.2/sys/oss/gstossaudio.c
--- old/gst-plugins-good-1.22.1/sys/oss/gstossaudio.c   2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/sys/oss/gstossaudio.c   2023-04-11 
18:29:28.000000000 +0200
@@ -32,10 +32,8 @@
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  gboolean ret = FALSE;
-
-  ret |= GST_ELEMENT_REGISTER (osssrc, plugin);
-  ret |= GST_ELEMENT_REGISTER (osssink, plugin);
+  GST_ELEMENT_REGISTER (osssrc, plugin);
+  GST_ELEMENT_REGISTER (osssink, plugin);
 
   return TRUE;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/sys/oss/gstosshelper.c 
new/gst-plugins-good-1.22.2/sys/oss/gstosshelper.c
--- old/gst-plugins-good-1.22.1/sys/oss/gstosshelper.c  2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/sys/oss/gstosshelper.c  2023-04-11 
18:29:28.000000000 +0200
@@ -202,7 +202,6 @@
   GQueue *ranges;
   int exact_rates = 0;
   gboolean checking_exact_rates = TRUE;
-  int n_checks = 0;
   gboolean result = TRUE;
 
   ranges = g_queue_new ();
@@ -210,7 +209,6 @@
   probe->rates = g_array_new (FALSE, FALSE, sizeof (int));
 
   probe->min = gst_oss_helper_rate_check_rate (probe, 1000);
-  n_checks++;
   probe->max = gst_oss_helper_rate_check_rate (probe, 100000);
   /* a little bug workaround */
   {
@@ -223,7 +221,6 @@
       probe->max = max;
     }
   }
-  n_checks++;
   if (probe->min == -1 || probe->max == -1) {
     /* This is a workaround for drivers that return -EINVAL (or another
      * error) for rates outside of [8000,48000].  If this fails, the
@@ -252,7 +249,6 @@
       /* FIXME ioctl returned an error.  do something */
       GST_DEBUG ("unexpected check_rate error");
     }
-    n_checks++;
 
     if (mid == mid_ret && checking_exact_rates) {
       int max_exact_matches = 20;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/sys/osxvideo/cocoawindow.m 
new/gst-plugins-good-1.22.2/sys/osxvideo/cocoawindow.m
--- old/gst-plugins-good-1.22.1/sys/osxvideo/cocoawindow.m      2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/sys/osxvideo/cocoawindow.m      2023-04-11 
18:29:28.000000000 +0200
@@ -370,8 +370,8 @@
 
   pi_texture = 0;
   data = nil;
-  width = frame.size.width;
-  height = frame.size.height;
+  width = frame.size.width * [[NSScreen mainScreen] backingScaleFactor];
+  height = frame.size.height * [[NSScreen mainScreen] backingScaleFactor];
   drawingBounds = NSMakeRect(0, 0, width, height);
 
   GST_LOG ("Width: %d Height: %d", width, height);
@@ -395,7 +395,7 @@
 - (void) reshape {
   NSRect bounds;
   gdouble frame_par, view_par;
-  gint view_height, view_width, c_height, c_width, c_x, c_y;
+  gint view_height, view_width, c_height, c_width, c_x, c_y, scale_factor;
 
   [super reshape];
 
@@ -410,6 +410,7 @@
   bounds = [self bounds];
   view_width = bounds.size.width;
   view_height = bounds.size.height;
+  scale_factor = [[NSScreen mainScreen] backingScaleFactor];
 
   frame_par = (gdouble) width / height;
   view_par = (gdouble) view_width / view_height;
@@ -433,8 +434,8 @@
     c_y = (view_height - c_height) / 2;
   }
 
-  drawingBounds = NSMakeRect(c_x, c_y, c_width, c_height);
-  glViewport (c_x, c_y, (GLint) c_width, (GLint) c_height);
+  drawingBounds = NSMakeRect(c_x * scale_factor, c_y * scale_factor,
+    c_width * scale_factor, c_height * scale_factor);
 }
 
 - (void) initTextures {
@@ -544,6 +545,9 @@
   /* Black background */
   glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 
+  glViewport ((GLint) drawingBounds.origin.x, (GLint) drawingBounds.origin.y,
+    (GLint) drawingBounds.size.width, (GLint) drawingBounds.size.height);
+
   if (!initDone) {
     [actualContext flushBuffer];
     return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-good-1.22.1/sys/v4l2/gstv4l2object.c 
new/gst-plugins-good-1.22.2/sys/v4l2/gstv4l2object.c
--- old/gst-plugins-good-1.22.1/sys/v4l2/gstv4l2object.c        2023-03-04 
14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/sys/v4l2/gstv4l2object.c        2023-04-11 
18:29:28.000000000 +0200
@@ -1093,6 +1093,7 @@
       rank = YUV_BASE_RANK + 10;
       break;
     case V4L2_PIX_FMT_YVU420:  /* YV12, 12 bits per pixel */
+    case V4L2_PIX_FMT_YVU420M:
       rank = YUV_BASE_RANK + 6;
       break;
     case V4L2_PIX_FMT_UYVY:    /* UYVY, 16 bits per pixel */
@@ -1375,6 +1376,7 @@
       format = GST_VIDEO_FORMAT_YUY2;
       break;
     case V4L2_PIX_FMT_YVU420:
+    case V4L2_PIX_FMT_YVU420M:
       format = GST_VIDEO_FORMAT_YV12;
       break;
     case V4L2_PIX_FMT_UYVY:
@@ -1453,7 +1455,8 @@
     case V4L2_PIX_FMT_MJPEG:   /* Motion-JPEG */
     case V4L2_PIX_FMT_PJPG:    /* Progressive-JPEG */
     case V4L2_PIX_FMT_JPEG:    /* JFIF JPEG */
-      structure = gst_structure_new_empty ("image/jpeg");
+      structure = gst_structure_new ("image/jpeg",
+          "parsed", G_TYPE_BOOLEAN, TRUE, NULL);
       break;
     case V4L2_PIX_FMT_MPEG1:
       structure = gst_structure_new ("video/mpeg",
@@ -1541,6 +1544,7 @@
     case V4L2_PIX_FMT_YUV420M:
     case V4L2_PIX_FMT_YUYV:
     case V4L2_PIX_FMT_YVU420:
+    case V4L2_PIX_FMT_YVU420M:
     case V4L2_PIX_FMT_UYVY:
     case V4L2_PIX_FMT_YUV422P:
     case V4L2_PIX_FMT_YVYU:
@@ -1794,6 +1798,7 @@
         break;
       case GST_VIDEO_FORMAT_YV12:
         fourcc = V4L2_PIX_FMT_YVU420;
+        fourcc_nc = V4L2_PIX_FMT_YVU420M;
         break;
       case GST_VIDEO_FORMAT_Y41B:
         fourcc = V4L2_PIX_FMT_YUV411P;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-good-1.22.1/tests/check/elements/rtpsession.c 
new/gst-plugins-good-1.22.2/tests/check/elements/rtpsession.c
--- old/gst-plugins-good-1.22.1/tests/check/elements/rtpsession.c       
2023-03-04 14:42:32.000000000 +0100
+++ new/gst-plugins-good-1.22.2/tests/check/elements/rtpsession.c       
2023-04-11 18:29:28.000000000 +0200
@@ -3466,7 +3466,7 @@
   TWCCPacket packets[] = {
     {1, 4 * 32 * GST_MSECOND, FALSE},
     {2, 5 * 32 * GST_MSECOND, FALSE},
-    {2, 6 * 32 * GST_MSECOND, FALSE},
+    {1, 6 * 32 * GST_MSECOND, FALSE},
     {3, 7 * 32 * GST_MSECOND, TRUE},
   };
 

++++++ reduce-required-meson.patch ++++++
--- /var/tmp/diff_new_pack.vToTc8/_old  2023-04-15 22:32:15.553230564 +0200
+++ /var/tmp/diff_new_pack.vToTc8/_new  2023-04-15 22:32:15.557230587 +0200
@@ -1,10 +1,10 @@
-Index: gst-plugins-good-1.22.1/meson.build
+Index: gst-plugins-good-1.22.2/meson.build
 ===================================================================
---- gst-plugins-good-1.22.1.orig/meson.build
-+++ gst-plugins-good-1.22.1/meson.build
+--- gst-plugins-good-1.22.2.orig/meson.build
++++ gst-plugins-good-1.22.2/meson.build
 @@ -1,6 +1,6 @@
  project('gst-plugins-good', 'c',
-   version : '1.22.1',
+   version : '1.22.2',
 -  meson_version : '>= 0.62',
 +  meson_version : '>= 0.61',
    default_options : [ 'warning_level=1',

Reply via email to