Hello community,

here is the log from the commit of package gstreamer for openSUSE:Factory 
checked in at 2020-12-12 20:27:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer.new.2328 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer"

Sat Dec 12 20:27:25 2020 rev:70 rq:854556 version:1.18.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes      2020-11-09 
13:57:28.459955871 +0100
+++ /work/SRC/openSUSE:Factory/.gstreamer.new.2328/gstreamer.changes    
2020-12-12 20:27:32.497550753 +0100
@@ -1,0 +2,40 @@
+Tue Dec  8 23:09:03 UTC 2020 - Bjørn Lie <[email protected]>
+
+- Update to version 1.18.2:
+  + Highlighted bugfixes:
+    - Fix MPEG-TS timestamping regression when playing DVB streams
+    - compositor: fix artefacts in certain input scaling/conversion
+      situations and make sure that the output format is actually
+      supported, plus renegotiation fixes
+    - Fix sftp:// URI playback in decodebin/playbin via giosrc
+    - adaptivedemux/dashdemux/hlsdemux fixes
+    - rtsp-server fixes
+    - android media: fix crash when encoding AVC
+    - fix races in various unit tests
+    - lots of other bug fixes and memory leak fixes
+    - various stability, performance and reliability improvements
+    - g-i annotation fixes
+    - build fixes
+  + gstreamer changes:
+    - bin: When removing a sink, check if the EOS status changed
+    - info: colorize PIDs in log messages
+    - aggregator: Include min-upstream-latency in buffering time,
+      helps especially with performance issues on single core
+      systems where there are a lot of threads running
+    - typefind: copy seqnum to new segment event, fixing issues
+      with oggdemux operating in push mode with typefind operating
+      in pull mode
+    - identity, clocksync: Also provide system clock if sync=false
+    - queue2: Fix modes in scheduling query handling
+    - harness: Handle element not being set cleanly
+    - g-i: Add some missing nullable annotations, and fix some
+      nullable annotations:
+    - gst_test_clock_process_next_clock_id() returns nullable
+    - gst_stream_type_get_name() is not nullable
+    - build: fix build issue when compiling for 32-bit
+      architectures with 64-bit time_t (e.g. riscv32) by increasing
+      padding in GstClockEntryImpl in gst_private.h
+- Fix the _service file and spec to really use the tarball
+  generated by service.
+
+-------------------------------------------------------------------

Old:
----
  gstreamer-1.18.1.tar.xz

New:
----
  gstreamer-1.18.2.tar.xz

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

Other differences:
------------------
++++++ gstreamer.spec ++++++
--- /var/tmp/diff_new_pack.2dkOKp/_old  2020-12-12 20:27:33.021551297 +0100
+++ /var/tmp/diff_new_pack.2dkOKp/_new  2020-12-12 20:27:33.025551301 +0100
@@ -17,21 +17,26 @@
 
 
 %define gst_branch 1.0
+
 Name:           gstreamer
-Version:        1.18.1
+Version:        1.18.2
 Release:        0
 Summary:        Streaming-Media Framework Runtime
 License:        LGPL-2.1-or-later
 Group:          Productivity/Multimedia/Other
-URL:            https://gstreamer.freedesktop.org/
-Source0:        
https://gstreamer.freedesktop.org/src/gstreamer/%{name}-%{version}.tar.xz
+URL:            https://gstreamer.freedesktop.org
+# Disable tarball source url, use _service
+#Source0:        %%{url}/src/gstreamer/%%{name}-%%{version}.tar.xz
+Source0:        %{name}-%{version}.tar.xz
 Source1:        gstreamer.macros
 Source2:        gstreamer.prov
 Source99:       baselibs.conf
+
 # PATCH-FEATURE-UPSTREAM gstreamer-rpm-prov.patch bgo#588784 
[email protected] -- Add --rpm parameter to allow creation of rpm provides, 
patch from fedora
 Patch1:         gstreamer-rpm-prov.patch
 # PATCH-FIX-OPENSUSE gstreamer-pie.patch [email protected] -- create 
position-independent executables.
 Patch2:         gstreamer-pie.patch
+
 BuildRequires:  bison >= 2.4
 BuildRequires:  check-devel
 BuildRequires:  fdupes

++++++ _service ++++++
--- /var/tmp/diff_new_pack.2dkOKp/_old  2020-12-12 20:27:33.045551321 +0100
+++ /var/tmp/diff_new_pack.2dkOKp/_new  2020-12-12 20:27:33.045551321 +0100
@@ -1,10 +1,15 @@
+<?xml version="1.0"?>
 <services>
   <service name="tar_scm" mode="disabled">
     <param 
name="url">https://gitlab.freedesktop.org/gstreamer/gstreamer.git</param>
     <param name="filename">gstreamer</param>
-    <!--<param name="versionformat">@PARENT_TAG@+git%cd.%h</param>-->
-    <param name="versionformat">@PARENT_TAG@</param>
-    <param name="revision">1.18.1</param>
+    <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
+    <param name="versionrewrite-pattern">(.*)\+0</param>
+    <param name="versionrewrite-replacement">\1</param>
+<!--
+    <param name="changesgenerate">enable</param>
+-->
+    <param name="revision">1.18.2</param>
     <param name="scm">git</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ gstreamer-1.18.1.tar.xz -> gstreamer-1.18.2.tar.xz ++++++
