Hello community,

here is the log from the commit of package gstreamer-rtsp-server for 
openSUSE:Factory checked in at 2020-12-13 17:29:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-rtsp-server (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-rtsp-server.new.2328 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-rtsp-server"

Sun Dec 13 17:29:34 2020 rev:27 rq:854563 version:1.18.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-rtsp-server/gstreamer-rtsp-server.changes  
    2020-11-29 12:25:57.985852780 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-rtsp-server.new.2328/gstreamer-rtsp-server.changes
    2020-12-13 17:30:04.384369829 +0100
@@ -1,0 +2,19 @@
+Thu Dec 10 08:41:39 UTC 2020 - Bjørn Lie <[email protected]>
+
+- Update to version 1.18.2:
+  + 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.
+    - Use guint64 for setting the size-time property on rtpstorage,
+      fixes potential crashes or memory corruption.
+    - Get rates only on sender streams, fixing issue with ONVIF
+      audio backchannel streams
+    - Plug memory leak
+- Fix the _service file and spec to really use the tarball
+  generated by service.
+
+-------------------------------------------------------------------

Old:
----
  gst-rtsp-server-1.18.1.tar.xz

New:
----
  gst-rtsp-server-1.18.2.tar.xz

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

Other differences:
------------------
++++++ gstreamer-rtsp-server.spec ++++++
--- /var/tmp/diff_new_pack.0peIDt/_old  2020-12-13 17:30:05.108370563 +0100
+++ /var/tmp/diff_new_pack.0peIDt/_new  2020-12-13 17:30:05.112370568 +0100
@@ -18,15 +18,19 @@
 
 %define gstreamer_req_version %(echo %{version} | sed -e "s/+.*//")
 %define _name gst-rtsp-server
+
 Name:           gstreamer-rtsp-server
-Version:        1.18.1
+Version:        1.18.2
 Release:        0
 Summary:        GStreamer-based RTSP server library
 License:        LGPL-2.0-or-later
 Group:          Productivity/Multimedia/Other
 URL:            https://gstreamer.freedesktop.org
-Source0:        %{url}/src/gst-rtsp-server/%{_name}-%{version}.tar.xz
+# Disable tarball source url, use _service
+#Source0:        %%{url}/src/gst-rtsp-server/%%{_name}-%%{version}.tar.xz
+Source0:        %{_name}-%{version}.tar.xz
 Source99:       gstreamer-rtsp-server-rpmlintrc
+
 BuildRequires:  hotdoc
 BuildRequires:  meson >= 0.47
 BuildRequires:  pkgconfig

++++++ _service ++++++
--- /var/tmp/diff_new_pack.0peIDt/_old  2020-12-13 17:30:05.156370612 +0100
+++ /var/tmp/diff_new_pack.0peIDt/_new  2020-12-13 17:30:05.156370612 +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-rtsp-server.git</param>
     <param name="filename">gst-rtsp-server</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-rtsp-server-1.18.1.tar.xz -> gst-rtsp-server-1.18.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-rtsp-server-1.18.1/.gitlab-ci.yml 
new/gst-rtsp-server-1.18.2/.gitlab-ci.yml
--- old/gst-rtsp-server-1.18.1/.gitlab-ci.yml   1970-01-01 01:00:00.000000000 
+0100
+++ new/gst-rtsp-server-1.18.2/.gitlab-ci.yml   2020-12-06 14:24:47.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' old/gst-rtsp-server-1.18.1/ChangeLog 
new/gst-rtsp-server-1.18.2/ChangeLog
--- old/gst-rtsp-server-1.18.1/ChangeLog        2020-10-26 12:15:28.844300300 
+0100
+++ new/gst-rtsp-server-1.18.2/ChangeLog        2020-12-06 14:24:47.000000000 
+0100
@@ -1,3 +1,81 @@
+=== release 1.18.2 ===
+
+2020-12-06 13:24:47 +0000  Tim-Philipp Müller <[email protected]>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * gst-rtsp-server.doap:
+       * meson.build:
+         Release 1.18.2
+
+2020-11-18 20:36:50 +0100  Mathieu Duponchelle <[email protected]>
+
+       * gst/rtsp-server/rtsp-stream.c:
+         rtsp-stream: collect a clock_rate when blocking
+         This lets us provide a clock_rate in a fashion similar to the
+         other code paths in get_rtpinfo()
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/175>
+
+2020-11-03 16:56:28 +0100  David Phung <[email protected]>
+
+       * gst/rtsp-server/rtsp-media.c:
+       * gst/rtsp-server/rtsp-stream.c:
+         rtsp-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, we will
+         ignore GstRTSPStreamBlocking messages from incomplete streams. When
+         there are no complete streams (during DESCRIBE), we will listen to all
+         streams.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/173>
+
+2020-10-28 21:48:06 +0100  Kristofer Björkström <[email protected]>
+
+       * tests/check/gst/media.c:
+       * tests/check/meson.build:
+       * tests/files/test.avi:
+         media test: Add test for seeking one active stream with a demuxer
+         Add another seek_one_active_stream test but with a demuxer. The 
demuxer
+         will flush both streams in opposed to the existing test which only
+         flushes the active stream. This will help exposing problems with the
+         prerolling process after a flushing seek.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/173>
+
+2020-11-16 10:34:41 +0200  Sebastian Dröge <[email protected]>
+
+       * gst/rtsp-server/rtsp-media.c:
+         rtsp-media: Use guint64 for setting the size-time property on 
rtpstorage
+         Otherwise this will cause memory corruption as the property expects a 
64
+         bit integer.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/172>
+
+2020-09-28 22:03:47 +0200  David Phung <[email protected]>
+
+       * gst/rtsp-server/rtsp-media.c:
+         rtsp-media: Plug memory leak
+         The get-storage signal of rtpbin increases the ref count of the 
storage.
+         So we have to unref it after usage.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/171>
+
+2020-09-11 15:46:41 +0200  Guiqin Zou <[email protected]>
+
+       * gst/rtsp-server/rtsp-media.c:
+         rtsp-media: Get rates only on sender streams
+         When play a media with both sender and receiver stream, like ONVIF
+         back channel audio in, gst_rtsp_media_get_rates call
+         gst_rtsp_stream_get_rates for each stream to set the rates. But
+         gst_rtsp_stream_get_rates return false for the receiver steam, which
+         lead a g_assert crash.
+         Instead to get rates on all streams, now just get rates on sender
+         streams.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/-/merge_requests/170>
+
+2020-10-27 12:34:42 +0000  Tim-Philipp Müller <[email protected]>
+
+       * docs/gst_plugins_cache.json:
+       * meson.build:
+         Back to development
+
 === release 1.18.1 ===
 
 2020-10-26 11:15:28 +0000  Tim-Philipp Müller <[email protected]>
@@ -5,6 +83,7 @@
        * ChangeLog:
        * NEWS:
        * RELEASE:
+       * docs/gst_plugins_cache.json:
        * gst-rtsp-server.doap:
        * meson.build:
          Release 1.18.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-rtsp-server-1.18.1/NEWS 
new/gst-rtsp-server-1.18.2/NEWS
--- old/gst-rtsp-server-1.18.1/NEWS     2020-10-26 12:15:28.844300300 +0100
+++ new/gst-rtsp-server-1.18.2/NEWS     2020-12-06 14:24:47.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' old/gst-rtsp-server-1.18.1/RELEASE 
new/gst-rtsp-server-1.18.2/RELEASE
--- old/gst-rtsp-server-1.18.1/RELEASE  2020-10-26 12:15:28.844300300 +0100
+++ new/gst-rtsp-server-1.18.2/RELEASE  2020-12-06 14:24:47.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-rtsp-server 1.18.1.
+This is GStreamer gst-rtsp-server 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' old/gst-rtsp-server-1.18.1/docs/gst_plugins_cache.json 
new/gst-rtsp-server-1.18.2/docs/gst_plugins_cache.json
--- old/gst-rtsp-server-1.18.1/docs/gst_plugins_cache.json      2020-10-26 
12:15:28.844300300 +0100
+++ new/gst-rtsp-server-1.18.2/docs/gst_plugins_cache.json      2020-12-06 
14:24:47.000000000 +0100
@@ -321,7 +321,7 @@
                         "construct": false,
                         "construct-only": false,
                         "controllable": false,
-                        "default": "GStreamer/1.18.1",
+                        "default": "GStreamer/1.18.2",
                         "mutable": "null",
                         "readable": true,
                         "type": "gchararray",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-rtsp-server-1.18.1/gst/rtsp-server/rtsp-media.c 
new/gst-rtsp-server-1.18.2/gst/rtsp-server/rtsp-media.c
--- old/gst-rtsp-server-1.18.1/gst/rtsp-server/rtsp-media.c     2020-10-26 
12:15:28.848300200 +0100
+++ new/gst-rtsp-server-1.18.2/gst/rtsp-server/rtsp-media.c     2020-12-06 
14:24:47.000000000 +0100
@@ -1656,12 +1656,14 @@
       sessid, &storage);
 
   if (storage) {
-    guint size_time = 0;
+    guint64 size_time = 0;
 
     if (!gst_rtsp_stream_is_tcp_receiver (stream))
       size_time = (media->priv->latency + 50) * GST_MSECOND;
 
     g_object_set (storage, "size-time", size_time, NULL);
+
+    g_object_unref (storage);
   }
 }
 
