Hello community,

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

Package is "gstreamer-plugins-good"

Sat Dec 12 20:27:30 2020 rev:74 rq:854558 version:1.18.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes
    2020-11-15 15:25:48.415413910 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new.2328/gstreamer-plugins-good.changes
  2020-12-12 20:27:38.849557343 +0100
@@ -1,0 +2,17 @@
+Thu Dec 10 07:20:21 UTC 2020 - Bjørn Lie <bjorn....@gmail.com>
+
+- Update to version 1.18.2:
+  + 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
+- Fix the _service file and spec to really use the tarball
+  generated by service.
+
+-------------------------------------------------------------------

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

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

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

Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.BgJr5d/_old  2020-12-12 20:27:39.469557987 +0100
+++ /var/tmp/diff_new_pack.BgJr5d/_new  2020-12-12 20:27:39.473557991 +0100
@@ -29,15 +29,18 @@
 %define ENABLE_EXPERIMENTAL 1
 
 Name:           gstreamer-plugins-good
-Version:        1.18.1
+Version:        1.18.2
 Release:        0
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
 License:        LGPL-2.1-or-later
 Group:          Productivity/Multimedia/Other
-URL:            https://gstreamer.freedesktop.org/
-Source0:        
https://gstreamer.freedesktop.org/src/gst-plugins-good/%{_name}-%{version}.tar.xz
+URL:            https://gstreamer.freedesktop.org
+# Disable tarball source url, use _service
+#Source0:        %%{url}/src/gst-plugins-good/%%{_name}-%%{version}.tar.xz
+Source0:        %{_name}-%{version}.tar.xz
 Source1:        gstreamer-plugins-good.appdata.xml
 Source99:       baselibs.conf
+
 BuildRequires:  Mesa-libGLESv2-devel
 BuildRequires:  Mesa-libGLESv3-devel
 BuildRequires:  gcc-c++

++++++ _service ++++++
--- /var/tmp/diff_new_pack.BgJr5d/_old  2020-12-12 20:27:39.497558016 +0100
+++ /var/tmp/diff_new_pack.BgJr5d/_new  2020-12-12 20:27:39.497558016 +0100
@@ -1,10 +1,15 @@
+<?xml version="1.0"?>
 <services>
   <service name="tar_scm" mode="disabled">
     <param 
name="url">https://gitlab.freedesktop.org/gstreamer/gst-plugins-good.git</param>
     <param name="filename">gst-plugins-good</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">

++++++ gst-plugins-good-1.18.1.tar.xz -> gst-plugins-good-1.18.2.tar.xz ++++++
++++ 1689 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/gst-plugins-good-1.18.1/.gitlab-ci.yml 
new/gst-plugins-good-1.18.2/.gitlab-ci.yml
--- old/gst-plugins-good-1.18.1/.gitlab-ci.yml  1970-01-01 01:00:00.000000000 
+0100
+++ new/gst-plugins-good-1.18.2/.gitlab-ci.yml  2020-12-06 14:22:59.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/gst-plugins-good-1.18.1/ChangeLog new/gst-plugins-good-1.18.2/ChangeLog
--- old/gst-plugins-good-1.18.1/ChangeLog       2020-10-26 12:12:12.620011800 
+0100
+++ new/gst-plugins-good-1.18.2/ChangeLog       2020-12-06 14:22:59.000000000 
+0100
@@ -1,3 +1,180 @@
+=== release 1.18.2 ===
+
+2020-12-06 13:22:58 +0000  Tim-Philipp Müller <t...@centricular.com>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * gst-plugins-good.doap:
+       * meson.build:
+         Release 1.18.2
+
+2020-11-15 11:30:07 +0000  Jose Quaresma <quaresma.j...@gmail.com>
+
+       * sys/rpicamsrc/meson.build:
+         rpicamsrc: add vchostif library as it is required to build successful
+         fix: undefined reference to `vc_gencmd'
+         
/usr/src/debug/gstreamer1.0-plugins-good/1.18.1-r0/build/../gst-plugins-good-1.18.1/sys/rpicamsrc/RaspiCamControl.c:1440:
 undefined reference to `vc_gencmd'
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/829>
+
+2020-11-24 22:11:50 +0530  Nirbheek Chauhan <nirbh...@centricular.com>
+
+       * gst/deinterlace/meson.build:
+       * meson.build:
+         deinterlace: Enable x86 assembly with nasm on MSVC
+         We need to remove x86inc.asm from the list of compiled assembly files
+         because it is not supposed to be compiled separately. It is directly
+         included by yadif.asm, and it exports no symbols.
+         The object file was getting ignored on all platforms except on msvc
+         where it was causing a linker hang when building with debugging
+         enabled because the object file had no debug symbols (or similar).
+         We've seen this before in FFmpeg too, which uses nasm:
+         
https://gitlab.freedesktop.org/gstreamer/meson-ports/ffmpeg/-/merge_requests/46
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/826>
+
+2020-10-29 02:38:16 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/isomp4/gstqtmux.c:
+         qtmux: Chain up when releasing pad, and fix some locking.
+         Release pads by calling up into aggregator so it can do the right
+         things. Don't clean up the pad until after that.
+         Add some missing locks around some accesses to shared pad state.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/800>
+
+2020-11-12 09:32:30 +0800  Bing Song <bing.s...@nxp.com>
+
+       * docs/gst_plugins_cache.json:
+       * sys/v4l2/gstv4l2object.c:
+         v4l2: caps negotiate wrong as interlace feature
+         gst_caps_simplify() will move interlace format before normal video
+         format. It will cause caps negotiate prefer interlaced caps which
+         isn't expected. Seperate normal caps and interlaced caps and then
+         merge it will keep prefer progress video format.
+         Add ARGB/BGRA for interlaced caps.
+         Fixes 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/issues/802
+         Part-of 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/813>
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/821>
+
+2020-11-13 14:58:44 +0200  Vivia Nikolaidou <vi...@ahiru.eu>
+
+       * gst/audioparsers/gstaacparse.c:
+         aacparse: Fix caps change handling
+         In baseparse we set the fixed caps flag on all src pads, therefore the
+         source pad caps query in get_allowed_caps will return the current 
caps.
+         Current caps won't necessarily intersect with the new caps (e.g. 
sample
+         rate change). Replace get_allowed_caps with peer_query_caps.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/819>
+
+2020-11-10 18:18:12 +0000  ChrisDuncanAnyvision <chr...@anyvision.co>
+
+       * gst/rtsp/gstrtspsrc.c:
+       * gst/rtsp/gstrtspsrc.h:
+         rtspsrc: Ensure same group-id used for both TCP/UDP stream-start 
events
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/814>
+
+2020-11-10 16:17:23 +0000  ChrisDuncanAnyvision <chr...@anyvision.co>
+
+       * gst/rtsp/gstrtspsrc.c:
+         rtspsrc: Use consistent URI hashed stream-id for UDP and 
TCP/Interleaved streams
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/814>
+
+2020-11-01 10:30:27 +0200  Sebastian Dröge <sebast...@centricular.com>
+
+       * gst/flv/gstflvmux.c:
+         flvmux: Release pads via GstAggregator
+         See 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/797
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/803>
+
+2020-10-31 12:52:04 +1100  Jan Schmidt <j...@centricular.com>
+
+       * tests/check/elements/splitmuxsrc.c:
+         splitmuxsrc: Fix comment in a test
+         Fix a comment in the splitmuxsrc robust muxing test so it
+         describes the test properly.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-10-31 12:49:08 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Change EOS catching logic.
+         Add a new state for ending the overall stream, and use it to decide
+         whether to pass the final EOS message up the bus instead of dropping
+         it. Fixes a small race that makes the testsuite sometimes not generate
+         the last fragment(s) sometimes because the wrong EOS gets
+         allowed through too early.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-10-31 02:19:07 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Don't use the element state lock
+         Using the element state lock to avoid splitmuxsink shutting
+         down while doing element manipulations can lead to a deadlock on
+         shutdown if a fragment switch happens at exactly the wrong moment.
+         Use a private mutex and a shutdown boolean instead.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-10-30 03:38:15 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Don't busy loop on a non-ready pad.
+         If a pad gets into the check_completed_gop method and then
+         the underlying conditions change on the reference context,
+         things could get stuck in a busy loop when the context should
+         instead jump back out and wait for more data.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-10-30 03:36:51 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/multifile/gstsplitmuxsrc.c:
+         splitmuxsrc: Mark running=false on shutdown.
+         Make sure that any late gst_element_call_async() callbacks
+         know that the elements is shutting down and bail out instead
+         of operating on the element we're trying to stop.
+         Fixes a spurious test failure in elements_splitmuxsrc
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-10-29 02:36:35 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+         splitmuxsink: Forward EOS messages from async fragments.
+         Re-enable forwarding EOS messages from fragments that are completing
+         asynchronously, so that splitmuxsink itself won't go EOS until they
+         are complete. This was disabled to work around a bug in core that
+         is fixed in
+         
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/683
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-09-17 22:56:01 +1000  Jan Schmidt <j...@centricular.com>
+
+       * gst/multifile/gstsplitmuxsink.c:
+       * gst/multifile/gstsplitmuxsink.h:
+         splitmuxsink: Never start a new fragment with no reference buffers
+         If there has been no bytes from the reference stream muxed into
+         the current fragment, then time can't have advanced, there's no
+         GOP... this fragment would be broken or empty, so wait for some
+         data on the reference buffer.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/799>
+
+2020-10-27 23:43:49 +1100  Jan Schmidt <j...@centricular.com>
+
+       * gst/matroska/matroska-mux.c:
+         matroska-mux: Fix sparse stream crash
+         
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/656
+         introduced an invalid memory access when debug is enabled, by casting
+         the wrong pointer to a GstCollectPad. Fixing that showed the original
+         change was incorrect and leads to an infinite loop in the
+         testsuite. This patch fixes both problems.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/793>
+
+2020-10-27 12:34:19 +0000  Tim-Philipp Müller <t...@centricular.com>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
 === release 1.18.1 ===
 
 2020-10-26 11:12:10 +0000  Tim-Philipp Müller <t...@centricular.com>