++++ 2952 lines of diff (skipped)
++++    retrying with extended exclude list
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/.gitlab-ci.yml new/gstreamer-1.18.2/.gitlab-ci.yml
--- old/gstreamer-1.18.1/.gitlab-ci.yml 1970-01-01 01:00:00.000000000 +0100
+++ new/gstreamer-1.18.2/.gitlab-ci.yml 2020-12-06 14:21:20.000000000 +0100
@@ -0,0 +1 @@
+include: 
"https://gitlab.freedesktop.org/gstreamer/gst-ci/raw/1.18/gitlab/ci_template.yml";
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/ChangeLog new/gstreamer-1.18.2/ChangeLog
--- old/gstreamer-1.18.1/ChangeLog      2020-10-26 12:08:38.343754000 +0100
+++ new/gstreamer-1.18.2/ChangeLog      2020-12-06 14:21:20.000000000 +0100
@@ -1,3 +1,140 @@
+=== release 1.18.2 ===
+
+2020-12-06 13:21:19 +0000  Tim-Philipp Müller <[email protected]>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * gstreamer.doap:
+       * meson.build:
+         Release 1.18.2
+
+2020-12-03 19:22:43 +0100  Marijn Suijten <[email protected]>
+
+       * libs/gst/check/gsttestclock.c:
+         check: gst_test_clock_process_next_clock_id returns nullable
+         It is possible there are no more pending clocks in the chain, in which
+         case this function returns null.
+         See also tests like test_single_shot_async_future that validate NULL
+         returns.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/716>
+
+2020-12-02 09:22:35 +0200  Sebastian Dröge <[email protected]>
+
+       * gst/gststreams.c:
+         streams: gst_stream_type_get_name() is not nullable
+         It takes an enum and only the defined values are valid to pass in here
+         as it's not extensible from the outside.
+         Add a g_return_val_if_reached() for the unreachable case and return
+         "invalid".
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/713>
+
+2020-11-03 22:58:26 -0800  Khem Raj <[email protected]>
+
+       * gst/gst_private.h:
+         gst_private.h: increse padding in struct _GstClockEntryImpl
+         When compiling for 32bit architectures with 64bit time_t e.g. riscv32,
+         the static assert that the GstClockEntryImpl smaller or
+         equal to the struct _GstClockEntryImpl triggered.
+         (they were 12bytes off).
+         To fix this, the padding is increased by 8 bytes (on 32bit).
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/695>
+
+2020-11-02 17:43:42 +0800  Bing Song <[email protected]>
+
+       * plugins/elements/gstclocksync.c:
+       * plugins/elements/gstidentity.c:
+         identity/clocksync: Also provide system clock if sync=false
+         identity should provide when sync=true. Don't provide when sync=false.
+         Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/630
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/697>
+
+2020-11-10 21:39:13 +1000  Jonathan Matthew <[email protected]>
+
+       * plugins/elements/gsttypefindelement.c:
+       * plugins/elements/gsttypefindelement.h:
+         typefind: copy seqnum to new segment event
+         Fixes: #635
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/701>
+
+2020-10-17 12:34:20 +0300  Sebastian Dröge <[email protected]>
+
+       * gst/gstbufferpool.c:
+       * gst/gstdatetime.c:
+       * gst/gstdeviceprovider.c:
+       * gst/gstelement.c:
+       * gst/gstparse.c:
+       * gst/gstplugin.c:
+       * gst/gstregistry.c:
+       * gst/gststreamcollection.c:
+       * gst/gsttypefind.c:
+       * gst/gsttypefindfactory.c:
+       * gst/gsturi.c:
+       * gst/gstutils.c:
+       * libs/gst/base/gstaggregator.c:
+       * libs/gst/base/gstbasesrc.c:
+       * libs/gst/base/gstbasetransform.c:
+         Add some missing nullable annotations
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/699>
+
+2020-11-03 22:39:54 +1000  Jonathan Matthew <[email protected]>
+
+       * plugins/elements/gstqueue2.c:
+         queue2: Fix modes in scheduling query handling
+         Create a new query to send upstream and copy the flags across from it,
+         rather than reusing the same query, as this allows us to prevent use
+         of pull mode when we don't have a download file.
+         Fixes: #629
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/696>
+
+2020-10-31 15:10:23 -0400  Chris White <[email protected]>
+
+       * gst/gstinfo.c:
+         gstinfo: colorize PIDs in log messages
+         The PIDs on log lines were supposed to be colorized before, but the
+         escape sequence was incorrect.  With this change, the code uses the
+         correct sequence to colorize those PIDs.  E.g., instead of `\033[334m`
+         (incorrect), use `\033[34m` (correct).
+         This makes the log messages easier to read.  It also reduces the 
chance
+         that a buggy terminal will choke on the invalid escape sequence.
+         https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/624
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/691>
+
+2020-10-30 23:46:07 +1100  Jan Schmidt <[email protected]>
+
+       * libs/gst/check/gstharness.c:
+       * tests/check/libs/gstharness.c:
+         harness: Handle element not being set cleanly.
+         If a harness is created with gst_harness_new_empty(), there
+         might not be an internal element to unref on cleanup.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/687>
+
+2020-10-30 00:45:42 +1100  Jan Schmidt <[email protected]>
+
+       * gst/gstbin.c:
+       * tests/check/gst/gstbin.c:
+         bin: When removing a sink, check if the EOS status changed.
+         Removing a sink that hasn't posted EOS might change the bin itself
+         to EOS if it's the last remaining non-EOSed sink.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/685>
+
+2020-10-16 10:39:08 -0400  Nicolas Dufresne <[email protected]>
+
+       * libs/gst/base/gstaggregator.c:
+         aggregator: Include min-upstream-latency in buffering time
+         While we can fixe the upstream latency using the 
min-upstream-latency, we
+         are now forced to use queues (hence more thread) in order to store 
the pending
+         data whenever we have an upstream source that has lower latency.
+         This fixes the issue by allowing to buffer the fixed upstream 
latency. This is
+         particularly handy on single core systems were having too many 
threads can
+         cause serious performance issues.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/684>
+
+2020-10-27 12:33:56 +0000  Tim-Philipp Müller <[email protected]>
+
+       * meson.build:
+         Back to development
+
 === release 1.18.1 ===
 
 2020-10-26 11:08:36 +0000  Tim-Philipp Müller <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/NEWS new/gstreamer-1.18.2/NEWS
--- old/gstreamer-1.18.1/NEWS   2020-10-26 12:08:38.343754000 +0100
+++ new/gstreamer-1.18.2/NEWS   2020-12-06 14:21:20.000000000 +0100
@@ -2,8 +2,8 @@
 
 GStreamer 1.18.0 was originally released on 8 September 2020.
 
-The latest bug-fix release in the 1.18 series is 1.18.1 and was released
-on 26 October 2020.
+The latest bug-fix release in the 1.18 series is 1.18.2 and was released
+on 6 December 2020.
 
 See https://gstreamer.freedesktop.org/releases/1.18/ for the latest
 version of this document.
@@ -2387,6 +2387,195 @@
 -   List of Merge Requests applied in 1.18.1
 -   List of Issues fixed in 1.18.1
 
