Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer-plugins-base for 
openSUSE:Factory checked in at 2022-06-24 08:44:46
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-base (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.1548 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-base"

Fri Jun 24 08:44:46 2022 rev:86 rq:984565 version:1.20.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-base/gstreamer-plugins-base.changes
    2022-05-14 22:52:26.407011742 +0200
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.1548/gstreamer-plugins-base.changes
  2022-06-24 08:44:49.463106503 +0200
@@ -1,0 +2,17 @@
+Wed Jun 22 10:24:56 UTC 2022 - Aaron Stern <ukbeas...@protonmail.com>
+
+- Update to version 1.20.3:
+  + typefindfunctions: Fix WebVTT format detection for very short 
+    files
+  + gldisplay: Reorder GST_GL_WINDOW check for egl-device
+  + rtpbasepayload: Copy all buffer metadata instead of just 
+    GstMetas for the input meta buffer
+  + codec-utils: Avoid out-of-bounds error
+  + navigation: Fix Since markers for mouse scroll events
+  + videoaggregator: Fix for unhandled negative rate
+  + videoaggregator: Use floor() to calculate current position
+  + video-color: Fix for missing clipping in PQ EOTF function
+  + gst-play-1.0: Fix trick-mode handling in keyboard shortcut
+  + audiovisualizer: shader: Fix out of bound write
+
+-------------------------------------------------------------------

Old:
----
  gst-plugins-base-1.20.2.tar.xz

New:
----
  gst-plugins-base-1.20.3.tar.xz

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

Other differences:
------------------
++++++ gstreamer-plugins-base.spec ++++++
--- /var/tmp/diff_new_pack.271sSO/_old  2022-06-24 08:44:49.983107086 +0200
+++ /var/tmp/diff_new_pack.271sSO/_new  2022-06-24 08:44:49.987107090 +0200
@@ -20,7 +20,7 @@
 %define gst_branch 1.0
 %define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
 Name:           gstreamer-plugins-base
-Version:        1.20.2
+Version:        1.20.3
 Release:        0
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
 License:        GPL-2.0-or-later AND LGPL-2.1-or-later

++++++ gst-plugins-base-1.20.2.tar.xz -> gst-plugins-base-1.20.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/ChangeLog 
new/gst-plugins-base-1.20.3/ChangeLog
--- old/gst-plugins-base-1.20.2/ChangeLog       2022-05-03 00:29:29.000000000 
+0200
+++ new/gst-plugins-base-1.20.3/ChangeLog       2022-06-16 00:36:22.000000000 
+0200
@@ -1,7 +1,206 @@
+=== release 1.20.3 ===
+
+2022-06-15 23:36:18 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * NEWS:
+       * RELEASE:
+       * gst-plugins-base.doap:
+       * meson.build:
+         Release 1.20.3
+
+2022-06-15 23:36:10 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * ChangeLog:
+         Update ChangeLogs for 1.20.3
+
+2022-05-25 02:10:30 +0900  Seungha Yang <seun...@centricular.com>
+
+       * gst/playback/gstplaybin3.c:
+         playbin3: Configure combiner on pad-added if needed
+         When collection is updated, decodebin3 exposes pad first and then
+         streams-selected message is posted.
+         The condition can cause a situation where playbin3 links non-existing
+         combiner/playsink pads (since streams-selected is not posted yet) with
+         new decodebin output pad. This commit will re-check selected/active
+         streams condition on pad-added and reconfigure output if needed.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2495>
+
+2022-05-23 21:24:40 -0400  Eli Schwartz <eschwa...@archlinux.org>
+
+       * gst-libs/gst/tag/meson.build:
+         meson: use better zlib dependency fallback
+         zlib is required, and if it isn't found it is checked several ways and
+         then forced via subproject(). This code was added in commit
+         b93e37592a3ccc0eaece1c8fef2d362b1e5fe685, to account for systems where
+         zlib doesn't have pkg-config files installed.
+         But Meson already does dependency fallback, and also, since 0.54.0, 
does
+         the in-between checks for find_library('z') and has_header('zlib.h') 
via
+         the "system" type dependency. Simplify dependency lookup by marking it
+         as required, which also makes sure that the console log doesn't
+         confusingly list "not found".
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2486>
+
+2022-04-26 09:29:39 +0200  Edward Hervey <edw...@centricular.com>
+
+       * ext/ogg/gstoggstream.c:
+         oggdemux: Protect against invalid framerates
+         This check wasn't done for all mappings.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2455>
+
+2022-05-15 16:53:12 +0000  Thibault Saunier <tsaun...@igalia.com>
+
+       * gst-libs/gst/rtp/gstrtcpbuffer.c:
+       * gst-libs/gst/rtp/gstrtcpbuffer.h:
+       * tests/check/libs/rtp.c:
+         rtcpbuffer: Allow padding on first reduced size packets
+         It is valid to have the padding set to 1 on the first packet and it
+         happens very often from TWCC packets coming from libwebrtc. This means
+         that we were totally ignoring many TWCC packets.
+         Fix test that checked that a first packet with padding was not valid 
and
+         instead test a single twcc packet with padding to check precisely what
+         this patch was about.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2447>
+
+2022-05-13 13:31:55 +0200  Alicia Boya Garc??a <ab...@igalia.com>
+
+       * gst-libs/gst/app/gstappsink.c:
+       * tests/check/elements/appsink.c:
+         appsink: Fix race condition on caps handling
+         Background:
+         Whenever a caps event is received by appsink, the caps are stored in 
the
+         same internal queue as buffers. Only when enough buffers have been
+         popped from the queue to reach the caps, `priv->sample` gets its caps
+         updated to match, so that they are correct for the following buffers.
+         Note that as far as upstream elements are concerned, the caps of 
appsink
+         are updated immediately when the CAPS event is sent. Samples pulled 
from
+         appsink retain the old caps until a later buffer -- one that was sent 
by
+         upstream elements after the new caps -- is pulled.
+         The race condition:
+         When a flush is received, appsink clears the entire internal queue. 
The
+         caps of `priv->sample` are not updated as part of this process, and
+         instead remain as those of the sample that was last pulled by the 
user.
+         This leaves open a race condition where:
+         1. Upstream sends a new caps event, and possibly some buffers for the
+         new caps.
+         2. Upstream sends a flush (possibly from a different thread).
+         3. Upstream sends a new buffer for the new caps. Since as far as
+         upstream is concerned, appsink caps are the new caps already, no new
+         CAPS event is sent.
+         4. The appsink user pulls a sample, having not pulled before enough
+         samples to reach the buffers sent in step 1.
+         Bug: the pulled sample has the old caps instead of the new caps.
+         Fixing the race condition:
+         To avoid this problem, when a buffer is received after a flush,
+         `priv->sample`'s caps should be updated with the current caps before 
the
+         buffer is added to the internal queue.
+         Interestingly, before this patch, appsink already had code for this, 
in
+         gst_app_sink_render_common():
+         /* queue holding caps event might have been FLUSHed,
+         * but caps state still present in pad caps */
+         if (G_UNLIKELY (!priv->last_caps &&
+         gst_pad_has_current_caps (GST_BASE_SINK_PAD (psink)))) {
+         priv->last_caps = gst_pad_get_current_caps (GST_BASE_SINK_PAD 
(psink));
+         gst_sample_set_caps (priv->sample, priv->last_caps);
+         GST_DEBUG_OBJECT (appsink, "activating pad caps %" GST_PTR_FORMAT,
+         priv->last_caps);
+         }
+         This code assumes `priv->last_caps` is reset when a flush is received,
+         which makes sense, but unfortunately, there was no code in the flush
+         code path resetting it.
+         This patch adds such code, therefore fixing the race condition. A unit
+         test demonstrating the bug and testing its behavior with the fix has
+         also been added.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2442>
+
+2022-05-16 12:34:36 -0400  U. Artie Eoff <ullysses.a.e...@intel.com>
+
+       * gst-libs/gst/video/gstvideoaggregator.c:
+         videoaggregator: unref temporary caps
+         The "possible_caps" needs unref after finished using to
+         avoid memory leak.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2440>
+
+2022-03-29 17:51:13 +0200  St??phane Cerveau <scerv...@collabora.com>
+
+       * gst-libs/gst/gl/meson.build:
+       * tests/check/libs/gstglmatrix.c:
+       * tests/check/meson.build:
+         base:gl: add x11 deps to gstglx11_dep
+         On MacOS with homebrew the xlib-xcb.h is in
+         own cellar /opt/homebrew/Cellar/libx11/1.7.3.1/include
+         Need to add the windowing dependencies to gl tests
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2426>
+
+2022-05-05 02:54:37 +0900  Seungha Yang <seun...@centricular.com>
+
+       * tools/gst-play.c:
+         tools: gst-play: Print position even if duration is unknown
+         Gives better visual feedback regarding position information
+         although duration is unknown, live streams for example.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2419>
+
+2022-05-07 04:43:49 +0900  Seungha Yang <seun...@centricular.com>
+
+       * tools/gst-device-monitor.c:
+         tools: device-monitor: Print string property as-is without serialize
+         gst_value_serialize() does more than what's needed to printf-ing
+         especially when given GValue is already string. Just print string
+         value as-is without gst_value_serialize() to avoid unreadable
+         string print, especially for multi-bytes character encoding cases.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2416>
+
+2022-05-03 16:25:19 +0200  Edward Hervey <edw...@centricular.com>
+
+       * gst/playback/gstparsebin.c:
+         parsebin: Don't modify inexistant GstStream
+         When handling exposing un-handled streams, we can only replace the 
GstStream for
+         those we are creating ourselves (i.e. the fallback collection).
+         Fixes assertions when the demuxer creates those streams
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2368>
+
+2022-05-03 16:08:39 +0200  Edward Hervey <edw...@centricular.com>
+
+       * gst/playback/gstdecodebin3.c:
+         playbin3: Don't use unknown types for default selection
+         When creating a fallback default selection from a collection, don't 
attempt to
+         use unknown stream types
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2368>
+
+2022-05-03 13:37:31 +0300  Sebastian Dr??ge <sebast...@centricular.com>
+
+       * gst/audioconvert/gstaudioconvert.c:
+         audioconvert: If no channel-mask can be fixated then use a NONE 
channel layout
+         Otherwise this is generating caps without a channel-mask, which is
+         invalid for >1 channels and will always fail negotiation.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2359>
+
+2022-03-07 08:46:57 -0500  Xavier Claessens <xavier.claess...@collabora.com>
+
+       * gst-libs/gst/gl/meson.build:
+         Meson: Fix deprecation warnings
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2358>
+
+2021-11-12 20:13:10 +0100  Ruben Gonzalez <rgonza...@fluendo.com>
+
+       * docs/plugins/gst_plugins_cache.json:
+         gst_plugin_load_file: force plugin reload if diff filename
+         If a file includes a new version of a plugin that exits in the
+         registry, the output of gst-inspect is incorrect. The output has the
+         correct version but incorrect filename, and element description.
+         This seems to have also fixed some documentation issues.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2357>
+
+2022-05-03 00:39:09 +0100  Tim-Philipp M??ller <t...@centricular.com>
+
+       * meson.build:
+         Back to development
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2347>
+
 === release 1.20.2 ===
 
 2022-05-02 23:29:25 +0100  Tim-Philipp M??ller <t...@centricular.com>
 
+       * ChangeLog:
        * NEWS:
        * RELEASE:
        * gst-plugins-base.doap:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/NEWS 
new/gst-plugins-base-1.20.3/NEWS
--- old/gst-plugins-base-1.20.2/NEWS    2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/NEWS    2022-06-16 00:36:22.000000000 +0200
@@ -2,13 +2,13 @@
 
 GStreamer 1.20.0 was originally released on 3 February 2022.
 
-The latest bug-fix release in the 1.20 series is 1.20.2 and was released
-on 2 May 2022.
+The latest bug-fix release in the 1.20 series is 1.20.3 and was released
+on 15 June 2022.
 
 See https://gstreamer.freedesktop.org/releases/1.20/ for the latest
 version of this document.
 
-Last updated: Monday 2 May 2022, 0:30 UTC (log)
+Last updated: Monday 15 June 2022, 17:00 UTC (log)
 
 Introduction
 
@@ -2291,6 +2291,218 @@
 -   List of Merge Requests applied in 1.20.2
 -   List of Issues fixed in 1.20.2
 
+1.20.3
+
+The third 1.20 bug-fix release (1.20.3) was released on 15 June 2022.
+
+This release only contains bugfixes and it should be safe to upgrade
+from 1.20.x.
+
+Highlighted bugfixes in 1.20.3
+
+-   Security fixes in Matroska, MP4 and AVI demuxers
+-   Fix scrambled video playback with hardware-accelerated VA-API
+    decoders on certain Intel hardware
+-   playbin3/decodebin3 regression fix for unhandled streams
+-   Fragmented MP4 playback fixes
+-   Android H.265 encoder mapping
+-   Playback of MXF files produced by FFmpeg before March 2022
+-   Fix rtmp2sink crashes on 32-bit platforms
+-   WebRTC improvements
+-   D3D11 video decoder and screen recorder fixes
+-   Performance improvements
+-   Support for building against OpenCV 4.6 and other build fixes
+-   Miscellaneous bug fixes, memory leak fixes, and other stability and
+    reliability improvements
+
+gstreamer
+
+-   clock: Avoid creating a weakref with every entry (performance
+    improvement)
+-   plugin: add Apache 2 license to list of known licenses to avoid
+    warning
+-   gst_plugin_load_file: force plugin reload if filename differs
+-   Add support for LoongArch
+
+Base Libraries
+
+-   aggregator: Only send events up to CAPS event from
+    gst_aggregator_set_src_caps(), don???t send multiple caps events with
+    the same caps and fix negotiation in muxers
+-   basetransform: handle gst_base_transform_query_caps() returning NULL
+-   basetransform: fix critical if transform_caps() returned NULL
+-   queuearray: Fix potential heap overflow when expanding GstQueueArray
+
+Core Elements
+
+-   multiqueue: fix potential crash on shutdown
+-   multiqueue: fix warning: ???is_query??? may be used uninitialized in
+    this function
+-   multiqueue: SegFault during flushing with gcc11
+
+gst-plugins-base
+
+-   audioconvert: If no channel-mask can be fixated then use a NONE
+    channel layout
+-   playbin3: Configure combiner on pad-added if needed
+-   parsebin: Fix assertions/regression when dealing with un-handled
+    streams (fixes regression in 1.20.2)
+-   appsink: Fix race condition on caps handling
+-   oggdemux: Protect against invalid framerates
+-   rtcpbuffer: Allow padding on first reduced size packets
+-   gl: check for xlib-xcb.h header to fix build of tests on macOS with
+    homebrew
+-   videoaggregator: unref temporary caps
+-   v4l2videoenc: Setup crop rectangle if needed
+
+Tools
+
+-   gst-play-1.0: Print position even if duration is unknown
+-   gst-device-monitor-1.0: Print string property as-is without
+    additional escaping
+
+gst-plugins-good
+
+-   aacparse: Avoid mismatch between src_caps and output_header_type
+-   avidemux: Fix integer overflow resulting in heap corruption in DIB
+    buffer inversion code (Security fix)
+-   deinterlace: Clean up error handling code
+-   flvdemux: Actually make use of the debug category
+-   gtkglsink: Fix double-free when OpenGL can???t be initialised
+-   jack: Add support for detecting libjack on Windows
+-   matroskademux: Avoid integer-overflow resulting in heap corruption
+    in WavPack header handling code (Security fix)
+-   matroskademux, qtdemux: Fix integer overflows in zlib/bz2/etc
+    decompression code (Security fix)
+-   qtdemux: Don???t use tfdt for parsing subsequent trun boxes
+-   rtpbin: Avoid holding GST_RTP_BIN_LOCK when emitting pad-added
+    signal (to avoid deadlocks)
+-   rtpptdemux: Don???t GST_FLOW_ERROR when ignoring invalid packets
+-   smpte: Fix integer overflow with possible heap corruption in GstMask
+    creation. (Security fix)
+-   smpte: integer overflow with possible heap corruption in GstMask
+    creation (Security fix)
+-   soup: fix soup debug category initialisation
+-   soup: Fix plugin/element init
+-   v4l2: Reset transfer in gst_v4l2_object_acquire_format()
+-   vpxenc: fix crash if encoder produces unmatching timestamp
+-   wavparse: ensure that any pending segment is sent before an EOS
+    event is sent
+
+gst-plugins-bad
+
+-   androidmedia: Add H.265 encoder mapping
+-   avfvideosrc: fix wrong framerate selected for caps
+-   d3d11decoder: Fix for alternate interlacing signalling
+-   d3d11decoder: Do not preallocate texture using downstream d3d11
+    buffer pool
+-   d3d11decoder: Copy HDR10 related caps field manually
+-   d3d11decoder: Work around Intel DXVA driver crash
+-   d3d11screencapture: Set viewport when drawing mouse cursor
+-   d3d11screencapture: Fix missing/outdated cursor shape
+-   d3d11screencapturesrc: Fix crash when d3d11 device is different from
+    owned one
+-   h264decoder: Fix for unhandled low-delay decoding case
+-   matroskademux, qtdemux: Fix integer overflows in zlib/bz2/etc
+    decompression code (Security fix)
+-   mpegtsmux: Make sure to set srcpad caps under all conditions before
+    outputting the first buffer
+-   mpegtsmux: sends segment before caps
+-   mxfdemux: Handle files produced by legacy FFmpeg
+-   nvh264dec,nvh265dec: Don???t realloc bitstream buffer per slice
+-   nvcodec: cuda-converter: fix nvrtc compilation on non-English locale
+    systems
+-   opencv: Allow building against 4.6.x
+-   pcapparse: Set timestamp in DTS, not PTS
+-   rtmp2: fix allocation of GstRtmpMeta which caused crashes on 32-bit
+    platforms
+-   rtmp2sink crash on Android arm 32 - cerbero 1.20.2.0
+-   sdpdemux: Release request pads from rtpbin when freeing a stream
+-   va: Add O_CLOEXEC flag at opening drm device (so subprocesses won???t
+    have access to it)
+-   webrtcbin: Reject answers that don???t contain the same number of
+    m-line as offer
+-   webrtc: datachannel: Notify low buffered amount according to spec
+
+gst-plugins-ugly
+
+-   No changes
+
+gst-libav
+
+-   No changes
+
+gst-rtsp-server
+
+-   No changes
+
+gstreamer-vaapi
+
+-   vaapi: Do not disable the whole vpp when some va operations not
+    available
+-   vaapidecode, vaapipostproc: Disable DMAbuf from caps negotiation
+-   scrambled video with some Intel graphics cards
+
+gstreamer-sharp
+
+-   No changes
+
+gst-omx
+
+-   No changes
+
+gst-python
+
+-   No changes
+
+gst-editing-services
+
+-   ges/videourisource: handle non-1/1 PAR source videos
+
+gst-examples:
+
+-   No changes
+
+Development build environment + gst-full build
+
+-   Update libnice subproject wrap to 0.1.19
+-   meson: use better zlib dependency fallback
+-   meson: Fix deprecation warnings
+
+Cerbero build tool and packaging changes in 1.20.3
+
+-   Set GSTREAMER_1_0_ROOT_[MSVC_]X86_64 root environment variable in
+    System section (not User section)
+-   bootstrap: Add perl-FindBin dep needed by openssl (which is not
+    installed by default on RedHat systems)
+-   Also add build-tools/local/bin to PATH on Linux
+-   Add a variant to control building of the JACK plugin
+-   libnice: update to 0.1.19 (fixes some WebRTC issues)
+-   zlib: update to 1.2.12
+
+Bindings
+
+-   No changes
+
+Contributors to 1.20.3
+
+Adam Doupe, Alicia Boya Garc??a, Bastien Nocera, Corentin Damman, Damian
+Hobson-Garcia, Diogo Goncalves, Edward Hervey, Eli Schwartz, Erwann
+Gouesbet, Guillaume Desmottes, He Junyan, Hou Qi, Jakub Adam, James
+Hilliard, Jan Alexander Steffens (heftig), Jan Schmidt, Matthew Waters,
+Nicolas Dufresne, Nirbheek Chauhan, Olivier Cr??te, Philippe Normand,
+Rabindra Harlalka, Ruben Gonzalez, Sebastian Dr??ge, Seungha Yang,
+St??phane Cerveau, Thibault Saunier, Tim-Philipp M??ller, Tom Schuring, U.
+Artie Eoff, V??ctor Manuel J??quez Leal, WANG Xuerui, Xavier Claessens,
+
+??? and many others who have contributed bug reports, translations, sent
+suggestions or helped testing. Thank you all!
+
+List of merge requests and issues fixed in 1.20.3
+
+-   List of Merge Requests applied in 1.20.3
+-   List of Issues fixed in 1.20.3
+
 Schedule for 1.22
 
 Our next major feature release will be 1.22, and 1.21 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/RELEASE 
new/gst-plugins-base-1.20.3/RELEASE
--- old/gst-plugins-base-1.20.2/RELEASE 2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/RELEASE 2022-06-16 00:36:22.000000000 +0200
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-base 1.20.2.
+This is GStreamer gst-plugins-base 1.20.3.
 
 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-base-1.20.2/docs/plugins/gst_plugins_cache.json 
new/gst-plugins-base-1.20.3/docs/plugins/gst_plugins_cache.json
--- old/gst-plugins-base-1.20.2/docs/plugins/gst_plugins_cache.json     
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/docs/plugins/gst_plugins_cache.json     
2022-06-16 00:36:22.000000000 +0200
@@ -8565,7 +8565,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "top (2)",
+                        "default": "baseline (0)",
                         "mutable": "null",
                         "readable": true,
                         "type": "GstBaseTextOverlayVAlign",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/ext/ogg/gstoggstream.c 
new/gst-plugins-base-1.20.3/ext/ogg/gstoggstream.c
--- old/gst-plugins-base-1.20.2/ext/ogg/gstoggstream.c  2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/ext/ogg/gstoggstream.c  2022-06-16 
00:36:22.000000000 +0200
@@ -425,7 +425,8 @@
   pad->granulerate_n = GST_READ_UINT32_BE (data + 22);
   pad->granulerate_d = GST_READ_UINT32_BE (data + 26);
   if (pad->granulerate_n == 0 || pad->granulerate_d == 0) {
-    GST_WARNING ("frame rate %d/%d", pad->granulerate_n, pad->granulerate_d);
+    GST_WARNING ("Invalid frame rate %d/%d", pad->granulerate_n,
+        pad->granulerate_d);
     pad->granulerate_n = 0;
     pad->granulerate_d = 0;
     return FALSE;
@@ -565,6 +566,12 @@
     return FALSE;
   }
 
+  if (header.frame_rate_numerator == 0 || header.frame_rate_denominator == 0) {
+    GST_WARNING ("invalid framerate %d/%d", header.frame_rate_numerator,
+        header.frame_rate_denominator);
+    return FALSE;
+  }
+
   pad->is_video = TRUE;
   pad->always_flush_page = TRUE;
   pad->granulerate_n = header.frame_rate_numerator * 2;
@@ -670,6 +677,11 @@
   fps_n = GST_READ_UINT32_BE (packet->packet + 18);
   fps_d = GST_READ_UINT32_BE (packet->packet + 22);
 
+  if (fps_n == 0 || fps_d == 0) {
+    GST_WARNING ("invalid framerate %d/%d", fps_n, fps_d);
+    return FALSE;
+  }
+
   pad->is_video = TRUE;
   pad->is_vp8 = TRUE;
   pad->granulerate_n = fps_n;
@@ -1690,7 +1702,7 @@
   pad->is_video = TRUE;
   pad->granulerate_n = 10000000;
   time_unit = GST_READ_UINT64_LE (data + 17);
-  if (time_unit > G_MAXINT || time_unit < G_MININT) {
+  if (time_unit > G_MAXINT || time_unit < G_MININT || time_unit == 0) {
     GST_WARNING ("timeunit is out of range");
   }
   pad->granulerate_d = (gint) CLAMP (time_unit, G_MININT, G_MAXINT);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/gst/audioconvert/gstaudioconvert.c 
new/gst-plugins-base-1.20.3/gst/audioconvert/gstaudioconvert.c
--- old/gst-plugins-base-1.20.2/gst/audioconvert/gstaudioconvert.c      
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/audioconvert/gstaudioconvert.c      
2022-06-16 00:36:22.000000000 +0200
@@ -683,6 +683,8 @@
   } else if (out_chans > 1) {
     GST_ERROR_OBJECT (base, "Have no default layout for %d channels",
         out_chans);
+    gst_structure_set (outs, "channel-mask", GST_TYPE_BITMASK,
+        G_GUINT64_CONSTANT (0), NULL);
   }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst/playback/gstdecodebin3.c 
new/gst-plugins-base-1.20.3/gst/playback/gstdecodebin3.c
--- old/gst-plugins-base-1.20.2/gst/playback/gstdecodebin3.c    2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/playback/gstdecodebin3.c    2022-06-16 
00:36:22.000000000 +0200
@@ -1178,7 +1178,7 @@
     for (i = 0; i < nb; i++) {
       GstStream *stream = gst_stream_collection_get_stream (collection, i);
       GstStreamType curtype = gst_stream_get_stream_type (stream);
-      if (!(used_types & curtype)) {
+      if (curtype != GST_STREAM_TYPE_UNKNOWN && !(used_types & curtype)) {
         const gchar *sid = gst_stream_get_stream_id (stream);
         GST_DEBUG_OBJECT (dbin,
             "Automatically selecting stream '%s' of type %s", sid,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst/playback/gstparsebin.c 
new/gst-plugins-base-1.20.3/gst/playback/gstparsebin.c
--- old/gst-plugins-base-1.20.2/gst/playback/gstparsebin.c      2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/playback/gstparsebin.c      2022-06-16 
00:36:22.000000000 +0200
@@ -1376,22 +1376,23 @@
     g_value_array_free (factories);
 
     if (parsebin->expose_allstreams) {
-      GstStream *newstream;
-      GST_LOG_OBJECT (parsepad, "Existing GstStream %" GST_PTR_FORMAT,
-          parsepad->active_stream);
       /* If we expose all streams, we only need to inform the application about
        * a missing handler but still expose it. We also make sure the stream
        * type is unknown. */
-      g_assert (parsepad->active_stream);
-      newstream =
-          gst_stream_new (gst_stream_get_stream_id (parsepad->active_stream),
-          caps, GST_STREAM_TYPE_UNKNOWN,
-          gst_stream_get_stream_flags (parsepad->active_stream));
-      gst_object_replace ((GstObject **) & parsepad->active_stream,
-          (GstObject *) newstream);
-      GST_LOG_OBJECT (parsepad, "New GstStream %" GST_PTR_FORMAT,
-          parsepad->active_stream);
-
+      if (parsepad->in_a_fallback_collection) {
+        GstStream *newstream;
+        GST_LOG_OBJECT (parsepad, "Existing GstStream %" GST_PTR_FORMAT,
+            parsepad->active_stream);
+        g_assert (parsepad->active_stream);
+        newstream =
+            gst_stream_new (gst_stream_get_stream_id (parsepad->active_stream),
+            caps, GST_STREAM_TYPE_UNKNOWN,
+            gst_stream_get_stream_flags (parsepad->active_stream));
+        gst_object_replace ((GstObject **) & parsepad->active_stream,
+            (GstObject *) newstream);
+        GST_LOG_OBJECT (parsepad, "New GstStream %" GST_PTR_FORMAT,
+            parsepad->active_stream);
+      }
       gst_element_post_message (GST_ELEMENT_CAST (parsebin),
           gst_missing_decoder_message_new (GST_ELEMENT_CAST (parsebin), caps));
       goto expose_pad;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst/playback/gstplaybin3.c 
new/gst-plugins-base-1.20.3/gst/playback/gstplaybin3.c
--- old/gst-plugins-base-1.20.2/gst/playback/gstplaybin3.c      2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst/playback/gstplaybin3.c      2022-06-16 
00:36:22.000000000 +0200
@@ -3061,6 +3061,7 @@
   gint pb_stream_type = -1;
   gchar *pad_name;
   GstPlayBin3 *playbin = group->playbin;
+  GstStreamType selected, active, cur;
 
   GST_PLAY_BIN3_SHUTDOWN_LOCK (playbin, shutdown);
 
@@ -3073,10 +3074,13 @@
      try exact match first */
   if (g_str_has_prefix (pad_name, "video")) {
     pb_stream_type = PLAYBIN_STREAM_VIDEO;
+    cur = GST_STREAM_TYPE_VIDEO;
   } else if (g_str_has_prefix (pad_name, "audio")) {
     pb_stream_type = PLAYBIN_STREAM_AUDIO;
+    cur = GST_STREAM_TYPE_AUDIO;
   } else if (g_str_has_prefix (pad_name, "text")) {
     pb_stream_type = PLAYBIN_STREAM_TEXT;
+    cur = GST_STREAM_TYPE_TEXT;
   }
 
   g_free (pad_name);
@@ -3091,6 +3095,30 @@
   GST_PLAY_BIN3_LOCK (playbin);
   combine = &playbin->combiner[pb_stream_type];
 
+  /* (uri)decodebin3 will post streams-selected once all pads are expose.
+   * Therefore this stream might not be marked as selected on pad-added,
+   * and associated combiner can be null here.
+   * Marks this stream as selected manually, exposed pad implies it's selected
+   * already */
+  selected = playbin->selected_stream_types | cur;
+  active = playbin->active_stream_types;
+
+  if (selected != active) {
+    GST_DEBUG_OBJECT (playbin,
+        "%s:%s added but not an active stream, marking active",
+        GST_DEBUG_PAD_NAME (pad));
+    playbin->selected_stream_types = selected;
+    reconfigure_output (playbin);
+
+    /* shutdown state can be changed meantime then combiner will not be
+     * configured */
+    if (g_atomic_int_get (&playbin->shutdown)) {
+      GST_PLAY_BIN3_UNLOCK (playbin);
+      GST_PLAY_BIN3_SHUTDOWN_UNLOCK (playbin);
+      return;
+    }
+  }
+
   combiner_control_pad (playbin, combine, pad);
 
   control_source_pad (group, pad, combine->stream_type);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/gst-libs/gst/app/gstappsink.c 
new/gst-plugins-base-1.20.3/gst-libs/gst/app/gstappsink.c
--- old/gst-plugins-base-1.20.2/gst-libs/gst/app/gstappsink.c   2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/app/gstappsink.c   2022-06-16 
00:36:22.000000000 +0200
@@ -731,6 +731,7 @@
     gst_mini_object_unref (obj);
   priv->num_buffers = 0;
   priv->num_events = 0;
+  gst_caps_replace (&priv->last_caps, NULL);
   g_cond_signal (&priv->cond);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst-libs/gst/gl/meson.build 
new/gst-plugins-base-1.20.3/gst-libs/gst/gl/meson.build
--- old/gst-plugins-base-1.20.2/gst-libs/gst/gl/meson.build     2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/gl/meson.build     2022-06-16 
00:36:22.000000000 +0200
@@ -1,6 +1,11 @@
+gstgl_dep = dependency('', required : false)
+gstglproto_dep = dependency('', required : false)
+gstglx11_dep = dependency('', required : false)
+gstglwayland_dep = dependency('', required : false)
+gstglegl_dep = dependency('', required : false)
+
 if get_option('gl').disabled()
   message('GStreamer OpenGL integration disabled via options.')
-  gstgl_dep = dependency('', required: false)
   build_gstgl = false
   subdir_done()
 endif
@@ -145,7 +150,7 @@
 ]
 
 foreach option : glconf_options
-  glconf.set10(option, false)
+  glconf.set(option, 0)
 endforeach
 
 unneeded_dep = dependency('', required : false)
@@ -489,11 +494,11 @@
 
 if gles2_dep.found()
   gl_lib_deps += gles2_dep
-  glconf.set10('GST_GL_HAVE_GLES2', 1)
+  glconf.set('GST_GL_HAVE_GLES2', 1)
   if gles3_h
-    glconf.set10('GST_GL_HAVE_GLES3', 1)
+    glconf.set('GST_GL_HAVE_GLES3',1)
     if gles3ext3_h
-      glconf.set10('GST_GL_HAVE_GLES3EXT3_H', 1)
+      glconf.set('GST_GL_HAVE_GLES3EXT3_H', 1)
     endif
   endif
   enabled_gl_apis += 'gles2'
@@ -501,7 +506,7 @@
 
 if gl_dep.found()
   gl_lib_deps += gl_dep
-  glconf.set10('GST_GL_HAVE_OPENGL', 1)
+  glconf.set('GST_GL_HAVE_OPENGL', 1)
   enabled_gl_apis += 'gl'
 endif
 
@@ -547,11 +552,11 @@
       'egl/gstgldisplay_egl_device.h',
     ])
     gl_platform_deps += egl_dep
-    glconf.set10('GST_GL_HAVE_PLATFORM_EGL', 1)
+    glconf.set('GST_GL_HAVE_PLATFORM_EGL', 1)
 
     if cc.has_header('libdrm/drm_fourcc.h')
       gl_misc_deps += allocators_dep
-      glconf.set10('GST_GL_HAVE_DMABUF', 1)
+      glconf.set('GST_GL_HAVE_DMABUF', 1)
     endif
 
     egl_includes = '''
@@ -650,6 +655,7 @@
   endif
 endif
 
+xcb_dep = unneeded_dep
 if need_win_x11 != 'no'
   xcb_dep = dependency('x11-xcb', required : false)
   if x11_dep.found() and xcb_dep.found()
@@ -756,7 +762,7 @@
 
     if windows_graphics_h and windows_app_dep.found() and 
runtimeobject_lib.found()
       enabled_gl_winsys += 'winrt'
-      glconf.set10('GST_GL_HAVE_WINDOW_WINRT', 1)
+      glconf.set('GST_GL_HAVE_WINDOW_WINRT', 1)
       gl_priv_sources += [
         'winrt/gstglwindow_winrt_egl.cpp'
       ]
@@ -804,7 +810,7 @@
     if foundation_dep.found() and quartzcore_dep.found() and 
corefoundation_dep.found()
       gl_platform_deps += [quartzcore_dep, corefoundation_dep, foundation_dep]
       enabled_gl_platforms += 'cgl'
-      glconf.set10('GST_GL_HAVE_PLATFORM_CGL', 1)
+      glconf.set('GST_GL_HAVE_PLATFORM_CGL', 1)
 
       if need_win_cocoa != 'no'
         cocoa_dep = dependency('appleframeworks', modules : ['Cocoa'], 
required : false)
@@ -817,7 +823,7 @@
           ]
           gl_winsys_deps += cocoa_dep
           enabled_gl_winsys += 'cocoa'
-          glconf.set10('GST_GL_HAVE_WINDOW_COCOA', 1)
+          glconf.set('GST_GL_HAVE_WINDOW_COCOA', 1)
         elif need_win_cocoa == 'yes'
           error('Could not find Cocoa')
         endif
@@ -906,8 +912,8 @@
   if egl_dep.found() and cc.has_function ('fbGetDisplay', dependencies : 
egl_dep)
     if cc.has_function ('glTexDirectVIV', dependencies : gles2_dep)
       enabled_gl_winsys += 'viv-fb'
-      glconf.set10('GST_GL_HAVE_WINDOW_VIV_FB', 1)
-      glconf.set10('GST_GL_HAVE_VIV_DIRECTVIV', 1)
+      glconf.set('GST_GL_HAVE_WINDOW_VIV_FB', 1)
+      glconf.set('GST_GL_HAVE_VIV_DIRECTVIV', 1)
       gl_priv_sources += [
         'viv-fb/gstgldisplay_viv_fb.c',
         'viv-fb/gstglwindow_viv_fb_egl.c',
@@ -930,7 +936,7 @@
 if host_system == 'android' and need_win_android != 'no' and need_platform_egl 
!= 'no'
   if gles2_dep.found() and egl_dep.found()
     enabled_gl_winsys += ['android']
-    glconf.set10('GST_GL_HAVE_WINDOW_ANDROID', 1)
+    glconf.set('GST_GL_HAVE_WINDOW_ANDROID', 1)
     gl_priv_sources += [
       'android/gstglwindow_android_egl.c'
     ]
@@ -966,12 +972,6 @@
   build_gstgl = false
 endif
 
-gstgl_dep = dependency('', required : false)
-gstglproto_dep = dependency('', required : false)
-gstglx11_dep = dependency('', required : false)
-gstglwayland_dep = dependency('', required : false)
-gstglegl_dep = dependency('', required : false)
-
 if build_gstgl
   # find some types that may or may not be defined
   if cc.has_type('GLeglImageOES', prefix : gl_include_block, dependencies : 
gl_lib_deps, include_directories : gl_includes)
@@ -1143,7 +1143,7 @@
         gl_x11_gir = gnome.generate_gir(gstgl, kwargs: gir)
       endif
     endif
-    gstglx11_dep = declare_dependency(dependencies : [gstgl_dep],
+    gstglx11_dep = declare_dependency(dependencies : [gstgl_dep, x11_dep, 
xcb_dep],
       sources : gl_x11_gir)
     meson.override_dependency('gstreamer-gl-x11-1.0', gstglx11_dep)
   endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.c 
new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.c
--- old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.c        
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.c        
2022-06-16 00:36:22.000000000 +0200
@@ -109,8 +109,7 @@
   if (G_UNLIKELY (header_mask != GST_RTCP_VALID_VALUE))
     goto wrong_mask;
 
-  /* no padding when mask succeeds */
-  padding = FALSE;
+  padding = data[0] & 0x20;
 
   /* store len */
   data_len = len;
@@ -129,7 +128,7 @@
     if (data_len < 4)
       break;
 
-    /* padding only allowed on last packet */
+    /* Version already checked for first packet through mask */
     if (padding)
       break;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.h 
new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.h
--- old/gst-plugins-base-1.20.2/gst-libs/gst/rtp/gstrtcpbuffer.h        
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/rtp/gstrtcpbuffer.h        
2022-06-16 00:36:22.000000000 +0200
@@ -262,10 +262,10 @@
 /**
  * GST_RTCP_REDUCED_SIZE_VALID_MASK:
  *
- * Mask for version, padding bit and packet type pair allowing reduced size
+ * Mask for version and packet type pair allowing reduced size
  * packets, basically it accepts other types than RR and SR
  */
-#define GST_RTCP_REDUCED_SIZE_VALID_MASK (0xc000 | 0x2000 | 0xf8)
+#define GST_RTCP_REDUCED_SIZE_VALID_MASK (0xc000 | 0xf8)
 
 /**
  * GST_RTCP_VALID_VALUE:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst-libs/gst/tag/meson.build 
new/gst-plugins-base-1.20.3/gst-libs/gst/tag/meson.build
--- old/gst-plugins-base-1.20.2/gst-libs/gst/tag/meson.build    2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/tag/meson.build    2022-06-16 
00:36:22.000000000 +0200
@@ -70,13 +70,7 @@
 core_conf.set('HAVE_ISO_CODES', have_iso_codes)
 
 # could drop optional zlib dep and use g_zlib_decompressor_new()
-zlib_dep = dependency('zlib', required : false)
-if not zlib_dep.found()
-  zlib_dep = cc.find_library('z', required : false)
-  if not zlib_dep.found() or not cc.has_header('zlib.h')
-    zlib_dep = subproject('zlib').get_variable('zlib_dep')
-  endif
-endif
+zlib_dep = dependency('zlib')
 core_conf.set('HAVE_ZLIB', true)
 
 tag_deps = [gst_base_dep, libm, zlib_dep]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/gst-libs/gst/video/gstvideoaggregator.c 
new/gst-plugins-base-1.20.3/gst-libs/gst/video/gstvideoaggregator.c
--- old/gst-plugins-base-1.20.2/gst-libs/gst/video/gstvideoaggregator.c 
2022-05-03 00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-libs/gst/video/gstvideoaggregator.c 
2022-06-16 00:36:22.000000000 +0200
@@ -1063,6 +1063,8 @@
         gst_caps_unref (possible_caps);
         continue;
       }
+
+      gst_caps_unref (possible_caps);
     }
 
     /* If the format is supported, consider it very high weight */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/gst-plugins-base.doap 
new/gst-plugins-base-1.20.3/gst-plugins-base.doap
--- old/gst-plugins-base-1.20.2/gst-plugins-base.doap   2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/gst-plugins-base.doap   2022-06-16 
00:36:22.000000000 +0200
@@ -36,6 +36,16 @@
 
  <release>
   <Version>
+   <revision>1.20.3</revision>
+   <branch>1.20</branch>
+   <name></name>
+   <created>2022-06-15</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.20.3.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.20.2</revision>
    <branch>1.20</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/meson.build 
new/gst-plugins-base-1.20.3/meson.build
--- old/gst-plugins-base-1.20.2/meson.build     2022-05-03 00:29:29.000000000 
+0200
+++ new/gst-plugins-base-1.20.3/meson.build     2022-06-16 00:36:22.000000000 
+0200
@@ -1,5 +1,5 @@
 project('gst-plugins-base', 'c',
-  version : '1.20.2',
+  version : '1.20.3',
   meson_version : '>= 0.59',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/po/gst-plugins-base-1.0.pot 
new/gst-plugins-base-1.20.3/po/gst-plugins-base-1.0.pot
--- old/gst-plugins-base-1.20.2/po/gst-plugins-base-1.0.pot     2022-05-03 
00:29:57.435302500 +0200
+++ new/gst-plugins-base-1.20.3/po/gst-plugins-base-1.0.pot     2022-06-16 
00:36:51.190222300 +0200
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-05-02 23:29+0100\n"
+"POT-Creation-Date: 2022-06-15 23:36+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"
@@ -83,11 +83,11 @@
 msgid "Could not read CD."
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:1911 gst/playback/gstparsebin.c:1542
+#: gst/playback/gstdecodebin2.c:1911 gst/playback/gstparsebin.c:1543
 msgid "Could not determine type of stream"
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:2889 gst/playback/gstparsebin.c:2374
+#: gst/playback/gstdecodebin2.c:2889 gst/playback/gstparsebin.c:2375
 msgid "This appears to be a text file"
 msgstr ""
 
@@ -111,7 +111,7 @@
 msgid "Could not create \"uridecodebin\" element."
 msgstr ""
 
-#: gst/playback/gstplaybin3.c:4604
+#: gst/playback/gstplaybin3.c:4632
 msgid "Could not create \"uridecodebin3\" element."
 msgstr ""
 
@@ -725,17 +725,17 @@
 msgid "Initial key in which the sound starts"
 msgstr ""
 
-#: tools/gst-device-monitor.c:294 tools/gst-play.c:1575
+#: tools/gst-device-monitor.c:296 tools/gst-play.c:1575
 msgid "Print version information and exit"
 msgstr ""
 
-#: tools/gst-device-monitor.c:296
+#: tools/gst-device-monitor.c:298
 msgid ""
 "Don't exit after showing the initial device list, but wait for devices to "
 "added/removed."
 msgstr ""
 
-#: tools/gst-device-monitor.c:299
+#: tools/gst-device-monitor.c:301
 msgid "Include devices from hidden device providers."
 msgstr ""
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/tests/check/elements/appsink.c 
new/gst-plugins-base-1.20.3/tests/check/elements/appsink.c
--- old/gst-plugins-base-1.20.2/tests/check/elements/appsink.c  2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/elements/appsink.c  2022-06-16 
00:36:22.000000000 +0200
@@ -987,6 +987,87 @@
 
 GST_END_TEST;
 
+static void
+push_caps_with_type (gint caps_type)
+{
+  GstCaps *caps;
+
+  caps =
+      gst_caps_new_simple ("application/x-gst-check", "type", G_TYPE_INT,
+      caps_type, NULL);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_caps (caps)));
+
+  gst_caps_unref (caps);
+}
+
+static void
+push_buffer_with_number (gint buffer_number)
+{
+  GstBuffer *buffer;
+
+  buffer = gst_buffer_new_and_alloc (sizeof (gint));
+  gst_buffer_fill (buffer, 0, &buffer_number, sizeof (gint));
+  fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+}
+
+static void
+pull_and_check_sample (GstElement * appsink, gint expected_buffer_number,
+    gint expected_caps_type)
+{
+  GstSample *sample;
+  GstCaps *caps;
+  GstBuffer *buffer;
+  GstStructure *structure;
+  gint actual_caps_type;
+
+  sample = gst_app_sink_pull_sample (GST_APP_SINK (appsink));
+
+  caps = gst_sample_get_caps (sample);
+  fail_unless (structure = gst_caps_get_structure (caps, 0));
+  fail_unless (gst_structure_get_int (structure, "type", &actual_caps_type));
+  assert_equals_int (actual_caps_type, expected_caps_type);
+
+  buffer = gst_sample_get_buffer (sample);
+  gst_check_buffer_data (buffer, &expected_buffer_number, sizeof (gint));
+
+  gst_sample_unref (sample);
+}
+
+GST_START_TEST (test_caps_before_flush_race_condition)
+{
+  GstElement *sink;
+  GstSegment segment;
+
+  sink = setup_appsink ();
+
+  ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+
+  // Push a series of buffers, and at the end, a new caps event.
+  push_caps_with_type (1);
+  push_buffer_with_number (10);
+  push_buffer_with_number (11);
+  push_caps_with_type (2);
+
+  pull_and_check_sample (sink, 10, 1);
+
+  // Then, let a flush happen.
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_start ()));
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_flush_stop (TRUE)));
+  // Sinks downgrade state to PAUSED after a flush, let's up it to PLAYING 
again to avoid gst_pad_push becoming blocking.
+  ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+  // A segment must be sent after a flush.
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_segment 
(&segment)));
+
+  // Send a buffer now, and check that when pulled by the appsink user, it 
didn't come with the wrong old caps.
+  push_buffer_with_number (20);
+  pull_and_check_sample (sink, 20, 2);
+
+  cleanup_appsink (sink);
+}
+
+GST_END_TEST;
+
 static Suite *
 appsink_suite (void)
 {
@@ -1012,6 +1093,7 @@
   tcase_add_test (tc_chain, test_event_signals);
   tcase_add_test (tc_chain, test_event_paused);
   tcase_add_test (tc_chain, test_reverse_stepping);
+  tcase_add_test (tc_chain, test_caps_before_flush_race_condition);
 
   return s;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.20.2/tests/check/libs/gstglmatrix.c 
new/gst-plugins-base-1.20.3/tests/check/libs/gstglmatrix.c
--- old/gst-plugins-base-1.20.2/tests/check/libs/gstglmatrix.c  2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/libs/gstglmatrix.c  2022-06-16 
00:36:22.000000000 +0200
@@ -22,7 +22,7 @@
 #  include "config.h"
 #endif
 
-#include <gst/gl/gstglutils.c>
+#include <gst/gl/gl.h>
 #undef GST_CAT_DEFAULT
 #include <gst/check/gstcheck.h>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tests/check/libs/rtp.c 
new/gst-plugins-base-1.20.3/tests/check/libs/rtp.c
--- old/gst-plugins-base-1.20.2/tests/check/libs/rtp.c  2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/libs/rtp.c  2022-06-16 
00:36:22.000000000 +0200
@@ -31,6 +31,8 @@
 
 #define RTP_HEADER_LEN 12
 
+static GstBuffer *create_feedback_buffer (gboolean with_padding);
+
 GST_START_TEST (test_rtp_buffer)
 {
   GstBuffer *buf;
@@ -1073,20 +1075,19 @@
 
 GST_START_TEST (test_rtcp_validate_reduced_with_padding)
 {
-  /* Reduced size packet with padding. */
-  guint8 rtcp_pkt[] = {
-    0xA0, 0xcd, 0x00, 0x08,     /* P=1, Type FB, length = 8 */
-    0x97, 0x6d, 0x21, 0x6a,
-    0x4d, 0x16, 0xaf, 0x14,
-    0x10, 0x1f, 0xd9, 0x91,
-    0x0f, 0xb7, 0x50, 0x88,
-    0x3b, 0x79, 0x31, 0x50,
-    0xbe, 0x19, 0x12, 0xa8,
-    0xbb, 0xce, 0x9e, 0x3e,
-    0x00, 0x00, 0x00, 0x04      /* RTCP padding */
-  };
+  GstRTCPPacket packet;
+  GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+  GstBuffer *buffer = create_feedback_buffer (TRUE);
+
+  gst_rtcp_buffer_map (buffer, GST_MAP_READ, &rtcp);
+  fail_unless (gst_rtcp_buffer_get_first_packet (&rtcp, &packet));
+  fail_unless (gst_rtcp_packet_get_padding (&packet));
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  fail_unless (gst_rtcp_buffer_validate_reduced (buffer));
+  fail_if (gst_rtcp_buffer_validate (buffer));
 
-  fail_if (gst_rtcp_buffer_validate_data_reduced (rtcp_pkt, sizeof 
(rtcp_pkt)));
+  gst_buffer_unref (buffer);
 }
 
 GST_END_TEST;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tests/check/meson.build 
new/gst-plugins-base-1.20.3/tests/check/meson.build
--- old/gst-plugins-base-1.20.2/tests/check/meson.build 2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tests/check/meson.build 2022-06-16 
00:36:22.000000000 +0200
@@ -11,7 +11,7 @@
   [ 'libs/baseaudiovisualizer.c' ],
   [ 'libs/discoverer.c' ],
   [ 'libs/fft.c' ],
-  [ 'libs/libsabi.c', false, [ gstgl_dep ] ],
+  [ 'libs/libsabi.c', false, [ gstgl_dep, gstglx11_dep, gstglwayland_dep, 
gstglegl_dep ] ],
   [ 'libs/mikey.c' ],
   [ 'libs/navigation.c' ],
   [ 'libs/pbutils.c' ],
@@ -92,8 +92,8 @@
     [ 'libs/gstglcontext.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
     [ 'libs/gstglfeature.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
     [ 'libs/gstglformat.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
-    [ 'libs/gstglheaders.c', not build_gstgl, [gstgl_dep]],
-    [ 'libs/gstglmatrix.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
+    [ 'libs/gstglheaders.c', not build_gstgl, [gstgl_dep, gstglx11_dep, 
gstglwayland_dep, gstglegl_dep]],
+    [ 'libs/gstglmatrix.c', not build_gstgl, [gstgl_dep]],
     [ 'libs/gstglmemory.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
     [ 'libs/gstglquery.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
     [ 'libs/gstglshader.c', not build_gstgl, [gstgl_dep, gstglproto_dep]],
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tools/gst-device-monitor.c 
new/gst-plugins-base-1.20.3/tools/gst-device-monitor.c
--- old/gst-plugins-base-1.20.2/tools/gst-device-monitor.c      2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tools/gst-device-monitor.c      2022-06-16 
00:36:22.000000000 +0200
@@ -144,6 +144,8 @@
   if (G_VALUE_HOLDS_UINT (value)) {
     val = g_strdup_printf ("%u (0x%08x)", g_value_get_uint (value),
         g_value_get_uint (value));
+  } else if (G_VALUE_HOLDS_STRING (value)) {
+    val = g_value_dup_string (value);
   } else {
     val = gst_value_serialize (value);
   }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.20.2/tools/gst-play.c 
new/gst-plugins-base-1.20.3/tools/gst-play.c
--- old/gst-plugins-base-1.20.2/tools/gst-play.c        2022-05-03 
00:29:29.000000000 +0200
+++ new/gst-plugins-base-1.20.3/tools/gst-play.c        2022-06-16 
00:36:22.000000000 +0200
@@ -692,7 +692,7 @@
     status[len] = '\0';
   }
 
-  if (pos >= 0 && dur > 0) {
+  if (pos >= 0) {
     gchar dstr[32], pstr[32];
 
     /* FIXME: pretty print in nicer format */

Reply via email to