@@ -5,6 +182,7 @@
        * ChangeLog:
        * NEWS:
        * RELEASE:
+       * docs/gst_plugins_cache.json:
        * gst-plugins-good.doap:
        * meson.build:
          Release 1.18.1
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/gst-plugins-good-1.18.1/NEWS new/gst-plugins-good-1.18.2/NEWS
--- old/gst-plugins-good-1.18.1/NEWS    2020-10-26 12:12:12.620011800 +0100
+++ new/gst-plugins-good-1.18.2/NEWS    2020-12-06 14:22:59.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/gst-plugins-good-1.18.1/RELEASE new/gst-plugins-good-1.18.2/RELEASE
--- old/gst-plugins-good-1.18.1/RELEASE 2020-10-26 12:12:12.620011800 +0100
+++ new/gst-plugins-good-1.18.2/RELEASE 2020-12-06 14:22:59.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-good 1.18.1.
+This is GStreamer gst-plugins-good 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/gst-plugins-good-1.18.1/docs/gst_plugins_cache.json 
new/gst-plugins-good-1.18.2/docs/gst_plugins_cache.json
--- old/gst-plugins-good-1.18.1/docs/gst_plugins_cache.json     2020-10-26 
12:12:12.624011800 +0100
+++ new/gst-plugins-good-1.18.2/docs/gst_plugins_cache.json     2020-12-06 
14:22:59.000000000 +0100
@@ -6595,7 +6595,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.18.1 FLV muxer",
+                        "default": "GStreamer 1.18.2 FLV muxer",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -6607,7 +6607,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer 1.18.1 FLV muxer",
+                        "default": "GStreamer 1.18.2 FLV muxer",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -20636,7 +20636,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer/1.18.1",
+                        "default": "GStreamer/1.18.2",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -22593,7 +22593,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer souphttpsrc 1.18.1 ",
+                        "default": "GStreamer souphttpsrc 1.18.2 ",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
@@ -24203,7 +24203,7 @@
                 "long-name": "Video (video4linux2) Sink",
                 "pad-templates": {
                     "sink": {
-                        "caps": "image/jpeg:\nvideo/mpeg:\n    mpegversion: 
4\n   systemstream: false\nvideo/mpeg:\n    mpegversion: { (int)1, (int)2 
}\nvideo/mpegts:\n   systemstream: true\nvideo/x-bayer:\n         format: { 
bggr, gbrg, grbg, rggb }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\n\nvideo/x-raw(format:Interlaced):\n         format: { RGB16, BGR, BGRA, 
ABGR, xBGR, RGBx, ARGB, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, 
UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, xRGB, 
BGRx, RGB, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: 
alternate\nvideo/x-raw:\n         format: { RGB16, BGR, ABGR, xBGR, RGBx, 
GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, 
NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, RGB, BGRA, BGRx, 
BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n  
    framerate: [ 0/1, 2147483647/1 ]\nvideo/x-sonix:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 3\n         
format: WVC1\n",
+                        "caps": "image/jpeg:\nvideo/mpeg:\n    mpegversion: 
4\n   systemstream: false\nvideo/mpeg:\n    mpegversion: { (int)1, (int)2 
}\nvideo/mpegts:\n   systemstream: true\nvideo/x-bayer:\n         format: { 
bggr, gbrg, grbg, rggb }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-raw:\n         format: { RGB16, BGR, ABGR, xBGR, RGBx, GRAY8, 
GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, 
NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, RGB, BGRA, BGRx, 
BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n  
    framerate: [ 0/1, 2147483647/1 ]\nvideo/x-sonix:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 3\n         
format: WVC1\n\nvideo/x-raw(format:Interlaced):\n         format: { RGB16, BGR, 
ABGR, xBGR, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, 
Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, 
RGB, BGRA, BGRx, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         
height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: 
alternate\n",
                         "direction": "sink",
                         "presence": "always"
                     }
@@ -24511,7 +24511,7 @@
                 "long-name": "Video (video4linux2) Source",
                 "pad-templates": {
                     "src": {
-                        "caps": "image/jpeg:\nvideo/mpeg:\n    mpegversion: 
4\n   systemstream: false\nvideo/mpeg:\n    mpegversion: { (int)1, (int)2 
}\nvideo/mpegts:\n   systemstream: true\nvideo/x-bayer:\n         format: { 
bggr, gbrg, grbg, rggb }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\n\nvideo/x-raw(format:Interlaced):\n         format: { RGB16, BGR, BGRA, 
ABGR, xBGR, RGBx, ARGB, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, 
UYVY, Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, xRGB, 
BGRx, RGB, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: 
alternate\nvideo/x-raw:\n         format: { RGB16, BGR, ABGR, xBGR, RGBx, 
GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, 
NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, RGB, BGRA, BGRx, 
BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n  
    framerate: [ 0/1, 2147483647/1 ]\nvideo/x-sonix:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 3\n         
format: WVC1\n",
+                        "caps": "image/jpeg:\nvideo/mpeg:\n    mpegversion: 
4\n   systemstream: false\nvideo/mpeg:\n    mpegversion: { (int)1, (int)2 
}\nvideo/mpegts:\n   systemstream: true\nvideo/x-bayer:\n         format: { 
bggr, gbrg, grbg, rggb }\n          width: [ 1, 32768 ]\n         height: [ 1, 
32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-dv:\n   systemstream: 
true\nvideo/x-fwht:\nvideo/x-h263:\n        variant: itu\nvideo/x-h264:\n  
stream-format: { (string)byte-stream, (string)avc }\n      alignment: 
au\nvideo/x-h265:\n  stream-format: byte-stream\n      alignment: 
au\nvideo/x-pwc1:\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 
]\n      framerate: [ 0/1, 2147483647/1 ]\nvideo/x-pwc2:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-raw:\n         format: { RGB16, BGR, ABGR, xBGR, RGBx, GRAY8, 
GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, Y42B, Y41B, YUV9, 
NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, RGB, BGRA, BGRx, 
BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         height: [ 1, 32768 ]\n  
    framerate: [ 0/1, 2147483647/1 ]\nvideo/x-sonix:\n          width: [ 1, 
32768 ]\n         height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 
]\nvideo/x-vp8:\nvideo/x-vp9:\nvideo/x-wmv:\n     wmvversion: 3\n         
format: WVC1\n\nvideo/x-raw(format:Interlaced):\n         format: { RGB16, BGR, 
ABGR, xBGR, RGBx, GRAY8, GRAY16_LE, GRAY16_BE, YVU9, YV12, YUY2, YVYU, UYVY, 
Y42B, Y41B, YUV9, NV12_64Z32, NV24, NV61, NV16, NV21, NV12, I420, ARGB, xRGB, 
RGB, BGRA, BGRx, BGR15, RGB15 }\n          width: [ 1, 32768 ]\n         
height: [ 1, 32768 ]\n      framerate: [ 0/1, 2147483647/1 ]\n interlace-mode: 
alternate\n",
                         "direction": "src",
                         "presence": "always"
                     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' --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/gst-plugins-good-1.18.1/gst/audioparsers/gstaacparse.c 
new/gst-plugins-good-1.18.2/gst/audioparsers/gstaacparse.c
--- old/gst-plugins-good-1.18.1/gst/audioparsers/gstaacparse.c  2020-10-26 
12:12:12.648012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/audioparsers/gstaacparse.c  2020-12-06 
14:22:59.000000000 +0100
@@ -173,7 +173,7 @@
 gst_aac_parse_set_src_caps (GstAacParse * aacparse, GstCaps * sink_caps)
 {
   GstStructure *s;
-  GstCaps *src_caps = NULL, *allowed;
+  GstCaps *src_caps = NULL, *peercaps;
   gboolean res = FALSE;
   const gchar *stream_format;
   guint8 codec_data[2];
@@ -226,8 +226,8 @@
   if (stream_format)
     gst_structure_set (s, "stream-format", G_TYPE_STRING, stream_format, NULL);
 
-  allowed = gst_pad_get_allowed_caps (GST_BASE_PARSE (aacparse)->srcpad);
-  if (allowed && !gst_caps_can_intersect (src_caps, allowed)) {
+  peercaps = gst_pad_peer_query_caps (GST_BASE_PARSE_SRC_PAD (aacparse), NULL);
+  if (peercaps && !gst_caps_can_intersect (src_caps, peercaps)) {
     GST_DEBUG_OBJECT (GST_BASE_PARSE (aacparse)->srcpad,
         "Caps can not intersect");
     if (aacparse->header_type == DSPAAC_HEADER_ADTS) {
@@ -235,7 +235,7 @@
           "Input is ADTS, trying raw");
       gst_caps_set_simple (src_caps, "stream-format", G_TYPE_STRING, "raw",
           NULL);
-      if (gst_caps_can_intersect (src_caps, allowed)) {
+      if (gst_caps_can_intersect (src_caps, peercaps)) {
         GstBuffer *codec_data_buffer;
 
         GST_DEBUG_OBJECT (GST_BASE_PARSE (aacparse)->srcpad,
@@ -255,15 +255,15 @@
           "Input is raw, trying ADTS");
       gst_caps_set_simple (src_caps, "stream-format", G_TYPE_STRING, "adts",
           NULL);
-      if (gst_caps_can_intersect (src_caps, allowed)) {
+      if (gst_caps_can_intersect (src_caps, peercaps)) {
         GST_DEBUG_OBJECT (GST_BASE_PARSE (aacparse)->srcpad,
             "Caps can intersect, we will prepend ADTS headers");
         aacparse->output_header_type = DSPAAC_HEADER_ADTS;
       }
     }
   }
-  if (allowed)
-    gst_caps_unref (allowed);
+  if (peercaps)
+    gst_caps_unref (peercaps);
 
   aacparse->last_parsed_channels = 0;
   aacparse->last_parsed_sample_rate = 0;
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/gst-plugins-good-1.18.1/gst/deinterlace/meson.build 
new/gst-plugins-good-1.18.2/gst/deinterlace/meson.build
--- old/gst-plugins-good-1.18.1/gst/deinterlace/meson.build     2020-10-26 
12:12:12.656011800 +0100
+++ new/gst-plugins-good-1.18.2/gst/deinterlace/meson.build     2020-12-06 
14:22:59.000000000 +0100
@@ -65,8 +65,7 @@
   else
     asm_outformat = 'elf64'
   endif
-  asm_x = files('x86/yadif.asm',
-                'x86/x86inc.asm')
+  asm_x = files('x86/yadif.asm')
 
   asm_stackalign_def = '-DSTACK_ALIGNMENT=64'
   asm_incdir = 'x86'
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/gst-plugins-good-1.18.1/gst/flv/gstflvmux.c 
new/gst-plugins-good-1.18.2/gst/flv/gstflvmux.c
--- old/gst-plugins-good-1.18.1/gst/flv/gstflvmux.c     2020-10-26 
12:12:12.664012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/flv/gstflvmux.c     2020-12-06 
14:22:59.000000000 +0100
@@ -781,9 +781,10 @@
 gst_flv_mux_release_pad (GstElement * element, GstPad * pad)
 {
   GstFlvMux *mux = GST_FLV_MUX (element);
-  GstFlvMuxPad *flvpad = GST_FLV_MUX_PAD (pad);
+  GstFlvMuxPad *flvpad = GST_FLV_MUX_PAD (gst_object_ref (pad));
+
+  GST_ELEMENT_CLASS (gst_flv_mux_parent_class)->release_pad (element, pad);
 
-  gst_pad_set_active (pad, FALSE);
   gst_flv_mux_reset_pad (flvpad);
 
   if (flvpad == mux->video_pad) {
@@ -794,7 +795,7 @@
     GST_WARNING_OBJECT (pad, "Pad is not known audio or video pad");
   }
 
-  gst_element_remove_pad (element, pad);
+  gst_object_unref (flvpad);
 }
 
 static GstFlowReturn
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/gst-plugins-good-1.18.1/gst/isomp4/gstqtmux.c 
new/gst-plugins-good-1.18.2/gst/isomp4/gstqtmux.c
--- old/gst-plugins-good-1.18.1/gst/isomp4/gstqtmux.c   2020-10-26 
12:12:12.672011900 +0100
+++ new/gst-plugins-good-1.18.2/gst/isomp4/gstqtmux.c   2020-12-06 
14:22:59.000000000 +0100
@@ -3377,6 +3377,7 @@
         gst_aggregator_update_segment (GST_AGGREGATOR (qtmux), &segment);
       }
 
+      GST_OBJECT_LOCK (qtmux);
       qtmux->current_chunk_size = 0;
       qtmux->current_chunk_duration = 0;
       qtmux->current_chunk_offset = -1;
@@ -3384,7 +3385,6 @@
       qtmux->current_pad = NULL;
       qtmux->longest_chunk = GST_CLOCK_TIME_NONE;
 
-      GST_OBJECT_LOCK (qtmux);
       for (l = GST_ELEMENT_CAST (qtmux)->sinkpads; l; l = l->next) {
         GstQTMuxPad *qtpad = (GstQTMuxPad *) l->data;
 
@@ -6486,18 +6486,25 @@
 gst_qt_mux_release_pad (GstElement * element, GstPad * pad)
 {
   GstQTMux *mux = GST_QT_MUX_CAST (element);
+  GstQTMuxPad *muxpad = GST_QT_MUX_PAD_CAST (pad);
 
   GST_DEBUG_OBJECT (element, "Releasing %s:%s", GST_DEBUG_PAD_NAME (pad));
 
-  gst_element_remove_pad (element, pad);
+  /* Take a ref to the pad so we can clean it up after removing it from the 
element */
+  pad = gst_object_ref (pad);
+
+  /* Do aggregate level cleanup */
+  GST_ELEMENT_CLASS (parent_class)->release_pad (element, pad);
 
+  GST_OBJECT_LOCK (mux);
   if (mux->current_pad && GST_PAD (mux->current_pad) == pad) {
     mux->current_pad = NULL;
     mux->current_chunk_size = 0;
     mux->current_chunk_duration = 0;
   }
 
-  GST_OBJECT_LOCK (mux);
+  gst_qt_mux_pad_reset (muxpad);
+
   if (GST_ELEMENT (mux)->sinkpads == NULL) {
     /* No more outstanding request pads, reset our counters */
     mux->video_pads = 0;
@@ -6505,6 +6512,8 @@
     mux->subtitle_pads = 0;
   }
   GST_OBJECT_UNLOCK (mux);
+
+  gst_object_unref (pad);
 }
 
 static GstAggregatorPad *
@@ -6572,9 +6581,12 @@
   g_free (name);
 
   /* set up pad */
+  GST_OBJECT_LOCK (qtmux);
   gst_qt_mux_pad_reset (qtpad);
   qtpad->trak = atom_trak_new (qtmux->context);
+
   atom_moov_add_trak (qtmux->moov, qtpad->trak);
+  GST_OBJECT_UNLOCK (qtmux);
 
   /* set up pad functions */
   qtpad->set_caps = setcaps_func;
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/gst-plugins-good-1.18.1/gst/matroska/matroska-mux.c 
new/gst-plugins-good-1.18.2/gst/matroska/matroska-mux.c
--- old/gst-plugins-good-1.18.1/gst/matroska/matroska-mux.c     2020-10-26 
12:12:12.680012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/matroska/matroska-mux.c     2020-12-06 
14:22:59.000000000 +0100
@@ -2255,8 +2255,6 @@
 static gboolean
 gst_matroska_mux_subtitle_pad_setcaps (GstPad * pad, GstCaps * caps)
 {
-  GstCollectData *data = (GstCollectData *) (pad);
-
   /* There is now (at least) one such alement (kateenc), and I'm going
      to handle it here and claim it works when it can be piped back
      through GStreamer and VLC */
@@ -2265,6 +2263,7 @@
   GstMatroskaTrackSubtitleContext *scontext;
   GstMatroskaMux *mux;
   GstMatroskaPad *collect_pad;
+  GstCollectData *data;
   const gchar *mimetype;
   GstStructure *structure;
   const GValue *value = NULL;
@@ -2293,6 +2292,8 @@
   /* find context */
   collect_pad = (GstMatroskaPad *) gst_pad_get_element_private (pad);
   g_assert (collect_pad);
+  data = (GstCollectData *) (collect_pad);
+
   context = collect_pad->track;
   g_assert (context);
   g_assert (context->type == GST_MATROSKA_TRACK_TYPE_SUBTITLE);
@@ -2373,10 +2374,8 @@
   GST_COLLECT_PADS_STREAM_LOCK (mux->collect);
   GST_COLLECT_PADS_STATE_UNSET (data, GST_COLLECT_PADS_STATE_LOCKED);
   gst_collect_pads_set_waiting (mux->collect, data, FALSE);
-  GST_COLLECT_PADS_STATE_SET (data, GST_COLLECT_PADS_STATE_LOCKED);
   GST_COLLECT_PADS_STREAM_UNLOCK (mux->collect);
 
-
 exit:
 
   return ret;
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/gst-plugins-good-1.18.1/gst/multifile/gstsplitmuxsink.c 
new/gst-plugins-good-1.18.2/gst/multifile/gstsplitmuxsink.c
--- old/gst-plugins-good-1.18.1/gst/multifile/gstsplitmuxsink.c 2020-10-26 
12:12:12.684012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/multifile/gstsplitmuxsink.c 2020-12-06 
14:22:59.000000000 +0100
@@ -80,6 +80,9 @@
 GST_DEBUG_CATEGORY_STATIC (splitmux_debug);
 #define GST_CAT_DEFAULT splitmux_debug
 
+#define GST_SPLITMUX_STATE_LOCK(s) g_mutex_lock(&(s)->state_lock)
+#define GST_SPLITMUX_STATE_UNLOCK(s) g_mutex_unlock(&(s)->state_lock)
+
 #define GST_SPLITMUX_LOCK(s) g_mutex_lock(&(s)->lock)
 #define GST_SPLITMUX_UNLOCK(s) g_mutex_unlock(&(s)->lock)
 #define GST_SPLITMUX_WAIT_INPUT(s) g_cond_wait (&(s)->input_cond, &(s)->lock)
@@ -577,6 +580,7 @@
 gst_splitmux_sink_init (GstSplitMuxSink * splitmux)
 {
   g_mutex_init (&splitmux->lock);
+  g_mutex_init (&splitmux->state_lock);
   g_cond_init (&splitmux->input_cond);
   g_cond_init (&splitmux->output_cond);
   g_queue_init (&splitmux->out_cmd_q);
@@ -650,6 +654,7 @@
   g_cond_clear (&splitmux->input_cond);
   g_cond_clear (&splitmux->output_cond);
   g_mutex_clear (&splitmux->lock);
+  g_mutex_clear (&splitmux->state_lock);
   g_queue_foreach (&splitmux->out_cmd_q, (GFunc) out_cmd_buf_free, NULL);
   g_queue_clear (&splitmux->out_cmd_q);
 
@@ -1178,16 +1183,15 @@
   helper->pad = sinkpad;        /* Takes the reference */
 
   ctx->out_eos_async_done = TRUE;
-  /* HACK: Here, we explicitly unset the SINK flag on the target sink element
-   * that's about to be asynchronously disposed, so that it no longer
-   * participates in GstBin EOS logic. This fixes a race where if
-   * splitmuxsink really reaches EOS before an asynchronous background
-   * element has finished, then the bin won't actually send EOS to the
-   * pipeline. Even after finishing and removing the old element, the
-   * bin doesn't re-check EOS status on removing a SINK element. This
-   * should be fixed in core, making this hack unnecessary. */
-  GST_OBJECT_FLAG_UNSET (splitmux->active_sink, GST_ELEMENT_FLAG_SINK);
 
+  /* There used to be a bug here, where we had to explicitly remove
+   * the SINK flag so that GstBin would ignore it for EOS purposes.
+   * That fixed a race where if splitmuxsink really reaches EOS
+   * before an asynchronous background element has finished, then
+   * the bin wouldn't actually send EOS to the pipeline. Even after
+   * finishing and removing the old element, the bin didn't re-check
+   * EOS status on removing a SINK element. That bug was fixed
+   * in core. */
   GST_DEBUG_OBJECT (splitmux, "scheduled EOS to pad %" GST_PTR_FORMAT " ctx 
%p",
       sinkpad, ctx);
 
@@ -1263,6 +1267,7 @@
           continue;
 
         case SPLITMUX_OUTPUT_STATE_ENDING_FILE:
+        case SPLITMUX_OUTPUT_STATE_ENDING_STREAM:
           /* We've reached the max out running_time to get here, so end this 
file now */
           if (ctx->out_eos == FALSE) {
             if (splitmux->async_finalize) {
@@ -1586,6 +1591,12 @@
         if (splitmux->output_state == SPLITMUX_OUTPUT_STATE_STOPPED)
           goto beach;
         ctx->out_eos = TRUE;
+
+        if (ctx == splitmux->reference_ctx) {
+          splitmux->output_state = SPLITMUX_OUTPUT_STATE_ENDING_STREAM;
+          GST_SPLITMUX_BROADCAST_OUTPUT (splitmux);
+        }
+
         GST_INFO_OBJECT (splitmux,
             "Have EOS event at pad %" GST_PTR_FORMAT " ctx %p", pad, ctx);
         break;
@@ -1900,7 +1911,14 @@
   sink = gst_object_ref (splitmux->active_sink);
 
   GST_SPLITMUX_UNLOCK (splitmux);
-  GST_STATE_LOCK (splitmux);
+  GST_SPLITMUX_STATE_LOCK (splitmux);
+
+  if (splitmux->shutdown) {
+    GST_DEBUG_OBJECT (splitmux,
+        "Shutdown requested. Aborting fragment switch.");
+    GST_SPLITMUX_STATE_UNLOCK (splitmux);
+    return;
+  }
 
   if (splitmux->async_finalize) {
     if (splitmux->muxed_out_bytes > 0
@@ -2013,7 +2031,7 @@
   gst_object_unref (muxer);
 
   GST_SPLITMUX_LOCK (splitmux);
-  GST_STATE_UNLOCK (splitmux);
+  GST_SPLITMUX_STATE_UNLOCK (splitmux);
   splitmux->switching_fragment = FALSE;
   do_async_done (splitmux);
 
@@ -2031,7 +2049,7 @@
   return;
 
 fail:
-  GST_STATE_UNLOCK (splitmux);
+  GST_SPLITMUX_STATE_UNLOCK (splitmux);
   GST_ELEMENT_ERROR (splitmux, RESOURCE, SETTINGS,
       ("Could not create the new muxer/sink"), NULL);
 }
@@ -2084,7 +2102,12 @@
           GST_SPLITMUX_UNLOCK (splitmux);
           return;
         }
-      } else if (splitmux->output_state == SPLITMUX_OUTPUT_STATE_ENDING_FILE) {
+      } else if (splitmux->output_state == 
SPLITMUX_OUTPUT_STATE_ENDING_STREAM) {
+        GST_DEBUG_OBJECT (splitmux,
+            "Passing EOS message. Output state %d max_out_running_time %"
+            GST_STIME_FORMAT, splitmux->output_state,
+            GST_STIME_ARGS (splitmux->max_out_running_time));
+      } else {
         GST_DEBUG_OBJECT (splitmux, "Caught EOS at end of fragment, dropping");
         splitmux->output_state = SPLITMUX_OUTPUT_STATE_START_NEXT_FILE;
         GST_SPLITMUX_BROADCAST_OUTPUT (splitmux);
@@ -2092,11 +2115,6 @@
         gst_message_unref (message);
         GST_SPLITMUX_UNLOCK (splitmux);
         return;
-      } else {
-        GST_DEBUG_OBJECT (splitmux,
-            "Passing EOS message. Output state %d max_out_running_time %"
-            GST_STIME_FORMAT, splitmux->output_state,
-            GST_STIME_ARGS (splitmux->max_out_running_time));
       }
       GST_SPLITMUX_UNLOCK (splitmux);
       break;
@@ -2186,8 +2204,10 @@
       && splitmux->muxer_has_reserved_props;
   GST_OBJECT_UNLOCK (splitmux);
 
-  /* Have we muxed anything into the new file at all? */
-  if (splitmux->fragment_total_bytes <= 0)
+  /* Have we muxed at least one thing from the reference
+   * stream into the file? If not, no other streams can have
+   * either */
+  if (splitmux->fragment_reference_bytes <= 0)
     return FALSE;
 
   /* User told us to split now */
@@ -2361,6 +2381,7 @@
     new_out_ts = splitmux->reference_ctx->in_running_time;
     splitmux->fragment_start_time = splitmux->gop_start_time;
     splitmux->fragment_total_bytes = 0;
+    splitmux->fragment_reference_bytes = 0;
 
     if (splitmux->tc_interval) {
       video_time_code_replace (&splitmux->fragment_start_tc,
@@ -2501,16 +2522,19 @@
     if (ctx->in_eos)
       return;
 
-    /* Some pad is not yet ready, or GOP is being pushed
-     * either way, sleep and wait to get woken */
-
     if (splitmux->input_state == SPLITMUX_INPUT_STATE_WAITING_GOP_COLLECT &&
         !ctx->flushing &&
         (ctx->in_running_time >= splitmux->max_in_running_time) &&
         (splitmux->max_in_running_time != GST_CLOCK_STIME_NONE)) {
+      /* Some pad is not yet ready, or GOP is being pushed
+       * either way, sleep and wait to get woken */
       GST_LOG_OBJECT (splitmux, "Sleeping for GOP collection (ctx %p)", ctx);
       GST_SPLITMUX_WAIT_INPUT (splitmux);
       GST_LOG_OBJECT (splitmux, "Done waiting for complete GOP (ctx %p)", ctx);
+    } else {
+      /* This pad is not ready or the state changed - break out and get another
+       * buffer / event */
+      break;
     }
   } while (splitmux->input_state == SPLITMUX_INPUT_STATE_WAITING_GOP_COLLECT);
 }
@@ -2800,6 +2824,9 @@
 
   /* Update total input byte counter for overflow detect */
   splitmux->gop_total_bytes += buf_info->buf_size;
+  if (ctx->is_reference) {
+    splitmux->fragment_reference_bytes += buf_info->buf_size;
+  }
 
   /* Now add this buffer to the queue just before returning */
   g_queue_push_head (&ctx->queued_bufs, buf_info);
@@ -3494,6 +3521,7 @@
       GST_CLOCK_STIME_NONE;
   splitmux->max_out_running_time = 0;
   splitmux->fragment_total_bytes = 0;
+  splitmux->fragment_reference_bytes = 0;
   splitmux->gop_total_bytes = 0;
   splitmux->muxed_out_bytes = 0;
   splitmux->ready_for_output = FALSE;
@@ -3540,12 +3568,21 @@
       splitmux->output_state = SPLITMUX_OUTPUT_STATE_START_NEXT_FILE;
 
       GST_SPLITMUX_UNLOCK (splitmux);
+
+      GST_SPLITMUX_STATE_LOCK (splitmux);
+      splitmux->shutdown = FALSE;
+      GST_SPLITMUX_STATE_UNLOCK (splitmux);
       break;
     }
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       g_atomic_int_set (&(splitmux->split_requested), FALSE);
       g_atomic_int_set (&(splitmux->do_split_next_gop), FALSE);
+
     case GST_STATE_CHANGE_READY_TO_NULL:
+      GST_SPLITMUX_STATE_LOCK (splitmux);
+      splitmux->shutdown = TRUE;
+      GST_SPLITMUX_STATE_UNLOCK (splitmux);
+
       GST_SPLITMUX_LOCK (splitmux);
       gst_splitmux_sink_reset (splitmux);
       splitmux->output_state = SPLITMUX_OUTPUT_STATE_STOPPED;
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/gst-plugins-good-1.18.1/gst/multifile/gstsplitmuxsink.h 
new/gst-plugins-good-1.18.2/gst/multifile/gstsplitmuxsink.h
--- old/gst-plugins-good-1.18.1/gst/multifile/gstsplitmuxsink.h 2020-10-26 
12:12:12.684012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/multifile/gstsplitmuxsink.h 2020-12-06 
14:22:59.000000000 +0100
@@ -50,6 +50,7 @@
   SPLITMUX_OUTPUT_STATE_AWAITING_COMMAND,       /* Waiting first command 
packet from input */
   SPLITMUX_OUTPUT_STATE_OUTPUT_GOP,     /* Outputting a collected GOP */
   SPLITMUX_OUTPUT_STATE_ENDING_FILE,    /* Finishing the current fragment */
+  SPLITMUX_OUTPUT_STATE_ENDING_STREAM,  /* Finishing up the entire stream due 
to input EOS */
   SPLITMUX_OUTPUT_STATE_START_NEXT_FILE /* Restarting after ENDING_FILE */
 } SplitMuxOutputState;
 
@@ -105,7 +106,11 @@
 {
   GstBin parent;
 
+  GMutex state_lock;
+  gboolean shutdown;
+
   GMutex lock;
+
   GCond input_cond;
   GCond output_cond;
 
@@ -144,6 +149,10 @@
   /* Number of bytes sent to the
    * current fragment */
   guint64 fragment_total_bytes;
+  /* Number of bytes for the reference
+   * stream in this fragment */
+  guint64 fragment_reference_bytes;
+
   /* Number of bytes we've collected into
    * the GOP that's being collected */
   guint64 gop_total_bytes;
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/gst-plugins-good-1.18.1/gst/multifile/gstsplitmuxsrc.c 
new/gst-plugins-good-1.18.2/gst/multifile/gstsplitmuxsrc.c
--- old/gst-plugins-good-1.18.1/gst/multifile/gstsplitmuxsrc.c  2020-10-26 
12:12:12.684012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/multifile/gstsplitmuxsrc.c  2020-12-06 
14:22:59.000000000 +0100
@@ -993,7 +993,7 @@
   SPLITMUX_SRC_LOCK (splitmux);
   if (!splitmux->running)
     goto out;
-
+  splitmux->running = FALSE;
   GST_DEBUG_OBJECT (splitmux, "Stopping");
 
   SPLITMUX_SRC_UNLOCK (splitmux);
@@ -1028,7 +1028,6 @@
   splitmux->num_parts = 0;
   splitmux->num_prepared_parts = 0;
   splitmux->num_created_parts = 0;
-  splitmux->running = FALSE;
   splitmux->total_duration = GST_CLOCK_TIME_NONE;
   /* Reset playback segment */
   gst_segment_init (&splitmux->play_segment, GST_FORMAT_TIME);
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/gst-plugins-good-1.18.1/gst/rtsp/gstrtspsrc.c 
new/gst-plugins-good-1.18.2/gst/rtsp/gstrtspsrc.c
--- old/gst-plugins-good-1.18.1/gst/rtsp/gstrtspsrc.c   2020-10-26 
12:12:12.704012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/rtsp/gstrtspsrc.c   2020-12-06 
14:22:59.000000000 +0100
@@ -1400,6 +1400,7 @@
   src->onvif_rate_control = DEFAULT_ONVIF_RATE_CONTROL;
   src->is_live = DEFAULT_IS_LIVE;
   src->seek_seqnum = GST_SEQNUM_INVALID;
+  src->group_id = GST_GROUP_ID_INVALID;
 
   /* get a list of all extensions */
   src->extensions = gst_rtsp_ext_list_get ();
@@ -1423,6 +1424,8 @@
   g_mutex_init (&src->conninfo.recv_lock);
   g_cond_init (&src->cmd_cond);
 
+  g_mutex_init (&src->group_lock);
+
   GST_OBJECT_FLAG_SET (src, GST_ELEMENT_FLAG_SOURCE);
   gst_bin_set_suppressed_flags (GST_BIN (src),
       GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK);
@@ -1478,6 +1481,8 @@
   g_mutex_clear (&rtspsrc->conninfo.recv_lock);
   g_cond_clear (&rtspsrc->cmd_cond);
 
+  g_mutex_clear (&rtspsrc->group_lock);
+
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
 
@@ -2987,6 +2992,19 @@
   return res;
 }
 
+static void
+gst_rtspsrc_stream_start_event_add_group_id (GstRTSPSrc * src, GstEvent * 
event)
+{
+  g_mutex_lock (&src->group_lock);
+
+  if (src->group_id == GST_GROUP_ID_INVALID)
+    src->group_id = gst_util_group_id_next ();
+
+  g_mutex_unlock (&src->group_lock);
+
+  gst_event_set_group_id (event, src->group_id);
+}
+
 static gboolean
 gst_rtspsrc_handle_src_sink_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
@@ -2998,14 +3016,22 @@
 
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_STREAM_START:{
-      const gchar *upstream_id;
+      GChecksum *cs;
+      gchar *uri;
       gchar *stream_id;
 
-      gst_event_parse_stream_start (event, &upstream_id);
-      stream_id = g_strdup_printf ("%s/%s", upstream_id, stream->stream_id);
+      cs = g_checksum_new (G_CHECKSUM_SHA256);
+      uri = self->conninfo.location;
+      g_checksum_update (cs, (const guchar *) uri, strlen (uri));
 
+      stream_id =
+          g_strdup_printf ("%s/%s", g_checksum_get_string (cs),
+          stream->stream_id);
+
+      g_checksum_free (cs);
       gst_event_unref (event);
       event = gst_event_new_stream_start (stream_id);
+      gst_rtspsrc_stream_start_event_add_group_id (self, event);
       g_free (stream_id);
       break;
     }
@@ -5388,7 +5414,6 @@
     GChecksum *cs;
     gchar *uri;
     GList *streams;
-    guint group_id = gst_util_group_id_next ();
 
     /* generate an SHA256 sum of the URI */
     cs = g_checksum_new (G_CHECKSUM_SHA256);
@@ -5406,8 +5431,10 @@
 
       stream_id =
           g_strdup_printf ("%s/%d", g_checksum_get_string (cs), ostream->id);
+
       event = gst_event_new_stream_start (stream_id);
-      gst_event_set_group_id (event, group_id);
+
+      gst_rtspsrc_stream_start_event_add_group_id (src, event);
 
       g_free (stream_id);
       gst_rtspsrc_stream_push_event (src, ostream, event);
@@ -9168,6 +9195,7 @@
       }
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      rtspsrc->group_id = GST_GROUP_ID_INVALID;
       break;
     default:
       break;
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/gst-plugins-good-1.18.1/gst/rtsp/gstrtspsrc.h 
new/gst-plugins-good-1.18.2/gst/rtsp/gstrtspsrc.h
--- old/gst-plugins-good-1.18.1/gst/rtsp/gstrtspsrc.h   2020-10-26 
12:12:12.704012000 +0100
+++ new/gst-plugins-good-1.18.2/gst/rtsp/gstrtspsrc.h   2020-12-06 
14:22:59.000000000 +0100
@@ -324,6 +324,9 @@
   GstRTSPVersion version;
 
   GstEvent *initial_seek;
+
+  guint group_id;
+  GMutex group_lock;
 };
 
 struct _GstRTSPSrcClass {
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/gst-plugins-good-1.18.1/gst-plugins-good.doap 
new/gst-plugins-good-1.18.2/gst-plugins-good.doap
--- old/gst-plugins-good-1.18.1/gst-plugins-good.doap   2020-10-26 
12:12:12.644011700 +0100
+++ new/gst-plugins-good-1.18.2/gst-plugins-good.doap   2020-12-06 
14:22:59.000000000 +0100
@@ -34,6 +34,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/gst-plugins-good/gst-plugins-good-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/gst-plugins-good-1.18.1/meson.build new/gst-plugins-good-1.18.2/meson.build
--- old/gst-plugins-good-1.18.1/meson.build     2020-10-26 12:12:12.712011800 
+0100
+++ new/gst-plugins-good-1.18.2/meson.build     2020-12-06 14:22:59.000000000 
+0100
@@ -1,5 +1,5 @@
 project('gst-plugins-good', 'c',
-  version : '1.18.1',
+  version : '1.18.2',
   meson_version : '>= 0.48',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
@@ -363,9 +363,7 @@
 # FIXME: nasm path needs testing on non-Linux, esp. Windows
 host_cpu = host_machine.cpu_family()
 if host_cpu == 'x86_64'
-  if cc.get_id() == 'msvc'
-    message('Nasm disabled on MSVC')
-  elif cc.get_define('__ILP32__') == '1'
+  if cc.get_define('__ILP32__') == '1'
     message('Nasm disabled on x32')
   else
     asm_option = get_option('asm')
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/gst-plugins-good-1.18.1/sys/rpicamsrc/meson.build 
new/gst-plugins-good-1.18.2/sys/rpicamsrc/meson.build
--- old/gst-plugins-good-1.18.1/sys/rpicamsrc/meson.build       2020-10-26 
12:12:12.724012000 +0100
+++ new/gst-plugins-good-1.18.2/sys/rpicamsrc/meson.build       2020-12-06 
14:22:59.000000000 +0100
@@ -34,7 +34,7 @@
 endif
 
 mmal_deps = []
-foreach rpi_lib : ['mmal_core', 'mmal_util', 'mmal_vc_client', 'vcos', 
'bcm_host']
+foreach rpi_lib : ['mmal_core', 'mmal_util', 'mmal_vc_client', 'vcos', 
'vchostif', 'bcm_host']
   l = cc.find_library(rpi_lib, dirs: rpi_lib_path, required: false)
   if not l.found()
     if get_option('rpicamsrc').enabled()
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/gst-plugins-good-1.18.1/sys/v4l2/gstv4l2object.c 
new/gst-plugins-good-1.18.2/sys/v4l2/gstv4l2object.c
--- old/gst-plugins-good-1.18.1/sys/v4l2/gstv4l2object.c        2020-10-26 
12:12:12.728011800 +0100
+++ new/gst-plugins-good-1.18.2/sys/v4l2/gstv4l2object.c        2020-12-06 
14:22:59.000000000 +0100
@@ -1644,10 +1644,11 @@
 gst_v4l2_object_get_caps_helper (GstV4L2FormatFlags flags)
 {
   GstStructure *structure;
-  GstCaps *caps;
+  GstCaps *caps, *caps_interlaced;
   guint i;
 
   caps = gst_caps_new_empty ();
+  caps_interlaced = gst_caps_new_empty ();
   for (i = 0; i < GST_V4L2_FORMAT_COUNT; i++) {
 
     if ((gst_v4l2_formats[i].flags & flags) == 0)
@@ -1680,14 +1681,19 @@
 
       gst_caps_append_structure (caps, structure);
 
-      if (alt_s)
+      if (alt_s) {
         gst_caps_append_structure (caps, alt_s);
+        add_alternate_variant (NULL, caps_interlaced, alt_s);
+      }
 
-      add_alternate_variant (NULL, caps, structure);
+      add_alternate_variant (NULL, caps_interlaced, structure);
     }
   }
 
-  return gst_caps_simplify (caps);
+  caps = gst_caps_simplify (caps);
+  caps_interlaced = gst_caps_simplify (caps_interlaced);
+
+  return gst_caps_merge (caps, caps_interlaced);
 }
 
 GstCaps *
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/gst-plugins-good-1.18.1/tests/check/elements/splitmuxsrc.c 
new/gst-plugins-good-1.18.2/tests/check/elements/splitmuxsrc.c
--- old/gst-plugins-good-1.18.1/tests/check/elements/splitmuxsrc.c      
2020-10-26 12:12:12.740012000 +0100
+++ new/gst-plugins-good-1.18.2/tests/check/elements/splitmuxsrc.c      
2020-12-06 14:22:59.000000000 +0100
@@ -635,9 +635,9 @@
   gchar *dest_pattern;
   gchar *in_pattern;
 
-  /* This test creates a new file only by changing the caps, which
-   * qtmux will reject (for now - if qtmux starts supporting caps
-   * changes, this test will break and need fixing/disabling */
+  /* This test checks that splitmuxsink can support the
+   * qtmux robust muxing mode, and switch to a new fragment if the
+   * file index is about to overflow */
   pipeline =
       gst_parse_launch
       ("videotestsrc num-buffers=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/gst-plugins-good-1.18.1/tests/examples/qt/qmlsink-dynamically-added/.gitignore
 
new/gst-plugins-good-1.18.2/tests/examples/qt/qmlsink-dynamically-added/.gitignore
--- 
old/gst-plugins-good-1.18.1/tests/examples/qt/qmlsink-dynamically-added/.gitignore
  2020-10-26 12:12:12.744011900 +0100
+++ 
new/gst-plugins-good-1.18.2/tests/examples/qt/qmlsink-dynamically-added/.gitignore
  1970-01-01 01:00:00.000000000 +0100
@@ -1,4 +0,0 @@
-deployment.pri
-play
-qrc_qmlsink.cpp
-*.o
_______________________________________________
openSUSE Commits mailing list -- commit@lists.opensuse.org
To unsubscribe, email commit-le...@lists.opensuse.org
List Netiquette: https://en.opensuse.org/openSUSE:Mailing_list_netiquette
List Archives: 
https://lists.opensuse.org/archives/list/commit@lists.opensuse.org

Reply via email to