+1.18.2
+
+The second 1.18 bug-fix release (1.18.2) was released on 6 December
+2020.
+
+This release only contains bugfixes and it should be safe to update from
+1.18.x.
+
+Highlighted bugfixes in 1.18.2
+
+-   Fix MPEG-TS timestamping regression when playing DVB streams
+-   compositor: fix artefacts in certain input scaling/conversion
+    situations and make sure that the output format is actually
+    supported, plus renegotiation fixes
+-   Fix sftp:// URI playback in decodebin/playbin via giosrc
+-   adaptivedemux/dashdemux/hlsdemux fixes
+-   rtsp-server fixes
+-   android media: fix crash when encoding AVC
+-   fix races in various unit tests
+-   lots of other bug fixes and memory leak fixes
+-   various stability, performance and reliability improvements
+-   g-i annotation fixes
+-   build fixes
+
+gstreamer
+
+-   bin: When removing a sink, check if the EOS status changed
+-   info: colorize PIDs in log messages
+-   aggregator: Include min-upstream-latency in buffering time, helps
+    especially with performance issues on single core systems where
+    there are a lot of threads running
+-   typefind: copy seqnum to new segment event, fixing issues with
+    oggdemux operating in push mode with typefind operating in pull mode
+-   identity, clocksync: Also provide system clock if sync=false
+-   queue2: Fix modes in scheduling query handling
+-   harness: Handle element not being set cleanly
+-   g-i: Add some missing nullable annotations, and fix some nullable
+    annotations:
+    -   gst_test_clock_process_next_clock_id() returns nullable
+    -   gst_stream_type_get_name() is not nullable
+-   build: fix build issue when compiling for 32-bit architectures with
+    64-bit time_t (e.g. riscv32) by increasing padding in
+    GstClockEntryImpl in gst_private.h
+
+gst-plugins-base
+
+-   gl/eagl: internal view resize fixes for glimagesink
+-   video-converter: increase the number of cache lines for resampling,
+    fixes significant color issues and artefacts with “special” resizing
+    parameters in compositor
+-   compositor: Don’t crash in prepare_frame() if the pad was just
+    removed
+-   decodebin3: Properly handle caps query with no filter
+-   videoaggregator: Guarantee that the output format is supported
+-   videoaggregator: Fix locking around vagg->info
+-   gluploadelement: Avoid race condition of base class’ context
+-   gluploadelement: Avoid race condition of inside upload creation
+-   gl: Fix prototype of glGetSynciv()
+-   tcpserversink: Don’t assume g_socket_get_remote_address() succeeds
+-   video-aggregator: Fix renegotiation when using convert pads
+-   videoaggregator: document and fix locking in convert pad
+-   audiodecoder, videodecoder: Don’t reset max-errors property value in
+    reset()
+-   audioencoder: Fix incorrect GST_LOG_OBJECT usage
+-   pbutils: Fix segfault when using invalid encoding profile
+-   g-i: videometa: gir annotate the size of plane array in new API
+-   examples/gl/gtk: Add missing dependency on gstgl
+-   video: fix doc warning
+
+gst-plugins-good
+
+-   rpicamsrc: add vchostif library as it is required to build
+    successful
+-   deinterlace: Enable x86 assembly with nasm on MSVC
+-   v4l2: caps negotiate wrong as interlace feature
+-   aacparse: Fix caps change handling
+-   rtspsrc: Use URI hash for stream id
+-   flvmux: Release pads via GstAggregator
+-   qtmux: Chain up when releasing pad, and fix some locking
+-   matroska-mux: Fix sparse stream crash
+-   Splitmux testsuite races
+
+gst-plugins-bad
+
+-   tsparse: timestamp packetized buffers, fixing timestamp handling
+    regression in connection with dvbsrc in MeTV
+-   ttmlparse: fix issues in aggregation of input TTML
+-   mpegdemux: Set duration on seeking query if possible, fixes seeking
+    in MPEG-PS streams in gst-play-1.0
+-   mpegtsdemux: Fix off by one error
+-   adaptivedemux: Store QoS values on the element
+-   adaptivedemux: Don’t calculate bitrate for header/index fragments
+-   hlsdemux: Don’t double-free variant streams on errors
+-   mpegtspacketizer: Handle PCR issues with adaptive streams
+-   player: call ref_sink on pipeline
+-   vkdeviceprovider: Avoid deadlock on physical device
+-   wlvideoformat: fix DMA format convertor
+-   Webrtc shutdown crashes
+-   decklink: Update enum value bounds check in gst_decklink_get_mode()
+-   decklink: correct framerate 2KDCI 23.98
+-   amc: Fix crash when encoding AVC
+-   d3d11videoprocessor: Fix wrong input/output supportability check
+-   opencv: allow compilation against 4.5.x
+-   tests: svthevcenc: Fix test_encode_simple
+-   tests: dtls: Don’t set dtlsenc state before linking
+-   mpegtsmux: Restore intervals when creating TsMux
+-   adaptivedemux, hlsdemux, curl: Use actual object for logging
+-   gi: player: Fix get_current_subtitle_track() annotation
+
+gst-plugins-ugly
+
+-   no changes
+
+gst-libav
+
+-   avauddec: Check planar-ness of frame rather than context, fixes
+    issue with aptX HD decoding
+
+gst-rtsp-server
+
+-   stream: collect a clock_rate when blocking
+-   media: Ignore GstRTSPStreamBlocking from incomplete streams, to
+    prevent cases with prerolling when the inactive stream prerolls
+    first and the server proceeds without waiting for the active stream.
+    When there are no complete streams (during DESCRIBE), we will listen
+    to all streams.
+-   media: Use guint64 for setting the size-time property on rtpstorage,
+    fixes potential crashes or memory corruption.
+-   media: Get rates only on sender streams, fixing issue with ONVIF
+    audio backchannel streams
+-   media: Plug memory leak
+
+gstreamer-vaapi
+
+-   H265 decoder: Fix a typo in scc reference setting
+
+gstreamer-sharp
+
+-   no changes
+
+gst-omx
+
+-   no changes
+
+gst-python
+
+-   no changes
+
+gst-editing-services
+
+-   Fix static build
+-   ges_init(): Fix potential initialisation crash on error
+
+gst-integration-testsuites
+
+-   no changes
+
+gst-build
+
+-   gst-env: use Path.open() in get_pkgconfig_variable_from_pcfile(),
+    fixes issues with python 3.5
+-   subprojects: pin orc to 0.4.32 release (was 0.4.29) and pin libpsl
+    to 0.21.1 (was master)
+
+Cerbero build tool and packaging changes in 1.18.2
+
+-   build-tools: copy the removed site.py from setuptools, fixing python
+    programs (like meson) from using libraries from incorrect places
+
+Contributors to 1.18.2
+
+Arun Raghavan, Bing Song, Chris Bass, Chris Duncan, Chris White, David
+Keijser, David Phung, Edward Hervey, Fabrice Fontaine, Guillaume
+Desmottes, Guiqin Zou, He Junyan, Jan Alexander Steffens (heftig), Jan
+Schmidt, Jason Pereira, Jonathan Matthew, Jose Quaresma, Julian Bouzas,
+Khem Raj, Kristofer Björkström, Marijn Suijten, Mart Raudsepp, Mathieu
+Duponchelle, Matthew Waters, Nicola Murino, Nicolas Dufresne, Nirbheek
+Chauhan, Olivier Crête, Philippe Normand, Rafostar, Randy Li, Sanchayan
+Maity, Sebastian Dröge, Seungha Yang, Thibault Saunier, Tim-Philipp
+Müller, Vivia Nikolaidou, 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.18.2
+
+-   List of Merge Requests applied in 1.18.2
+-   List of Issues fixed in 1.18.2
+
 Schedule for 1.20
 
 Our next major feature release will be 1.20, and 1.19 will be the
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/RELEASE new/gstreamer-1.18.2/RELEASE
--- old/gstreamer-1.18.1/RELEASE        2020-10-26 12:08:38.343754000 +0100
+++ new/gstreamer-1.18.2/RELEASE        2020-12-06 14:21:20.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer core 1.18.1.
+This is GStreamer core 1.18.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' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gst_private.h new/gstreamer-1.18.2/gst/gst_private.h
--- old/gstreamer-1.18.1/gst/gst_private.h      2020-10-26 12:08:38.359754000 
+0100
+++ new/gstreamer-1.18.2/gst/gst_private.h      2020-12-06 14:21:20.000000000 
+0100
@@ -524,7 +524,7 @@
   GstClockEntry entry;
   GWeakRef clock;
   GDestroyNotify destroy_entry;
-  gpointer padding[19];                 /* padding for allowing e.g. 
systemclock
+  gpointer padding[21];                 /* padding for allowing e.g. 
systemclock
                                          * to add data in lieu of overridable
                                          * virtual functions on the clock */
 };
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstbin.c new/gstreamer-1.18.2/gst/gstbin.c
--- old/gstreamer-1.18.1/gst/gstbin.c   2020-10-26 12:08:38.359754000 +0100
+++ new/gstreamer-1.18.2/gst/gstbin.c   2020-12-06 14:21:20.000000000 +0100
@@ -1576,7 +1576,7 @@
   GstClock **provided_clock_p;
   GstElement **clock_provider_p;
   GList *walk, *next;
-  gboolean other_async, this_async, have_no_preroll;
+  gboolean other_async, this_async, have_no_preroll, removed_eos;
   GstStateChangeReturn ret;
 
   GST_DEBUG_OBJECT (bin, "element :%s", GST_ELEMENT_NAME (element));
@@ -1703,6 +1703,8 @@
    * async state. */
   this_async = FALSE;
   other_async = FALSE;
+  /* If we remove an EOSed element, the bin might go EOS */
+  removed_eos = FALSE;
   for (walk = bin->messages; walk; walk = next) {
     GstMessage *message = (GstMessage *) walk->data;
     GstElement *src = GST_ELEMENT_CAST (GST_MESSAGE_SRC (message));
@@ -1736,6 +1738,10 @@
           remove = TRUE;
         break;
       }
+      case GST_MESSAGE_EOS:
+        if (src == element)
+          removed_eos = TRUE;
+        break;
       default:
         break;
     }
