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 2021-04-10 15:26:32
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-base (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-base"

Sat Apr 10 15:26:32 2021 rev:76 rq:883602 version:1.18.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-base/gstreamer-plugins-base.changes
    2021-01-20 18:24:19.307348540 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-base.new.2401/gstreamer-plugins-base.changes
  2021-04-10 15:27:14.962369425 +0200
@@ -1,0 +2,16 @@
+Tue Mar 30 08:59:41 UTC 2021 - Antonio Larrosa <alarr...@suse.com>
+
+- Update to version 1.18.4:
+  + tag: id3v2: fix frame size check and potential invalid reads
+  + audio: Fix gst_audio_buffer_truncate() meta handling for non-interleaved 
audio
+  + audioresample: respect buffer layout when draining
+  + audioaggregator: fix input_buffer ownership
+  + decodebin3: change stream selection message owner, so that the app sends 
the stream-selection event to the right element
+  + rtspconnection: correct data_size when tunneled mode
+  + uridecodebin3: make caps property work
+  + video-converter: Don't upsample invalid lines
+  + videodecoder: Fix racy critical when pool negotiation occurs during flush
+  + video: Convert gst_video_info_to_caps() to take self as const ptr
+  + examples: added qt core dependency for qt overlay example
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ gstreamer-plugins-base.spec ++++++
--- /var/tmp/diff_new_pack.jy40ng/_old  2021-04-10 15:27:15.534370099 +0200
+++ /var/tmp/diff_new_pack.jy40ng/_new  2021-04-10 15:27:15.534370099 +0200
@@ -20,10 +20,10 @@
 %define gst_branch 1.0
 %define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
 Name:           gstreamer-plugins-base
-Version:        1.18.3
+Version:        1.18.4
 Release:        0
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
-License:        LGPL-2.1-or-later AND GPL-2.0-or-later
+License:        GPL-2.0-or-later AND LGPL-2.1-or-later
 Group:          Productivity/Multimedia/Other
 URL:            https://gstreamer.freedesktop.org
 # Disable tarball source url, use _service

++++++ _service ++++++
--- /var/tmp/diff_new_pack.jy40ng/_old  2021-04-10 15:27:15.554370122 +0200
+++ /var/tmp/diff_new_pack.jy40ng/_new  2021-04-10 15:27:15.554370122 +0200
@@ -9,7 +9,7 @@
 <!--
     <param name="changesgenerate">enable</param>
 -->
-    <param name="revision">1.18.3</param>
+    <param name="revision">1.18.4</param>
     <param name="scm">git</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ gst-plugins-base-1.18.3.tar.xz -> gst-plugins-base-1.18.4.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/ChangeLog 
new/gst-plugins-base-1.18.4/ChangeLog
--- old/gst-plugins-base-1.18.3/ChangeLog       2021-01-13 22:07:13.000000000 
+0100
+++ new/gst-plugins-base-1.18.4/ChangeLog       2021-03-15 18:48:00.000000000 
+0100
@@ -1,3 +1,158 @@
+=== release 1.18.4 ===
+
+2021-03-15 17:47:59 +0000  Tim-Philipp M??ller <t...@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * gst-plugins-base.doap:
+       * meson.build:
+         Release 1.18.4
+
+2021-03-03 01:08:25 +0000  Tim-Philipp M??ller <t...@centricular.com>
+
+       * gst-libs/gst/tag/id3v2frames.c:
+         tag: id3v2: fix frame size check and potential invalid reads
+         Check the right variable when checking if there's
+         enough data left to read the frame size.
+         Closes 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/876
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1066>
+
+2021-03-10 14:26:22 +0100  Guillaume Desmottes 
<guillaume.desmot...@collabora.com>
+
+       * gst-libs/gst/audio/gstaudioaggregator.c:
+         audioaggregator: fix input_buffer ownership
+         The way pad->priv->input_buffer reference was managed was pretty
+         spurious:
+         - it was overridden without unrefing it, which could potentially lead 
to
+         leaks.
+         - we were unreffing it while keeping the pointer around, which could
+         potentially lead to use-after-free or double-free.
+         As priv->input_buffer is actually no longer used outside of the
+         aggregate() method, remove it from pad->priv to simplify the code and
+         prevent the issues desribed above.
+         Fix a single buffer leak when shutting down the pipeline as the buffer
+         returned from gst_aggregator_pad_drop_buffer() was never unreffed.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1062>
+
+2021-03-10 16:22:14 +0100  Guillaume Desmottes 
<guillaume.desmot...@collabora.com>
+
+       * gst-libs/gst/audio/gstaudioaggregator.c:
+         audioaggregator: fix input buffer when converting
+         This code path is meant to convert the current buffer to the new 
format
+         on update. It was using priv->input_buffer as input which is either
+         priv->buffer or a converted version of it.
+         Use priv->buffer instead as priv->input_buffer may no longer be a 
valid
+         reference.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1062>
+
+2021-02-19 16:44:35 +0200  Vivia Nikolaidou <vi...@ahiru.eu>
+
+       * gst-libs/gst/video/video-converter.c:
+         video-converter: Don't upsample/downsample/dither invalid lines
+         This is a fallout from the conversion to support multiple threads.
+         convert->upsample_p is never NULL now, it's always an allocated array 
of
+         n_threads potentially-null pointers.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1054>
+
+2021-02-25 11:03:31 +0100  Kristofer Bj??rkstr??m <krist...@axis.com>
+
+       * gst-libs/gst/rtsp/gstrtspconnection.c:
+         gstrtspconnection: correct data_size when tunneled mode
+         gst_rtsp_connection_send_messages_usec in tunneled mode does base64
+         encode messages. When calculating data_size 1 bytes is added, which
+         results in ending the base64 with a NULL.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1053>
+
+2021-02-24 19:51:40 +0200  Sebastian Dr??ge <sebast...@centricular.com>
+
+       * gst-libs/gst/audio/gstaudioaggregator.c:
+         audioaggregator: Log if the sample rate of one sinkpad is not accepted
+         Otherwise this can silently cause not-negotiated errors without any
+         direct hint about what went wrong.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1052>
+
+2021-02-22 15:36:53 +0900  Jeongki Kim <jeongki....@jeongki.kim>
+
+       * gst/audioresample/gstaudioresample.c:
+         audioresample: Respect buffer layout when drain
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1050>
+
+2021-01-19 15:56:18 +0100  St??phane Cerveau <scerv...@collabora.com>
+
+       * gst/playback/gstdecodebin3.c:
+         decodebin3: change stream selection message owner
+         In order to select the streams on GST_MESSAGE_STREAM_COLLECTION,
+         the app needs to send the select-streams event
+         to the decodebin and not to the parsebin.
+         The message should be always owned by the decodebin.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1044>
+
+2021-02-15 16:05:30 +0000  Tim-Philipp M??ller <t...@centricular.com>
+
+       * gst/playback/gsturidecodebin3.c:
+         uridecodebin3: make caps property work
+         The caps set on uridecodebin3 via the "caps" property
+         were never passed to the internal decodebin3, so did
+         absolutely nothing.
+         Fixes 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/issues/837
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1038>
+
+2021-02-13 00:27:04 +0100  Alicia Boya Garc??a <ntr...@gmail.com>
+
+       * gst-libs/gst/video/gstvideodecoder.c:
+         videodecoder: Fix racy critical when pool negotiation occurs during 
flush
+         I found a rather reproducible race in a WebKit LayoutTest when a 
player
+         was intantiated and a VP8/9 video was loaded, then torn down after
+         getting the video dimensions from the caps.
+         The crash occurs during the handling of the first frame by gstvpxdec.
+         The following actions happen sequentially leading to a crash.
+         (MT=Main Thread, ST=Streaming Thread)
+         MT: Sets pipeline state to NULL, which deactivates vpxdec's srcpad,
+         which in turn sets its FLUSHING flag.
+         ST: gst_vpx_dec_handle_frame() -- which is still running -- calls
+         gst_video_decoder_allocate_output_frame(); this in turn calls
+         gst_video_decoder_negotiate_unlocked() which fails because the
+         srcpad is FLUSHING. As a direct consequence of the negotiation
+         failure, a pool is NOT set.
+         gst_video_decoder_negotiate_unlocked() still assumes there is a
+         pool, crashing in a critical in gst_buffer_pool_acquire_buffer()
+         a couple statements later.
+         This patch fixes the bug by returning != GST_FLOW_OK when the
+         negotiation fails. If the srcpad is FLUSHING, GST_FLOW_FLUSHING is
+         returned, otherwise GST_FLOW_ERROR is used.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1037>
+
+2021-02-15 17:22:47 +0100  Jan Alexander Steffens (heftig) 
<jan.steff...@ltnglobal.com>
+
+       * gst-libs/gst/audio/audio.c:
+         libs: audio: Fix gst_audio_buffer_truncate meta handling
+         In the non-interleaved case, it made `buffer` writable but then 
changed
+         the meta of the non-writable buffer.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1036>
+
+2021-01-26 14:05:48 +0100  Knobe, Daniel <daniel.kn...@miele.com>
+
+       * tests/examples/overlay/meson.build:
+         overlay/example: added qt core dependency for qt overlay example
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1026>
+
+2021-01-12 10:36:34 +0100  Marijn Suijten <marijn...@gmail.com>
+
+       * gst-libs/gst/video/video-info.c:
+       * gst-libs/gst/video/video-info.h:
+         video: Convert info_to_caps to take self as const ptr
+         This requires a slight modification to the function itself because it
+         was overwriting a member locally.
+         However, now this side-effect cannot be observed outside the function
+         anymore.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/1024>
+
+2021-01-14 02:16:57 +0000  Tim-Philipp M??ller <t...@centricular.com>
+
+       * meson.build:
+         Back to development
+
 === release 1.18.3 ===
 
 2021-01-13 21:07:11 +0000  Tim-Philipp M??ller <t...@centricular.com>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/NEWS 
new/gst-plugins-base-1.18.4/NEWS
--- old/gst-plugins-base-1.18.3/NEWS    2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/NEWS    2021-03-15 18:48:00.000000000 +0100
@@ -2,13 +2,13 @@
 
 GStreamer 1.18.0 was originally released on 8 September 2020.
 
-The latest bug-fix release in the 1.18 series is 1.18.3 and was released
-on 13 January 2021.
+The latest bug-fix release in the 1.18 series is 1.18.4 and was released
+on 15 March 2021.
 
 See https://gstreamer.freedesktop.org/releases/1.18/ for the latest
 version of this document.
 
-Last updated: Wednesday 13 January 2021, 20:00 UTC (log)
+Last updated: Monday 15 March 2021, 13:00 UTC (log)
 
 Introduction
 
@@ -2717,6 +2717,168 @@
 -   List of Merge Requests applied in 1.18.3
 -   List of Issues fixed in 1.18.3
 
+1.18.4
+
+The fourth 1.18 bug-fix release (1.18.4) was released on 15 March 2021.
+
+This release only contains bugfixes and security fixes and it should be
+safe to update from 1.18.x.
+
+Highlighted bugfixes in 1.18.4
+
+-   important security fixes for ID3 tag reading, matroska and realmedia
+    parsing, and gst-libav audio decoding
+-   audiomixer, audioaggregator: input buffer handling fixes
+-   decodebin3: improve stream-selection message handling
+-   uridecodebin3: make ???caps??? property work
+-   wavenc: fix writing of INFO chunks in some cases
+-   v4l2: bt601 colorimetry, allow encoder resolution changes, fix
+    decoder frame rate negotiation
+-   decklinkvideosink: fix auto format detection, and fixes for 29.97fps
+    framerate output
+-   mpeg-2 video handling fixes when seeking
+-   avviddec: fix bufferpool negotiation and possible memory corruption
+    when changing resolution
+-   various stability, performance and reliability improvements
+-   memory leak fixes
+-   build fixes: rpicamsrc, qt overlay example, d3d11videosink on UWP
+
+gstreamer
+
+-   info: Don???t leak log function user_data if the debug system is
+    compiled out
+-   task: Use SetThreadDescription() Win32 API for setting thread names,
+    which preserves thread names in dump files.
+-   buffer, memory: Mark info in map functions as caller-allocates and
+    pass allocation params as const pointers where possible
+-   clock: define AUTO_CLEANUP_FREE_FUNC for GstClockID
+
+gst-plugins-base
+
+-   tag: id3v2: fix frame size check and potential invalid reads
+-   audio: Fix gst_audio_buffer_truncate() meta handling for
+    non-interleaved audio
+-   audioresample: respect buffer layout when draining
+-   audioaggregator: fix input_buffer ownership
+-   decodebin3: change stream selection message owner, so that the app
+    sends the stream-selection event to the right element
+-   rtspconnection: correct data_size when tunneled mode
+-   uridecodebin3: make caps property work
+-   video-converter: Don???t upsample invalid lines
+-   videodecoder: Fix racy critical when pool negotiation occurs during
+    flush
+-   video: Convert gst_video_info_to_caps() to take self as const ptr
+-   examples: added qt core dependency for qt overlay example
+
+gst-plugins-good
+
+-   matroskademux: header parsing fixes
+-   rpicamsrc: depend on posix threads and vchiq_arm to fix build on
+    raspios again
+-   wavenc: Fixed INFO chunk corruption, caused by odd sized data not
+    being padded
+-   wavpackdec: Add floating point format support to fix distortions in
+    some cases
+-   v4l2: recognize V4L2 bt601 colorimetry again
+-   v4l2videoenc: support resolution change stream encode
+-   v4l2h265codec: fix HEVC profile string issue
+-   v4l2object: Need keep same transfer as input caps
+-   v4l2videodec: Fix vp8 and vp9 streams can???t play on board with
+    vendor bsp
+-   v4l2videodec: fix src side frame rate negotiation
+
+gst-plugins-bad
+
+-   avwait: Don???t post messages with the mutex locked
+-   d3d11h264dec: Reconfigure decoder object on DPB size change and keep
+    track of actually configured DPB size
+-   dashsink: fix double unref of sinkpad caps
+-   decklinkvideosink: Use correct numerator for 29.97fps
+-   decklinkvideosink: fix auto format detection
+-   decklinksrc: Use a more accurate capture time
+-   d3d11videosink: Fix build error on UWP
+-   interlace: negotiation and buffer leak fixes
+-   mpegvideoparse: do not clip, so decoder receives data from keyframe
+    even if it???s before the segment start
+-   mpegtsparse: Fix switched DTS/PTS when set-timestamps=false
+-   nvh264sldec: Reopen decoder object if larger DPB size is required
+-   sdpsrc: fix double free if sdp is provided as string via the
+    property
+-   vulkan: Fix elements long name.
+
+gst-plugins-ugly
+
+-   rmdemux: Make sure we have enough data available when parsing
+    audio/video packets
+
+gst-libav
+
+-   avviddec: take the maximum of the height/coded_height
+-   viddec: don???t configure an incorrect buffer pool when receiving a
+    gap event
+-   audiodec: fix stack overflow in gst_ffmpeg_channel_layout_to_gst()
+
+gst-rtsp-server
+
+-   rtspclientsink: fix deadlock on shutdown if no data has been
+    received yet
+-   rtspclientsink: fix leaks in unit tests
+-   rtsp-stream: avoid deadlock in send_func
+-   rtsp-client: cleanup transports during TEARDOWN
+
+gstreamer-vaapi
+
+-   h264 encoder: append encoder exposure to aud
+-   postproc: Fix a problem of propose_allocation when passthrough
+-   glx: Iterate over FBConfig and select 8 bit color size
+
+gstreamer-sharp
+
+-   no changes
+
+gst-omx
+
+-   no changes
+
+gst-python
+
+-   no changes
+
+gst-editing-services
+
+-   group: Use proper group constructor
+
+gst-integration-testsuites
+
+-   no changes
+
+gst-build
+
+-   no changes
+
+Cerbero build tool and packaging changes in 1.18.4
+
+-   macOS: more BigSur fixes
+-   glib: Backport patch to set thread names on Windows 10
+
+Contributors to 1.18.4
+
+Alicia Boya Garc??a, Ashley Brighthope, Bing Song, Branko Subasic, Edward
+Hervey, Guillaume Desmottes, Haihua Hu, He Junyan, Hou Qi, Jan Alexander
+Steffens (heftig), Jeongki Kim, Jordan Petridis, Knobe, Kristofer
+Bj??rkstr??m, Marijn Suijten, Matthew Waters, Paul Goulpi??, Philipp Zabel,
+Rafa?? Dzi??giel, Sebastian Dr??ge, Seungha Yang, Staz M, St??phane Cerveau,
+Thibault Saunier, Tim-Philipp M??ller, V??ctor Manuel J??quez Leal, Vivia
+Nikolaidou, Vladimir Menshakov,
+
+??? 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.18.4
+
+-   List of Merge Requests applied in 1.18.4
+-   List of Issues fixed in 1.18.4
+
 Schedule for 1.20
 
 Our next major feature release will be 1.20, and 1.19 will be the
@@ -2724,9 +2886,9 @@
 development of 1.19/1.20 will happen in the git master branch.
 
 The plan for the 1.20 development cycle is yet to be confirmed, but it
-is now expected that feature freeze will take place some time in
-January/February 2021, with the first 1.20 stable release hopefully
-around February/March 2021.
+is now expected that feature freeze will take place some time in April
+2021, with the first 1.20 stable release hopefully around April/May
+2021.
 
 1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/RELEASE 
new/gst-plugins-base-1.18.4/RELEASE
--- old/gst-plugins-base-1.18.3/RELEASE 2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/RELEASE 2021-03-15 18:48:00.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-base 1.18.3.
+This is GStreamer gst-plugins-base 1.18.4.
 
 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.18.3/gst/audioresample/gstaudioresample.c 
new/gst-plugins-base-1.18.4/gst/audioresample/gstaudioresample.c
--- old/gst-plugins-base-1.18.3/gst/audioresample/gstaudioresample.c    
2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst/audioresample/gstaudioresample.c    
2021-03-15 18:48:00.000000000 +0100
@@ -557,7 +557,8 @@
 gst_audio_resample_dump_drain (GstAudioResample * resample, guint history_len)
 {
   gsize out_len, outsize;
-  gpointer out[1];
+  GstBuffer *outbuf;
+  GstAudioBuffer abuf;
 
   out_len =
       gst_audio_converter_get_out_frames (resample->converter, history_len);
@@ -565,11 +566,19 @@
     return;
 
   outsize = out_len * resample->out.bpf;
+  outbuf = gst_buffer_new_and_alloc (outsize);
 
-  out[0] = g_malloc (outsize);
+  if (GST_AUDIO_INFO_LAYOUT (&resample->out) ==
+      GST_AUDIO_LAYOUT_NON_INTERLEAVED) {
+    gst_buffer_add_audio_meta (outbuf, &resample->out, out_len, NULL);
+  }
+
+  gst_audio_buffer_map (&abuf, &resample->out, outbuf, GST_MAP_WRITE);
   gst_audio_converter_samples (resample->converter, 0, NULL, history_len,
-      out, out_len);
-  g_free (out[0]);
+      abuf.planes, out_len);
+  gst_audio_buffer_unmap (&abuf);
+
+  gst_buffer_unref (outbuf);
 }
 
 static void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/gst/playback/gstdecodebin3.c 