@@ -2709,7 +2711,8 @@
   g_assert (priv->streams->len > 0);
   for (i = 0; i < priv->streams->len; i++) {
     stream = g_ptr_array_index (priv->streams, i);
-    if (gst_rtsp_stream_is_complete (stream)) {
+    if (gst_rtsp_stream_is_complete (stream)
+        && gst_rtsp_stream_is_sender (stream)) {
       if (gst_rtsp_stream_get_rates (stream, rate, applied_rate)) {
         if (first_stream) {
           save_rate = *rate;
@@ -3267,12 +3270,30 @@
 
       s = gst_message_get_structure (message);
       if (gst_structure_has_name (s, "GstRTSPStreamBlocking")) {
-        GST_DEBUG ("media received blocking message");
-        priv->blocking_msg_received++;
+        gboolean is_complete = FALSE;
+        guint n_active_streams;
+        guint expected_nbr_blocking_msg;
+
+        /* to prevent problems when some streams are complete, some are not,
+         * we will ignore incomplete streams. When there are no complete
+         * streams (during DESCRIBE), we will listen to all streams. */
+
+        gst_structure_get_boolean (s, "is_complete", &is_complete);
+        n_active_streams = nbr_active_streams (media);
+        expected_nbr_blocking_msg = n_active_streams;
+        GST_DEBUG_OBJECT (media, "media received blocking message,"
+            " n_active_streams = %d, is_complete = %d",
+            n_active_streams, is_complete);
+
+        if (n_active_streams == 0 || is_complete)
+          priv->blocking_msg_received++;
+
+        if (n_active_streams == 0)
+          expected_nbr_blocking_msg = priv->streams->len;
+
         if (priv->blocked && media_streams_blocking (media) &&
             priv->no_more_pads_pending == 0 &&
-            (priv->blocking_msg_received == nbr_active_streams (media) ||
-                priv->blocking_msg_received == priv->streams->len)) {
+            priv->blocking_msg_received == expected_nbr_blocking_msg) {
           GST_DEBUG_OBJECT (GST_MESSAGE_SRC (message), "media is blocking");
           g_mutex_lock (&priv->lock);
           collect_media_stats (media);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-rtsp-server-1.18.1/gst/rtsp-server/rtsp-stream.c 
new/gst-rtsp-server-1.18.2/gst/rtsp-server/rtsp-stream.c
--- old/gst-rtsp-server-1.18.1/gst/rtsp-server/rtsp-stream.c    2020-10-26 
12:15:28.852300200 +0100
+++ new/gst-rtsp-server-1.18.2/gst/rtsp-server/rtsp-stream.c    2020-12-06 
14:24:47.000000000 +0100
@@ -220,6 +220,7 @@
   guint32 blocked_seqnum;
   guint32 blocked_rtptime;
   GstClockTime blocked_running_time;
+  gint blocked_clock_rate;
 };
 
 #define DEFAULT_CONTROL         NULL
@@ -4308,6 +4309,14 @@
           goto stats;
         *running_time = priv->blocked_running_time;
       }
+
+      if (clock_rate) {
+        *clock_rate = priv->blocked_clock_rate;
+
+        if (*clock_rate == 0 && running_time)
+          *running_time = GST_CLOCK_TIME_NONE;
+      }
+
       goto done;
     }
   }
@@ -5270,6 +5279,17 @@
     gst_event_unref (event);
   }
 
+  event = gst_pad_get_sticky_event (pad, GST_EVENT_CAPS, 0);
+  if (event) {
+    GstCaps *caps;
+    GstStructure *s;
+
+    gst_event_parse_caps (event, &caps);
+    s = gst_caps_get_structure (caps, 0);
+    gst_structure_get_int (s, "clock-rate", &priv->blocked_clock_rate);
+    gst_event_unref (event);
+  }
+
   priv->blocking = TRUE;
 
   GST_DEBUG_OBJECT (pad, "Now blocking");
@@ -5281,7 +5301,8 @@
 
   gst_element_post_message (priv->payloader,
       gst_message_new_element (GST_OBJECT_CAST (priv->payloader),
-          gst_structure_new_empty ("GstRTSPStreamBlocking")));
+          gst_structure_new ("GstRTSPStreamBlocking", "is_complete",
+              G_TYPE_BOOLEAN, priv->is_complete, NULL)));
 
 done:
   return ret;