@@ -1798,6 +1804,15 @@
   gst_element_set_clock (element, NULL);
   GST_OBJECT_UNLOCK (bin);
 
+  /* If the element was a sink that had not posted EOS,
+   * it might have been the last one we were waiting for,
+   * so check if it's time to send EOS now */
+  if (is_sink && !removed_eos) {
+    GST_DEBUG_OBJECT (bin,
+        "Removing sink that had not EOSed. Re-checking overall EOS status");
+    bin_do_eos (bin);
+  }
+
   if (clock_message)
     gst_element_post_message (GST_ELEMENT_CAST (bin), clock_message);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstbufferpool.c 
new/gstreamer-1.18.2/gst/gstbufferpool.c
--- old/gstreamer-1.18.1/gst/gstbufferpool.c    2020-10-26 12:08:38.359754000 
+0100
+++ new/gstreamer-1.18.2/gst/gstbufferpool.c    2020-12-06 14:21:20.000000000 
+0100
@@ -817,7 +817,7 @@
 /**
  * gst_buffer_pool_config_set_params:
  * @config: a #GstBufferPool configuration
- * @caps: caps for the buffers
+ * @caps: (nullable): caps for the buffers
  * @size: the size of each buffer, not including prefix and padding
  * @min_buffers: the minimum amount of buffers to allocate.
  * @max_buffers: the maximum amount of buffers to allocate or 0 for unlimited.
@@ -842,8 +842,8 @@
 /**
  * gst_buffer_pool_config_set_allocator:
  * @config: a #GstBufferPool configuration
- * @allocator: (allow-none): a #GstAllocator
- * @params: (allow-none): #GstAllocationParams
+ * @allocator: (nullable): a #GstAllocator
+ * @params: (nullable): #GstAllocationParams
  *
  * Set the @allocator and @params on @config.
  *
@@ -942,7 +942,7 @@
  * Parse an available @config and get the option at @index of the options API
  * array.
  *
- * Returns: a #gchar of the option at @index.
+ * Returns: (nullable): a #gchar of the option at @index.
  */
 const gchar *
 gst_buffer_pool_config_get_option (GstStructure * config, guint index)
@@ -996,10 +996,10 @@
 /**
  * gst_buffer_pool_config_get_params:
  * @config: (transfer none): a #GstBufferPool configuration
- * @caps: (out) (transfer none) (allow-none): the caps of buffers
- * @size: (out) (allow-none): the size of each buffer, not including prefix 
and padding
- * @min_buffers: (out) (allow-none): the minimum amount of buffers to allocate.
- * @max_buffers: (out) (allow-none): the maximum amount of buffers to allocate 
or 0 for unlimited.
+ * @caps: (out) (transfer none) (optional) (nullable): the caps of buffers
+ * @size: (out) (optional): the size of each buffer, not including prefix and 
padding
+ * @min_buffers: (out) (optional): the minimum amount of buffers to allocate.
+ * @max_buffers: (out) (optional): the maximum amount of buffers to allocate 
or 0 for unlimited.
  *
  * Get the configuration values from @config.
  *
@@ -1024,8 +1024,8 @@
 /**
  * gst_buffer_pool_config_get_allocator:
  * @config: (transfer none): a #GstBufferPool configuration
- * @allocator: (out) (allow-none) (transfer none): a #GstAllocator, or %NULL
- * @params: (out) (allow-none): #GstAllocationParams, or %NULL
+ * @allocator: (out) (optional) (nullable) (transfer none): a #GstAllocator, 
or %NULL
+ * @params: (out caller-allocates) (optional): #GstAllocationParams, or %NULL
  *
  * Get the @allocator and @params from @config.
  *
@@ -1057,7 +1057,7 @@
 /**
  * gst_buffer_pool_config_validate_params:
  * @config: (transfer none): a #GstBufferPool configuration
- * @caps: (transfer none): the excepted caps of buffers
+ * @caps: (nullable) (transfer none): the excepted caps of buffers
  * @size: the expected size of each buffer, not including prefix and padding
  * @min_buffers: the expected minimum amount of buffers to allocate.
  * @max_buffers: the expect maximum amount of buffers to allocate or 0 for 
unlimited.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstdatetime.c new/gstreamer-1.18.2/gst/gstdatetime.c
--- old/gstreamer-1.18.1/gst/gstdatetime.c      2020-10-26 12:08:38.363754000 
+0100
+++ new/gstreamer-1.18.2/gst/gstdatetime.c      2020-12-06 14:21:20.000000000 
+0100
@@ -351,7 +351,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new_y (gint year)
@@ -374,7 +374,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new_ym (gint year, gint month)
@@ -401,7 +401,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new_ymd (gint year, gint month, gint day)
@@ -418,7 +418,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new_from_unix_epoch_local_time (gint64 secs)
@@ -438,7 +438,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new_from_unix_epoch_utc (gint64 secs)
@@ -456,7 +456,7 @@
  * Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
  * @usecs. The #GstDateTime is in the local timezone.
  *
- * Returns: (transfer full): a newly created #GstDateTime
+ * Returns: (transfer full) (nullable): a newly created #GstDateTime
  *
  * Since: 1.18
  */
@@ -480,7 +480,7 @@
  * Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
  * @usecs. The #GstDateTime is in UTC.
  *
- * Returns: (transfer full): a newly created #GstDateTime
+ * Returns: (transfer full) (nullable): a newly created #GstDateTime
  *
  * Since: 1.18
  */