new/gst-plugins-base-1.18.4/gst/playback/gstdecodebin3.c
--- old/gst-plugins-base-1.18.3/gst/playback/gstdecodebin3.c    2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst/playback/gstdecodebin3.c    2021-03-15 
18:48:00.000000000 +0100
@@ -1453,7 +1453,7 @@
       }
 
       SELECTION_LOCK (dbin);
-      if (dbin->collection && collection != dbin->collection) {
+      if (dbin->collection) {
         /* Replace collection message, we most likely aggregated it */
         GstMessage *new_msg;
         new_msg =
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst/playback/gsturidecodebin3.c 
new/gst-plugins-base-1.18.4/gst/playback/gsturidecodebin3.c
--- old/gst-plugins-base-1.18.3/gst/playback/gsturidecodebin3.c 2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst/playback/gsturidecodebin3.c 2021-03-15 
18:48:00.000000000 +0100
@@ -1100,6 +1100,9 @@
   GstURIDecodeBin3 *uridecodebin = (GstURIDecodeBin3 *) element;
 
   switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      g_object_set (uridecodebin->decodebin, "caps", uridecodebin->caps, NULL);
+      break;
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       ret = activate_next_play_item (uridecodebin);
       if (ret == GST_STATE_CHANGE_FAILURE)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/gst-libs/gst/audio/audio.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/audio/audio.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/audio/audio.c      2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/audio/audio.c      2021-03-15 
18:48:00.000000000 +0100
@@ -290,6 +290,10 @@
   if (samples == orig_samples)
     return buffer;
 
+  GST_DEBUG ("Truncating %" G_GSIZE_FORMAT " to %" G_GSIZE_FORMAT
+      " (trim start %" G_GSIZE_FORMAT ", end %" G_GSIZE_FORMAT ")",
+      orig_samples, samples, trim, orig_samples - trim - samples);
+
   if (!meta || meta->info.layout == GST_AUDIO_LAYOUT_INTERLEAVED) {
     /* interleaved */
     ret = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, trim * bpf,
@@ -301,7 +305,7 @@
   } else {
     /* non-interleaved */
     ret = gst_buffer_make_writable (buffer);
-    meta = gst_buffer_get_audio_meta (buffer);
+    meta = gst_buffer_get_audio_meta (ret);
     meta->samples = samples;
     for (i = 0; i < meta->info.channels; i++) {
       meta->offsets[i] += trim * bpf / meta->info.channels;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/audio/gstaudioaggregator.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/audio/gstaudioaggregator.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/audio/gstaudioaggregator.c 
2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/audio/gstaudioaggregator.c 
2021-03-15 18:48:00.000000000 +0100
@@ -100,8 +100,6 @@
   guint position, size;         /* position in the input buffer and size of the
                                    input buffer in number of samples */
 
-  GstBuffer *input_buffer;
-
   guint64 output_offset;        /* Sample offset in output segment relative to
                                    srcpad.segment.start where the current 
position
                                    of this input_buffer would be placed. */
@@ -139,7 +137,6 @@
   GstAudioAggregatorPad *pad = (GstAudioAggregatorPad *) object;
 
   gst_buffer_replace (&pad->priv->buffer, NULL);
-  gst_buffer_replace (&pad->priv->input_buffer, NULL);
 
   G_OBJECT_CLASS (gst_audio_aggregator_pad_parent_class)->finalize (object);
 }
@@ -162,7 +159,6 @@
   gst_audio_info_init (&pad->info);
 
   pad->priv->buffer = NULL;
-  pad->priv->input_buffer = NULL;
   pad->priv->position = 0;
   pad->priv->size = 0;
   pad->priv->output_offset = -1;
@@ -182,7 +178,6 @@
   pad->priv->output_offset = pad->priv->next_offset = -1;
   pad->priv->discont_time = GST_CLOCK_TIME_NONE;
   gst_buffer_replace (&pad->priv->buffer, NULL);
-  gst_buffer_replace (&pad->priv->input_buffer, NULL);
   GST_OBJECT_UNLOCK (aggpad);
 
   return GST_FLOW_OK;
@@ -900,7 +895,8 @@
   gboolean downstream_supports_rate = TRUE;
 
   if (!gst_audio_info_from_caps (&info, caps)) {
-    GST_WARNING_OBJECT (agg, "Rejecting invalid caps: %" GST_PTR_FORMAT, caps);
+    GST_WARNING_OBJECT (aaggpad, "Rejecting invalid caps: %" GST_PTR_FORMAT,
+        caps);
     return FALSE;
   }
 
@@ -933,6 +929,10 @@
 
   if (!downstream_supports_rate || (first_configured_pad
           && info.rate != first_configured_pad->info.rate)) {
+    GST_WARNING_OBJECT (aaggpad,
+        "Sample rate %d can't be configured (downstream supported: %d, 
configured rate: %d)",
+        info.rate, downstream_supports_rate,
+        first_configured_pad ? first_configured_pad->info.rate : 0);
     gst_pad_push_event (GST_PAD (aaggpad), gst_event_new_reconfigure ());
     ret = FALSE;
   } else {
@@ -1066,7 +1066,7 @@
     if (aaggpad->priv->buffer) {
       GstBuffer *new_converted_buffer =
           gst_audio_aggregator_convert_buffer (aagg, GST_PAD (aaggpad),
-          old_info, new_info, aaggpad->priv->input_buffer);
+          old_info, new_info, aaggpad->priv->buffer);
       gst_buffer_replace (&aaggpad->priv->buffer, new_converted_buffer);
       gst_buffer_unref (new_converted_buffer);
     }
@@ -1809,7 +1809,6 @@
     pad->priv->position = pad->priv->size;
 
     gst_buffer_replace (&pad->priv->buffer, NULL);
-    gst_buffer_replace (&pad->priv->input_buffer, NULL);
     return FALSE;
   }
 
@@ -1839,7 +1838,6 @@
   if (pad->priv->position == pad->priv->size) {
     /* Buffer done, drop it */
     gst_buffer_replace (&pad->priv->buffer, NULL);
-    gst_buffer_replace (&pad->priv->input_buffer, NULL);
     GST_LOG_OBJECT (pad, "Finished mixing buffer, waiting for next");
     return FALSE;
   }
@@ -2087,14 +2085,15 @@
     GstAudioAggregatorPad *pad = (GstAudioAggregatorPad *) iter->data;
     GstAggregatorPad *aggpad = (GstAggregatorPad *) iter->data;
     gboolean pad_eos = gst_aggregator_pad_is_eos (aggpad);
+    GstBuffer *input_buffer;
 
     if (!pad_eos)
       is_eos = FALSE;
 
-    pad->priv->input_buffer = gst_aggregator_pad_peek_buffer (aggpad);
+    input_buffer = gst_aggregator_pad_peek_buffer (aggpad);
 
     GST_OBJECT_LOCK (pad);
-    if (!pad->priv->input_buffer) {
+    if (!input_buffer) {
       if (timeout) {
         if (pad->priv->output_offset < next_offset) {
           gint64 diff = next_offset - pad->priv->output_offset;
@@ -2119,24 +2118,21 @@
       if (GST_AUDIO_AGGREGATOR_PAD_GET_CLASS (pad)->convert_buffer)
         pad->priv->buffer =
             gst_audio_aggregator_convert_buffer
-            (aagg, GST_PAD (pad), &pad->info, &srcpad->info,
-            pad->priv->input_buffer);
+            (aagg, GST_PAD (pad), &pad->info, &srcpad->info, input_buffer);
       else
-        pad->priv->buffer = gst_buffer_ref (pad->priv->input_buffer);
+        pad->priv->buffer = gst_buffer_ref (input_buffer);
 
       if (!gst_audio_aggregator_fill_buffer (aagg, pad)) {
         gst_buffer_replace (&pad->priv->buffer, NULL);
-        gst_buffer_replace (&pad->priv->input_buffer, NULL);
-        pad->priv->buffer = NULL;
+        gst_buffer_unref (input_buffer);
         dropped = TRUE;
         GST_OBJECT_UNLOCK (pad);
 
         gst_aggregator_pad_drop_buffer (aggpad);
         continue;
       }
-    } else {
-      gst_buffer_unref (pad->priv->input_buffer);
     }
+    gst_buffer_unref (input_buffer);
 
     if (!pad->priv->buffer && !dropped && pad_eos) {
       GST_DEBUG_OBJECT (aggpad, "Pad is in EOS state");
@@ -2164,7 +2160,6 @@
                     GST_AUDIO_INFO_RATE (&srcpad->info))), pad->priv->buffer);
         /* Buffer done, drop it */
         gst_buffer_replace (&pad->priv->buffer, NULL);
-        gst_buffer_replace (&pad->priv->input_buffer, NULL);
         dropped = TRUE;
         GST_OBJECT_UNLOCK (pad);
         gst_aggregator_pad_drop_buffer (aggpad);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/rtsp/gstrtspconnection.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/rtsp/gstrtspconnection.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/rtsp/gstrtspconnection.c   
2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/rtsp/gstrtspconnection.c   
2021-03-15 18:48:00.000000000 +0100
@@ -1905,7 +1905,7 @@
       memset (&serialized_messages[i], 0, sizeof (serialized_messages[i]));
 
       serialized_messages[i].data = (guint8 *) base64_buffer;
-      serialized_messages[i].data_size = (out_buffer - base64_buffer) + 1;
+      serialized_messages[i].data_size = (out_buffer - base64_buffer);
       n_vectors++;
     } else {
       n_vectors++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/tag/id3v2frames.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/tag/id3v2frames.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/tag/id3v2frames.c  2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/tag/id3v2frames.c  2021-03-15 
18:48:00.000000000 +0100
@@ -109,7 +109,7 @@
 
   if (work->frame_flags & (ID3V2_FRAME_FORMAT_COMPRESSION |
           ID3V2_FRAME_FORMAT_DATA_LENGTH_INDICATOR)) {
-    if (work->hdr.frame_data_size <= 4)
+    if (frame_data_size <= 4)
       return FALSE;
     if (ID3V2_VER_MAJOR (work->hdr.version) == 3) {
       work->parse_size = GST_READ_UINT32_BE (frame_data);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/video/gstvideodecoder.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/video/gstvideodecoder.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/video/gstvideodecoder.c    
2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/video/gstvideodecoder.c    
2021-03-15 18:48:00.000000000 +0100
@@ -4258,8 +4258,19 @@
   needs_reconfigure = gst_pad_check_reconfigure (decoder->srcpad);
   if (G_UNLIKELY (decoder->priv->output_state_changed || needs_reconfigure)) {
     if (!gst_video_decoder_negotiate_unlocked (decoder)) {
-      GST_DEBUG_OBJECT (decoder, "Failed to negotiate, fallback allocation");
       gst_pad_mark_reconfigure (decoder->srcpad);
+      if (GST_PAD_IS_FLUSHING (decoder->srcpad)) {
+        GST_DEBUG_OBJECT (decoder,
+            "Failed to negotiate a pool: pad is flushing");
+        goto flushing;
+      } else if (!decoder->priv->pool || decoder->priv->output_state_changed) {
+        GST_DEBUG_OBJECT (decoder,
+            "Failed to negotiate a pool and no previous pool to reuse");
+        goto error;
+      } else {
+        GST_DEBUG_OBJECT (decoder,
+            "Failed to negotiate a pool, falling back to the previous pool");
+      }
     }
   }
 
@@ -4272,6 +4283,10 @@
 
   return flow_ret;
 
+flushing:
+  GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
+  return GST_FLOW_FLUSHING;
+
 error:
   GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
   return GST_FLOW_ERROR;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/video/video-converter.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/video/video-converter.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/video/video-converter.c    
2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/video/video-converter.c    
2021-03-15 18:48:00.000000000 +0100
@@ -2906,7 +2906,7 @@
       gst_line_cache_get_lines (cache->prev, idx, out_line, start_line,
       n_lines);
 
-  if (convert->upsample) {
+  if (convert->upsample[idx]) {
     GST_DEBUG ("doing upsample %d-%d %p", start_line, start_line + n_lines - 1,
         lines[0]);
     gst_video_chroma_resample (convert->upsample[idx], lines,
@@ -3107,7 +3107,7 @@
       gst_line_cache_get_lines (cache->prev, idx, out_line, start_line,
       n_lines);
 
-  if (convert->downsample) {
+  if (convert->downsample[idx]) {
     GST_DEBUG ("downsample line %d %d-%d %p", in_line, start_line,
         start_line + n_lines - 1, lines[0]);
     gst_video_chroma_resample (convert->downsample[idx], lines,
@@ -3130,7 +3130,7 @@
   lines = gst_line_cache_get_lines (cache->prev, idx, out_line, in_line, 1);
   destline = lines[0];
 
-  if (convert->dither) {
+  if (convert->dither[idx]) {
     GST_DEBUG ("Dither line %d %p", in_line, destline);
     gst_video_dither_line (convert->dither[idx], destline, 0, out_line,
         convert->out_width);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/video/video-info.c 
new/gst-plugins-base-1.18.4/gst-libs/gst/video/video-info.c
--- old/gst-plugins-base-1.18.3/gst-libs/gst/video/video-info.c 2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/video/video-info.c 2021-03-15 
18:48:00.000000000 +0100
@@ -641,7 +641,7 @@
  * Returns: a new #GstCaps containing the info of @info.
  */
 GstCaps *
-gst_video_info_to_caps (GstVideoInfo * info)
+gst_video_info_to_caps (const GstVideoInfo * info)
 {
   GstCaps *caps;
   const gchar *format;
@@ -686,14 +686,14 @@
 
   if (GST_VIDEO_INFO_MULTIVIEW_MODE (info) != GST_VIDEO_MULTIVIEW_MODE_NONE) {
     const gchar *caps_str = NULL;
+    GstVideoMultiviewFlags multiview_flags =
+        GST_VIDEO_INFO_MULTIVIEW_FLAGS (info);
 
     /* If the half-aspect flag is set, applying it into the PAR of the
      * resulting caps now seems safe, and helps with automatic behaviour
      * in elements that aren't explicitly multiview aware */
-    if (GST_VIDEO_INFO_MULTIVIEW_FLAGS (info) &
-        GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT) {
-      GST_VIDEO_INFO_MULTIVIEW_FLAGS (info) &=
-          ~GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT;
+    if (multiview_flags & GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT) {
+      multiview_flags &= ~GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT;
       switch (GST_VIDEO_INFO_MULTIVIEW_MODE (info)) {
         case GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE:
         case GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX:
@@ -716,7 +716,7 @@
     if (caps_str != NULL) {
       gst_caps_set_simple (caps, "multiview-mode", G_TYPE_STRING,
           caps_str, "multiview-flags", GST_TYPE_VIDEO_MULTIVIEW_FLAGSET,
-          GST_VIDEO_INFO_MULTIVIEW_FLAGS (info), GST_FLAG_SET_MASK_EXACT, 
NULL);
+          multiview_flags, GST_FLAG_SET_MASK_EXACT, NULL);
     }
   }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/gst-libs/gst/video/video-info.h 
new/gst-plugins-base-1.18.4/gst-libs/gst/video/video-info.h
--- old/gst-plugins-base-1.18.3/gst-libs/gst/video/video-info.h 2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-libs/gst/video/video-info.h 2021-03-15 
18:48:00.000000000 +0100
@@ -452,7 +452,7 @@
 gboolean       gst_video_info_from_caps   (GstVideoInfo *info, const GstCaps  
* caps);
 
 GST_VIDEO_API
-GstCaps *      gst_video_info_to_caps     (GstVideoInfo *info);
+GstCaps *      gst_video_info_to_caps     (const GstVideoInfo *info);
 
 GST_VIDEO_API
 gboolean       gst_video_info_convert     (GstVideoInfo *info,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/gst-plugins-base.doap 
new/gst-plugins-base-1.18.4/gst-plugins-base.doap
--- old/gst-plugins-base-1.18.3/gst-plugins-base.doap   2021-01-13 
22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/gst-plugins-base.doap   2021-03-15 
18:48:00.000000000 +0100
@@ -36,6 +36,16 @@
 
  <release>
   <Version>
+   <revision>1.18.4</revision>
+   <branch>1.18</branch>
+   <name></name>
+   <created>2021-03-15</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.18.4.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.18.3</revision>
    <branch>1.18</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-base-1.18.3/meson.build 
new/gst-plugins-base-1.18.4/meson.build
--- old/gst-plugins-base-1.18.3/meson.build     2021-01-13 22:07:13.000000000 
+0100
+++ new/gst-plugins-base-1.18.4/meson.build     2021-03-15 18:48:00.000000000 
+0100
@@ -1,5 +1,5 @@
 project('gst-plugins-base', 'c',
-  version : '1.18.3',
+  version : '1.18.4',
   meson_version : '>= 0.48',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-base-1.18.3/tests/examples/overlay/meson.build 
new/gst-plugins-base-1.18.4/tests/examples/overlay/meson.build
--- old/gst-plugins-base-1.18.3/tests/examples/overlay/meson.build      
2021-01-13 22:07:13.000000000 +0100
+++ new/gst-plugins-base-1.18.4/tests/examples/overlay/meson.build      
2021-03-15 18:48:00.000000000 +0100
@@ -9,7 +9,7 @@
 
   if have_cxx                                      # check for C++ support
     qt5_mod = import('qt5')
-    qt5widgets_dep = dependency('qt5', modules : ['Gui', 'Widgets'],
+    qt5widgets_dep = dependency('qt5', modules : ['Core', 'Gui', 'Widgets'],
                                 required: get_option('examples'))
 
     # FIXME Add a way to get that information out of the qt5 module

Reply via email to