@@ -5310,6 +5331,7 @@
         priv->blocking = FALSE;
         priv->blocked_buffer = FALSE;
         priv->blocked_running_time = GST_CLOCK_TIME_NONE;
+        priv->blocked_clock_rate = 0;
         priv->blocked_id[i] = gst_pad_add_probe (priv->send_src[i],
             GST_PAD_PROBE_TYPE_BLOCK | GST_PAD_PROBE_TYPE_BUFFER |
             GST_PAD_PROBE_TYPE_BUFFER_LIST |
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-rtsp-server-1.18.1/gst-rtsp-server.doap 
new/gst-rtsp-server-1.18.2/gst-rtsp-server.doap
--- old/gst-rtsp-server-1.18.1/gst-rtsp-server.doap     2020-10-26 
12:15:28.844300300 +0100
+++ new/gst-rtsp-server-1.18.2/gst-rtsp-server.doap     2020-12-06 
14:24:47.000000000 +0100
@@ -32,6 +32,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-rtsp-server/gst-rtsp-server-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' old/gst-rtsp-server-1.18.1/meson.build 
new/gst-rtsp-server-1.18.2/meson.build
--- old/gst-rtsp-server-1.18.1/meson.build      2020-10-26 12:15:28.852300200 
+0100
+++ new/gst-rtsp-server-1.18.2/meson.build      2020-12-06 14:24:47.000000000 
+0100
@@ -1,5 +1,5 @@
 project('gst-rtsp-server', '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' old/gst-rtsp-server-1.18.1/tests/check/gst/media.c 
new/gst-rtsp-server-1.18.2/tests/check/gst/media.c
--- old/gst-rtsp-server-1.18.1/tests/check/gst/media.c  2020-10-26 
12:15:28.852300200 +0100
+++ new/gst-rtsp-server-1.18.2/tests/check/gst/media.c  2020-12-06 
14:24:47.000000000 +0100
@@ -140,8 +140,8 @@
 
 GST_END_TEST;
 
-/* case: media is complete and contains two streams but only one is active */
-GST_START_TEST (test_media_seek_one_active_stream)
+static void
+media_playback_seek_one_active_stream (const gchar * launch_line)
 {
   GstRTSPMediaFactory *factory;
   GstRTSPMedia *media;
@@ -160,9 +160,7 @@
   fail_unless (gst_rtsp_url_parse ("rtsp://localhost:8554/test",
           &url) == GST_RTSP_OK);
 
-  gst_rtsp_media_factory_set_launch (factory,
-      "( videotestsrc ! rtpvrawpay pt=96 name=pay0 "
-      " audiotestsrc ! audioconvert ! rtpL16pay name=pay1 )");
+  gst_rtsp_media_factory_set_launch (factory, launch_line);
 
   media = gst_rtsp_media_factory_construct (factory, url);
   fail_unless (GST_IS_RTSP_MEDIA (media));
@@ -196,12 +194,12 @@
   fail_unless (gst_rtsp_stream_seekable (stream2));
 
   fail_unless (gst_rtsp_transport_free (transport) == GST_RTSP_OK);
-  fail_unless (gst_rtsp_range_parse ("npt=3.0-", &range) == GST_RTSP_OK);
+  fail_unless (gst_rtsp_range_parse ("npt=3.0-5.0", &range) == GST_RTSP_OK);
 
   /* the media is seekable now */
   fail_unless (gst_rtsp_media_seek (media, range));
 
-  /* verify that we got the expected range, 'npt=3.0-' */
+  /* verify that we got the expected range, 'npt=3.0-5.0' */
   range_str = gst_rtsp_media_get_range_string (media, TRUE, 
GST_RTSP_RANGE_NPT);
   fail_unless (gst_rtsp_range_parse (range_str, &play_range) == GST_RTSP_OK);
   fail_unless (play_range->min.seconds == range->min.seconds);
@@ -222,6 +220,30 @@
   gst_rtsp_thread_pool_cleanup ();
 }
 
+/* case: media is complete and contains two streams but only one is active,
+   audio & video sources */
+GST_START_TEST (test_media_playback_seek_one_active_stream)
+{
+  media_playback_seek_one_active_stream
+      ("( videotestsrc ! rtpvrawpay pt=96 name=pay0 "
+      " audiotestsrc ! audioconvert ! rtpL16pay name=pay1 )");
+}
+
+GST_END_TEST;
+
+/* case: media is complete and contains two streams but only one is active,
+   demux */
+GST_START_TEST (test_media_playback_demux_seek_one_active_stream)
+{
+  /* FIXME: this test produces "Failed to push event" error messages in the
+   * GST_DEBUG logs because the incomplete stream has no sinks */
+  media_playback_seek_one_active_stream ("( filesrc location="
+      GST_TEST_FILES_PATH "/test.avi !"
+      " avidemux name=demux demux.audio_0 ! queue ! decodebin ! audioconvert !"
+      " audioresample ! rtpL16pay pt=97 name=pay1"
+      " demux.video_0 ! queue ! decodebin ! rtpvrawpay pt=96 name=pay0 )");
+}
+
 GST_END_TEST;
 
 GST_START_TEST (test_media_seek_no_sinks)
@@ -847,12 +869,22 @@
 {
   Suite *s = suite_create ("rtspmedia");
   TCase *tc = tcase_create ("general");
+  gboolean has_avidemux;
 
   suite_add_tcase (s, tc);
   tcase_set_timeout (tc, 20);
+
+  has_avidemux = gst_registry_check_feature_version (gst_registry_get (),
+      "avidemux", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
+
   tcase_add_test (tc, test_media_seek);
   tcase_add_test (tc, test_media_seek_no_sinks);
-  tcase_add_test (tc, test_media_seek_one_active_stream);
+  tcase_add_test (tc, test_media_playback_seek_one_active_stream);
+  if (has_avidemux) {
+    tcase_add_test (tc, test_media_playback_demux_seek_one_active_stream);
+  } else {
+    GST_INFO ("Skipping test, missing plugins: avidemux");
+  }
   tcase_add_test (tc, test_media);
   tcase_add_test (tc, test_media_prepare);
   tcase_add_test (tc, test_media_shared_race_test_unsuspend_vs_set_state_null);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-rtsp-server-1.18.1/tests/check/meson.build 
new/gst-rtsp-server-1.18.2/tests/check/meson.build
--- old/gst-rtsp-server-1.18.1/tests/check/meson.build  2020-10-26 
12:15:28.852300200 +0100
+++ new/gst-rtsp-server-1.18.2/tests/check/meson.build  2020-12-06 
14:24:47.000000000 +0100
@@ -17,6 +17,7 @@
   '-UG_DISABLE_ASSERT',
   '-UG_DISABLE_CAST_CHECKS',
   '-DGST_CHECK_TEST_ENVIRONMENT_BEACON="GST_PLUGIN_LOADING_WHITELIST"',
+  '-DGST_TEST_FILES_PATH="' + meson.current_source_dir() + '/../files"',
 ]
 
 rtsp_server_tests = [
Binary files old/gst-rtsp-server-1.18.1/tests/files/test.avi and 
new/gst-rtsp-server-1.18.2/tests/files/test.avi differ
_______________________________________________
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