@@ -546,7 +546,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new_local_time (gint year, gint month, gint day, gint hour,
@@ -658,7 +658,7 @@
  *
  * Free-function: gst_date_time_unref
  *
- * Return value: (transfer full): the newly created #GstDateTime
+ * Return value: (transfer full) (nullable): the newly created #GstDateTime
  */
 GstDateTime *
 gst_date_time_new (gfloat tzoffset, gint year, gint month, gint day, gint hour,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstdeviceprovider.c 
new/gstreamer-1.18.2/gst/gstdeviceprovider.c
--- old/gstreamer-1.18.1/gst/gstdeviceprovider.c        2020-10-26 
12:08:38.363754000 +0100
+++ new/gstreamer-1.18.2/gst/gstdeviceprovider.c        2020-12-06 
14:21:20.000000000 +0100
@@ -546,7 +546,7 @@
  *
  * Retrieves the factory that was used to create this device provider.
  *
- * Returns: (transfer none): the #GstDeviceProviderFactory used for
+ * Returns: (transfer none) (nullable): the #GstDeviceProviderFactory used for
  *     creating this device provider. no refcounting is needed.
  *
  * Since: 1.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstelement.c new/gstreamer-1.18.2/gst/gstelement.c
--- old/gstreamer-1.18.1/gst/gstelement.c       2020-10-26 12:08:38.363754000 
+0100
+++ new/gstreamer-1.18.2/gst/gstelement.c       2020-12-06 14:21:20.000000000 
+0100
@@ -3631,7 +3631,7 @@
  *
  * MT safe.
  *
- * Returns: (transfer full): A #GstContext or NULL
+ * Returns: (transfer full) (nullable): A #GstContext or NULL
  *
  * Since: 1.8
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstinfo.c new/gstreamer-1.18.2/gst/gstinfo.c
--- old/gstreamer-1.18.1/gst/gstinfo.c  2020-10-26 12:08:38.367754000 +0100
+++ new/gstreamer-1.18.2/gst/gstinfo.c  2020-12-06 14:21:20.000000000 +0100
@@ -1311,7 +1311,7 @@
       color = gst_debug_construct_term_color (gst_debug_category_get_color
           (category));
       clear = "\033[00m";
-      g_sprintf (pidcolor, "\033[3%1dm", pid % 6 + 31);
+      g_sprintf (pidcolor, "\033[%02dm", pid % 6 + 31);
       levelcolor = levelcolormap[level];
 
 #define PRINT_FMT " %s"PID_FMT"%s "PTR_FMT" %s%s%s %s"CAT_FMT"%s %s\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstparse.c new/gstreamer-1.18.2/gst/gstparse.c
--- old/gstreamer-1.18.1/gst/gstparse.c 2020-10-26 12:08:38.367754000 +0100
+++ new/gstreamer-1.18.2/gst/gstparse.c 2020-12-06 14:21:20.000000000 +0100
@@ -218,7 +218,7 @@
  * @error will contain an error message if an erroneous pipeline is specified.
  * An error does not mean that the pipeline could not be constructed.
  *
- * Returns: (transfer floating) (nullable): a new element on success and %NULL
+ * Returns: (transfer floating): a new element on success and %NULL
  * on failure.
  */
 GstElement *
@@ -239,7 +239,7 @@
  * @error will contain an error message if an erroneous pipeline is specified.
  * An error does not mean that the pipeline could not be constructed.
  *
- * Returns: (transfer floating) (nullable): a new element on success; on
+ * Returns: (transfer floating): a new element on success; on
  *   failure, either %NULL or a partially-constructed bin or element will be
  *   returned and @error will be set (unless you passed
  *   #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then %NULL will always be returned
@@ -296,7 +296,7 @@
  * To create a sub-pipeline (bin) for embedding into an existing pipeline
  * use gst_parse_bin_from_description().
  *
- * Returns: (transfer floating) (nullable): a new element on success, %NULL on
+ * Returns: (transfer floating): a new element on success, %NULL on
  *   failure. If more than one toplevel element is specified by the
  *   @pipeline_description, all elements are put into a #GstPipeline, which
  *   than is returned.
@@ -324,7 +324,7 @@
  * To create a sub-pipeline (bin) for embedding into an existing pipeline
  * use gst_parse_bin_from_description_full().
  *
- * Returns: (transfer floating) (nullable): a new element on success, %NULL on
+ * Returns: (transfer floating): a new element on success, %NULL on
  *    failure. If more than one toplevel element is specified by the
  *    @pipeline_description, all elements are put into a #GstPipeline, which
  *    then is returned (unless the GST_PARSE_FLAG_PLACE_IN_BIN flag is set, in
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstplugin.c new/gstreamer-1.18.2/gst/gstplugin.c
--- old/gstreamer-1.18.1/gst/gstplugin.c        2020-10-26 12:08:38.371754200 
+0100
+++ new/gstreamer-1.18.2/gst/gstplugin.c        2020-12-06 14:21:20.000000000 
+0100
@@ -985,7 +985,7 @@
  *
  * get the filename of the plugin
  *
- * Returns: (type filename): the filename of the plugin
+ * Returns: (type filename) (nullable): the filename of the plugin
  */
 const gchar *
 gst_plugin_get_filename (GstPlugin * plugin)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstregistry.c new/gstreamer-1.18.2/gst/gstregistry.c
--- old/gstreamer-1.18.1/gst/gstregistry.c      2020-10-26 12:08:38.371754200 
+0100
+++ new/gstreamer-1.18.2/gst/gstregistry.c      2020-12-06 14:21:20.000000000 
+0100
@@ -1018,7 +1018,7 @@
  *
  * Find a #GstPluginFeature with @name in @registry.
  *
- * Returns: (transfer full): a #GstPluginFeature with its refcount incremented,
+ * Returns: (transfer full) (nullable): a #GstPluginFeature with its refcount 
incremented,
  *     use gst_object_unref() after usage.
  *
  * MT safe.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gststreamcollection.c 
new/gstreamer-1.18.2/gst/gststreamcollection.c
--- old/gstreamer-1.18.1/gst/gststreamcollection.c      2020-10-26 
12:08:38.371754200 +0100
+++ new/gstreamer-1.18.2/gst/gststreamcollection.c      2020-12-06 
14:21:20.000000000 +0100
@@ -204,7 +204,7 @@
  *
  * Returns the upstream id of the @collection.
  *
- * Returns: (transfer none): The upstream id
+ * Returns: (transfer none) (nullable): The upstream id
  *
  * Since: 1.10
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gststreams.c new/gstreamer-1.18.2/gst/gststreams.c
--- old/gstreamer-1.18.1/gst/gststreams.c       2020-10-26 12:08:38.371754200 
+0100
+++ new/gstreamer-1.18.2/gst/gststreams.c       2020-12-06 14:21:20.000000000 
+0100
@@ -543,7 +543,7 @@
  *
  * Get a descriptive string for a given #GstStreamType
  *
- * Returns: (nullable): A string describing the stream type
+ * Returns: A string describing the stream type
  *
  * Since: 1.10
  */
@@ -563,8 +563,7 @@
     case GST_STREAM_TYPE_TEXT:
       return "text";
     default:
-      return NULL;
+      g_return_val_if_reached ("invalid");
+      return "invalid";
   }
-
-  return NULL;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gsttypefind.c new/gstreamer-1.18.2/gst/gsttypefind.c
--- old/gstreamer-1.18.1/gst/gsttypefind.c      2020-10-26 12:08:38.375754000 
+0100
+++ new/gstreamer-1.18.2/gst/gsttypefind.c      2020-12-06 14:21:20.000000000 
+0100
@@ -41,13 +41,13 @@
 
 /**
  * gst_type_find_register:
- * @plugin: (allow-none): A #GstPlugin, or %NULL for a static typefind function
+ * @plugin: (nullable): A #GstPlugin, or %NULL for a static typefind function
  * @name: The name for registering
  * @rank: The rank (or importance) of this typefind function
  * @func: The #GstTypeFindFunction to use
- * @extensions: (allow-none): Optional comma-separated list of extensions
+ * @extensions: (nullable): Optional comma-separated list of extensions
  *     that could belong to this type
- * @possible_caps: Optionally the caps that could be returned when typefinding
+ * @possible_caps: (nullable): Optionally the caps that could be returned when 
typefinding
  *                 succeeds
  * @data: Optional user data. This user data must be available until the plugin
  *        is unloaded.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gsttypefindfactory.c 
new/gstreamer-1.18.2/gst/gsttypefindfactory.c
--- old/gstreamer-1.18.1/gst/gsttypefindfactory.c       2020-10-26 
12:08:38.375754000 +0100
+++ new/gstreamer-1.18.2/gst/gsttypefindfactory.c       2020-12-06 
14:21:20.000000000 +0100
@@ -159,7 +159,7 @@
  *
  * Gets the #GstCaps associated with a typefind factory.
  *
- * Returns: (transfer none): the #GstCaps associated with this factory
+ * Returns: (transfer none) (nullable): the #GstCaps associated with this 
factory
  */
 GstCaps *
 gst_type_find_factory_get_caps (GstTypeFindFactory * factory)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gsturi.c new/gstreamer-1.18.2/gst/gsturi.c
--- old/gstreamer-1.18.1/gst/gsturi.c   2020-10-26 12:08:38.375754000 +0100
+++ new/gstreamer-1.18.2/gst/gsturi.c   2020-12-06 14:21:20.000000000 +0100
@@ -618,7 +618,7 @@
  *
  * Creates an element for handling the given URI.
  *
- * Returns: (transfer floating) (nullable): a new element or %NULL if none
+ * Returns: (transfer floating): a new element or %NULL if none
  * could be created
  */
 GstElement *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gst/gstutils.c new/gstreamer-1.18.2/gst/gstutils.c
--- old/gstreamer-1.18.1/gst/gstutils.c 2020-10-26 12:08:38.375754000 +0100
+++ new/gstreamer-1.18.2/gst/gstutils.c 2020-12-06 14:21:20.000000000 +0100
@@ -3407,7 +3407,7 @@
  * and want them all ghosted, you will have to create the ghost pads
  * yourself).
  *
- * Returns: (transfer floating) (type Gst.Bin) (nullable): a
+ * Returns: (transfer floating) (type Gst.Bin): a
  *   newly-created bin, or %NULL if an error occurred.
  */
 GstElement *
@@ -3438,7 +3438,7 @@
  * and want them all ghosted, you will have to create the ghost pads
  * yourself).
  *
- * Returns: (transfer floating) (type Gst.Element) (nullable): a newly-created
+ * Returns: (transfer floating) (type Gst.Element): a newly-created
  *   element, which is guaranteed to be a bin unless
  *   #GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS was passed, or %NULL if an error
  *   occurred.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/gstreamer.doap new/gstreamer-1.18.2/gstreamer.doap
--- old/gstreamer-1.18.1/gstreamer.doap 2020-10-26 12:08:38.379754000 +0100
+++ new/gstreamer-1.18.2/gstreamer.doap 2020-12-06 14:21:20.000000000 +0100
@@ -40,6 +40,16 @@
 
  <release>
   <Version>
+   <revision>1.18.2</revision>
+   <branch>1.18</branch>
+   <name></name>
+   <created>2020-12-06</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-1.18.2.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.18.1</revision>
    <branch>1.18</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/libs/gst/base/gstaggregator.c 
new/gstreamer-1.18.2/libs/gst/base/gstaggregator.c
--- old/gstreamer-1.18.1/libs/gst/base/gstaggregator.c  2020-10-26 
12:08:38.379754000 +0100
+++ new/gstreamer-1.18.2/libs/gst/base/gstaggregator.c  2020-12-06 
14:21:20.000000000 +0100
@@ -324,7 +324,7 @@
  * a #GstAggregator::samples-selected handler, and can be used to precisely
  * control aggregating parameters for a given set of input samples.
  *
- * Returns: The sample that is about to be aggregated. It may hold a #GstBuffer
+ * Returns: (nullable) (transfer full): The sample that is about to be 
aggregated. It may hold a #GstBuffer
  *   or a #GstBufferList. The contents of its info structure is 
subclass-dependent,
  *   and documented on a subclass basis. The buffers held by the sample are
  *   not writable.
@@ -2908,6 +2908,8 @@
 static gboolean
 gst_aggregator_pad_has_space (GstAggregator * self, GstAggregatorPad * aggpad)
 {
+  guint64 max_time_level;
+
   /* Empty queue always has space */
   if (aggpad->priv->num_buffers == 0 && aggpad->priv->clipped_buffer == NULL)
     return TRUE;
@@ -2921,8 +2923,13 @@
   if (self->priv->latency == 0)
     return FALSE;
 
+  /* On top of our latency, we also want to allow buffering up to the
+   * minimum upstream latency to allow queue free sources with lower then
+   * upstream latency. */
+  max_time_level = self->priv->latency + self->priv->upstream_latency_min;
+
   /* Allow no more buffers than the latency */
-  return (aggpad->priv->time_level <= self->priv->latency);
+  return (aggpad->priv->time_level <= max_time_level);
 }
 
 /* Must be called with the PAD_LOCK held */
@@ -3355,7 +3362,7 @@
  *
  * Steal the ref to the buffer currently queued in @pad.
  *
- * Returns: (transfer full): The buffer in @pad or NULL if no buffer was
+ * Returns: (nullable) (transfer full): The buffer in @pad or NULL if no 
buffer was
  *   queued. You should unref the buffer after usage.
  */
 GstBuffer *
@@ -3433,7 +3440,7 @@
  * gst_aggregator_pad_peek_buffer:
  * @pad: the pad to get buffer from
  *
- * Returns: (transfer full): A reference to the buffer in @pad or
+ * Returns: (nullable) (transfer full): A reference to the buffer in @pad or
  * NULL if no buffer was queued. You should unref the buffer after
  * usage.
  */
@@ -3597,7 +3604,7 @@
  * gst_aggregator_get_buffer_pool:
  * @self: a #GstAggregator
  *
- * Returns: (transfer full): the instance of the #GstBufferPool used
+ * Returns: (transfer full) (nullable): the instance of the #GstBufferPool used
  * by @trans; free it after use it
  */
 GstBufferPool *
@@ -3619,9 +3626,9 @@
 /**
  * gst_aggregator_get_allocator:
  * @self: a #GstAggregator
- * @allocator: (out) (allow-none) (transfer full): the #GstAllocator
+ * @allocator: (out) (optional) (nullable) (transfer full): the #GstAllocator
  * used
- * @params: (out) (allow-none) (transfer full): the
+ * @params: (out caller-allocates) (optional): the
  * #GstAllocationParams of @allocator
  *
  * Lets #GstAggregator sub-classes get the memory @allocator
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/libs/gst/base/gstbasesrc.c 
new/gstreamer-1.18.2/libs/gst/base/gstbasesrc.c
--- old/gstreamer-1.18.1/libs/gst/base/gstbasesrc.c     2020-10-26 
12:08:38.383754000 +0100
+++ new/gstreamer-1.18.2/libs/gst/base/gstbasesrc.c     2020-12-06 
14:21:20.000000000 +0100
@@ -4054,7 +4054,7 @@
  * gst_base_src_get_buffer_pool:
  * @src: a #GstBaseSrc
  *
- * Returns: (transfer full): the instance of the #GstBufferPool used
+ * Returns: (nullable) (transfer full): the instance of the #GstBufferPool used
  * by the src; unref it after usage.
  */
 GstBufferPool *
@@ -4075,10 +4075,9 @@
 /**
  * gst_base_src_get_allocator:
  * @src: a #GstBaseSrc
- * @allocator: (out) (allow-none) (transfer full): the #GstAllocator
+ * @allocator: (out) (optional) (nullable) (transfer full): the #GstAllocator
  * used
- * @params: (out) (allow-none) (transfer full): the
- * #GstAllocationParams of @allocator
+ * @params: (out caller-allocates) (optional): the #GstAllocationParams of 
@allocator
  *
  * Lets #GstBaseSrc sub-classes to know the memory @allocator
  * used by the base class and its @params.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/libs/gst/base/gstbasetransform.c 
new/gstreamer-1.18.2/libs/gst/base/gstbasetransform.c
--- old/gstreamer-1.18.1/libs/gst/base/gstbasetransform.c       2020-10-26 
12:08:38.383754000 +0100
+++ new/gstreamer-1.18.2/libs/gst/base/gstbasetransform.c       2020-12-06 
14:21:20.000000000 +0100
@@ -2847,7 +2847,7 @@
  * gst_base_transform_get_buffer_pool:
  * @trans: a #GstBaseTransform
  *
- * Returns: (transfer full): the instance of the #GstBufferPool used
+ * Returns: (nullable) (transfer full): the instance of the #GstBufferPool used
  * by @trans; free it after use
  */
 GstBufferPool *
@@ -2864,10 +2864,9 @@
 /**
  * gst_base_transform_get_allocator:
  * @trans: a #GstBaseTransform
- * @allocator: (out) (allow-none) (transfer full): the #GstAllocator
+ * @allocator: (out) (optional) (nullable) (transfer full): the #GstAllocator
  * used
- * @params: (out) (allow-none) (transfer full): the
- * #GstAllocationParams of @allocator
+ * @params: (out caller-allocates) (optional): the #GstAllocationParams of 
@allocator
  *
  * Lets #GstBaseTransform sub-classes know the memory @allocator
  * used by the base class and its @params.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/libs/gst/check/gstharness.c 
new/gstreamer-1.18.2/libs/gst/check/gstharness.c
--- old/gstreamer-1.18.1/libs/gst/check/gstharness.c    2020-10-26 
12:08:38.387754200 +0100
+++ new/gstreamer-1.18.2/libs/gst/check/gstharness.c    2020-12-06 
14:21:20.000000000 +0100
@@ -1129,7 +1129,7 @@
   priv->propose_allocation_metas = NULL;
 
   /* if we hold the last ref, set to NULL */
-  if (gst_harness_element_unref (h) == 0) {
+  if (h->element != NULL && gst_harness_element_unref (h) == 0) {
     gboolean state_change;
     GstState state, pending;
     state_change = gst_element_set_state (h->element, GST_STATE_NULL);
@@ -1157,8 +1157,10 @@
   g_ptr_array_unref (priv->stress);
   priv->stress = NULL;
 
-  gst_object_unref (h->element);
-  h->element = NULL;
+  if (h->element) {
+    gst_object_unref (h->element);
+    h->element = NULL;
+  }
 
   gst_object_replace ((GstObject **) & priv->testclock, NULL);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/libs/gst/check/gsttestclock.c 
new/gstreamer-1.18.2/libs/gst/check/gsttestclock.c
--- old/gstreamer-1.18.1/libs/gst/check/gsttestclock.c  2020-10-26 
12:08:38.387754200 +0100
+++ new/gstreamer-1.18.2/libs/gst/check/gsttestclock.c  2020-12-06 
14:21:20.000000000 +0100
@@ -923,7 +923,7 @@
  *
  * MT safe.
  *
- * Returns: (transfer full): a #GstClockID containing the next pending clock
+ * Returns: (transfer full) (nullable): a #GstClockID containing the next 
pending clock
  * notification.
  *
  * Since: 1.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/meson.build new/gstreamer-1.18.2/meson.build
--- old/gstreamer-1.18.1/meson.build    2020-10-26 12:08:38.391754200 +0100
+++ new/gstreamer-1.18.2/meson.build    2020-12-06 14:21:20.000000000 +0100
@@ -1,5 +1,5 @@
 project('gstreamer', 'c',
-  version : '1.18.1',
+  version : '1.18.2',
   meson_version : '>= 0.48',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/plugins/elements/gstclocksync.c 
new/gstreamer-1.18.2/plugins/elements/gstclocksync.c
--- old/gstreamer-1.18.1/plugins/elements/gstclocksync.c        2020-10-26 
12:08:38.391754200 +0100
+++ new/gstreamer-1.18.2/plugins/elements/gstclocksync.c        2020-12-06 
14:21:20.000000000 +0100
@@ -171,7 +171,6 @@
   clocksync->sync = DEFAULT_SYNC;
   g_cond_init (&clocksync->blocked_cond);
 
-  GST_OBJECT_FLAG_SET (clocksync, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
   GST_OBJECT_FLAG_SET (clocksync, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
 }
 
@@ -180,10 +179,31 @@
     const GValue * value, GParamSpec * pspec)
 {
   GstClockSync *clocksync = GST_CLOCKSYNC (object);
+  GstMessage *clock_message = NULL;
+  gboolean sync;
 
   switch (prop_id) {
     case PROP_SYNC:
       clocksync->sync = g_value_get_boolean (value);
+      sync = g_value_get_boolean (value);
+      GST_OBJECT_LOCK (clocksync);
+      if (sync != clocksync->sync) {
+        clocksync->sync = sync;
+        if (sync) {
+          GST_OBJECT_FLAG_SET (clocksync, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+          clock_message =
+              gst_message_new_clock_provide (GST_OBJECT_CAST (clocksync),
+              gst_system_clock_obtain (), TRUE);
+        } else {
+          GST_OBJECT_FLAG_UNSET (clocksync, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+          clock_message =
+              gst_message_new_clock_lost (GST_OBJECT_CAST (clocksync),
+              gst_system_clock_obtain ());
+        }
+      }
+      GST_OBJECT_UNLOCK (clocksync);
+      if (clock_message)
+        gst_element_post_message (GST_ELEMENT_CAST (clocksync), clock_message);
       break;
     case PROP_TS_OFFSET:
       clocksync->ts_offset = g_value_get_int64 (value);
@@ -540,5 +560,10 @@
 static GstClock *
 gst_clocksync_provide_clock (GstElement * element)
 {
+  GstClockSync *clocksync = GST_CLOCKSYNC (element);
+
+  if (!clocksync->sync)
+    return NULL;
+
   return gst_system_clock_obtain ();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/plugins/elements/gstidentity.c 
new/gstreamer-1.18.2/plugins/elements/gstidentity.c
--- old/gstreamer-1.18.1/plugins/elements/gstidentity.c 2020-10-26 
12:08:38.395754000 +0100
+++ new/gstreamer-1.18.2/plugins/elements/gstidentity.c 2020-12-06 
14:21:20.000000000 +0100
@@ -316,7 +316,6 @@
 
   gst_base_transform_set_gap_aware (GST_BASE_TRANSFORM_CAST (identity), TRUE);
 
-  GST_OBJECT_FLAG_SET (identity, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
   GST_OBJECT_FLAG_SET (identity, GST_ELEMENT_FLAG_REQUIRE_CLOCK);
 }
 
@@ -824,6 +823,8 @@
     const GValue * value, GParamSpec * pspec)
 {
   GstIdentity *identity;
+  GstMessage *clock_message = NULL;
+  gboolean sync;
 
   identity = GST_IDENTITY (object);
 
@@ -853,7 +854,25 @@
       identity->datarate = g_value_get_int (value);
       break;
     case PROP_SYNC:
-      identity->sync = g_value_get_boolean (value);
+      sync = g_value_get_boolean (value);
+      GST_OBJECT_LOCK (identity);
+      if (sync != identity->sync) {
+        identity->sync = sync;
+        if (sync) {
+          GST_OBJECT_FLAG_SET (identity, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+          clock_message =
+              gst_message_new_clock_provide (GST_OBJECT_CAST (identity),
+              gst_system_clock_obtain (), TRUE);
+        } else {
+          GST_OBJECT_FLAG_UNSET (identity, GST_ELEMENT_FLAG_PROVIDE_CLOCK);
+          clock_message =
+              gst_message_new_clock_lost (GST_OBJECT_CAST (identity),
+              gst_system_clock_obtain ());
+        }
+      }
+      GST_OBJECT_UNLOCK (identity);
+      if (clock_message)
+        gst_element_post_message (GST_ELEMENT_CAST (identity), clock_message);
       break;
     case PROP_TS_OFFSET:
       identity->ts_offset = g_value_get_int64 (value);
@@ -1131,5 +1150,10 @@
 static GstClock *
 gst_identity_provide_clock (GstElement * element)
 {
+  GstIdentity *identity = GST_IDENTITY (element);
+
+  if (!identity->sync)
+    return NULL;
+
   return gst_system_clock_obtain ();
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/plugins/elements/gstqueue2.c 
new/gstreamer-1.18.2/plugins/elements/gstqueue2.c
--- old/gstreamer-1.18.1/plugins/elements/gstqueue2.c   2020-10-26 
12:08:38.395754000 +0100
+++ new/gstreamer-1.18.2/plugins/elements/gstqueue2.c   2020-12-06 
14:21:20.000000000 +0100
@@ -3490,11 +3490,16 @@
     {
       gboolean pull_mode;
       GstSchedulingFlags flags = 0;
+      GstQuery *upstream;
 
-      if (!gst_pad_peer_query (queue->sinkpad, query))
+      upstream = gst_query_new_scheduling ();
+      if (!gst_pad_peer_query (queue->sinkpad, upstream)) {
+        gst_query_unref (upstream);
         goto peer_failed;
+      }
 
-      gst_query_parse_scheduling (query, &flags, NULL, NULL, NULL);
+      gst_query_parse_scheduling (upstream, &flags, NULL, NULL, NULL);
+      gst_query_unref (upstream);
 
       /* we can operate in pull mode when we are using a tempfile */
       pull_mode = !QUEUE_IS_USING_QUEUE (queue);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/plugins/elements/gsttypefindelement.c 
new/gstreamer-1.18.2/plugins/elements/gsttypefindelement.c
--- old/gstreamer-1.18.1/plugins/elements/gsttypefindelement.c  2020-10-26 
12:08:38.395754000 +0100
+++ new/gstreamer-1.18.2/plugins/elements/gsttypefindelement.c  2020-12-06 
14:21:20.000000000 +0100
@@ -527,6 +527,7 @@
   }
 
   typefind->need_segment = TRUE;
+  typefind->seqnum = gst_event_get_seqnum (event);
 
   /* restart our task since it might have been stopped when we did the
    * flush. */
@@ -1172,9 +1173,12 @@
     GstBuffer *outbuf = NULL;
 
     if (typefind->need_segment) {
+      GstEvent *event;
       typefind->need_segment = FALSE;
-      gst_pad_push_event (typefind->src,
-          gst_event_new_segment (&typefind->segment));
+      event = gst_event_new_segment (&typefind->segment);
+      if (typefind->seqnum != 0)
+        gst_event_set_seqnum (event, typefind->seqnum);
+      gst_pad_push_event (typefind->src, event);
     }
 
     /* Pull 4k blocks and send downstream */
@@ -1253,6 +1257,7 @@
         typefind->need_segment = TRUE;
         typefind->need_stream_start = TRUE;
         typefind->offset = 0;
+        typefind->seqnum = 0;
         res = TRUE;
       } else {
         res = gst_pad_stop_task (pad);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/plugins/elements/gsttypefindelement.h 
new/gstreamer-1.18.2/plugins/elements/gsttypefindelement.h
--- old/gstreamer-1.18.1/plugins/elements/gsttypefindelement.h  2020-10-26 
12:08:38.395754000 +0100
+++ new/gstreamer-1.18.2/plugins/elements/gsttypefindelement.h  2020-12-06 
14:21:20.000000000 +0100
@@ -65,6 +65,7 @@
   gboolean need_stream_start;
   GstSegment segment;
   guint64 offset;
+  guint32 seqnum;
 };
 
 struct _GstTypeFindElementClass {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/tests/check/gst/gstbin.c 
new/gstreamer-1.18.2/tests/check/gst/gstbin.c
--- old/gstreamer-1.18.1/tests/check/gst/gstbin.c       2020-10-26 
12:08:38.411754100 +0100
+++ new/gstreamer-1.18.2/tests/check/gst/gstbin.c       2020-12-06 
14:21:20.000000000 +0100
@@ -286,6 +286,68 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_eos_recheck)
+{
+  GstBus *bus;
+  GstElement *pipeline, *sink1, *sink2;
+  GstMessage *message;
+  GstPad *pad1;
+  GThread *thread1;
+
+  pipeline = gst_pipeline_new ("test_eos_recheck");
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+
+  sink1 = gst_element_factory_make ("fakesink", "sink1");
+  sink2 = gst_element_factory_make ("fakesink", "sink2");
+
+  gst_bin_add_many (GST_BIN (pipeline), sink1, sink2, NULL);
+
+  /* Set async=FALSE so we don't wait for preroll */
+  g_object_set (sink1, "async", FALSE, NULL);
+  g_object_set (sink2, "async", FALSE, NULL);
+
+  pad1 = gst_check_setup_src_pad_by_name (sink1, &srctemplate, "sink");
+
+  gst_pad_set_active (pad1, TRUE);
+
+  fail_if (gst_element_set_state (GST_ELEMENT (pipeline),
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE);
+  fail_unless (gst_element_get_state (GST_ELEMENT (pipeline), NULL, NULL,
+          GST_CLOCK_TIME_NONE) == GST_STATE_CHANGE_SUCCESS);
+
+  /* Send one EOS to sink1 */
+  thread1 = g_thread_new ("thread1", (GThreadFunc) push_one_eos, pad1);
+
+  /* Make sure the EOS message is not sent */
+  message =
+      gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_EOS, 2 * GST_SECOND);
+  fail_if (message != NULL);
+
+  /* Remove sink2 without it EOSing, which should trigger an EOS re-check */
+  gst_object_ref (sink2);
+  gst_bin_remove (GST_BIN (pipeline), sink2);
+  gst_element_set_state (GST_ELEMENT (sink2), GST_STATE_NULL);
+
+  /* Make sure the EOS message is sent then */
+  message =
+      gst_bus_poll (bus, GST_MESSAGE_ERROR | GST_MESSAGE_EOS, 20 * GST_SECOND);
+  fail_if (message == NULL);
+  fail_unless (GST_MESSAGE_TYPE (message) == GST_MESSAGE_EOS);
+  gst_message_unref (message);
+
+  /* Cleanup */
+  g_thread_join (thread1);
+
+  gst_element_set_state (GST_ELEMENT (pipeline), GST_STATE_NULL);
+  gst_pad_set_active (pad1, FALSE);
+  gst_check_teardown_src_pad (sink1);
+  gst_object_unref (sink2);
+  gst_object_unref (bus);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_stream_start)
 {
   GstBus *bus;
@@ -1867,6 +1929,7 @@
   tcase_add_test (tc_chain, test_interface);
   tcase_add_test (tc_chain, test_iterate_all_by_element_factory_name);
   tcase_add_test (tc_chain, test_eos);
+  tcase_add_test (tc_chain, test_eos_recheck);
   tcase_add_test (tc_chain, test_stream_start);
   tcase_add_test (tc_chain, test_children_state_change_order_flagged_sink);
   tcase_add_test (tc_chain, test_children_state_change_order_semi_sink);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude 
config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 
--exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh 
old/gstreamer-1.18.1/tests/check/libs/gstharness.c 
new/gstreamer-1.18.2/tests/check/libs/gstharness.c
--- old/gstreamer-1.18.1/tests/check/libs/gstharness.c  2020-10-26 
12:08:38.415754000 +0100
+++ new/gstreamer-1.18.2/tests/check/libs/gstharness.c  2020-12-06 
14:21:20.000000000 +0100
@@ -25,6 +25,14 @@
 #include <gst/check/gstcheck.h>
 #include <gst/check/gstharness.h>
 
+GST_START_TEST (test_harness_empty)
+{
+  GstHarness *h = gst_harness_new_empty ();
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 static void
 create_destroy_element_harness (gpointer data, gpointer user_data)
 {
@@ -293,6 +301,7 @@
 
   suite_add_tcase (s, tc_chain);
 
+  tcase_add_test (tc_chain, test_harness_empty);
   tcase_add_test (tc_chain, test_harness_element_ref);
   tcase_add_test (tc_chain, test_src_harness);
   tcase_add_test (tc_chain, test_src_harness_no_forwarding);
_______________________________________________
openSUSE Commits mailing list -- [email protected]
To unsubscribe, email [email protected]
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/[email protected]

Reply via email to