Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gstreamer-plugins-bad for 
openSUSE:Factory checked in at 2021-01-20 18:23:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-bad (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new.28504 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-bad"

Wed Jan 20 18:23:54 2021 rev:111 rq:864320 version:1.18.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-bad/gstreamer-plugins-bad.changes  
    2020-12-22 11:25:41.640733432 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-bad.new.28504/gstreamer-plugins-bad.changes
   2021-01-20 18:24:37.263361824 +0100
@@ -1,0 +2,21 @@
+Sat Jan 16 19:31:47 UTC 2021 - Bj??rn Lie <[email protected]>
+
+- Update to version 1.18.3:
+  + assrender: fix mutex handling in certain flushing/error
+    situations
+  + dvbsuboverlay: Add support for dynamic resolution update
+  + dashsink: fix critical log of dynamic pipeline
+  + d3d11shader: Fix ID3DBlob object leak
+  + d3d11videosink: Prepare window once streaming started
+  + decklinkaudiosrc: Fix duration of the first audio frame after
+    each discont
+  + intervideosrc: fix negotiation of interlaced caps
+  + msdk:
+    - Needn't close mfx session when failed, fixes double free /
+      potential crash
+    - Check GstMsdkContext instead of mfxSession instance
+  + srt: fix locking when retrieving stats
+  + rtmp2src: fix leaks when connection is cancelled during startup
+    or connection fails
+
+-------------------------------------------------------------------

Old:
----
  gst-plugins-bad-1.18.2.tar.xz

New:
----
  gst-plugins-bad-1.18.3.tar.xz

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

Other differences:
------------------
++++++ gstreamer-plugins-bad.spec ++++++
--- /var/tmp/diff_new_pack.90WnFF/_old  2021-01-20 18:24:38.199362517 +0100
+++ /var/tmp/diff_new_pack.90WnFF/_new  2021-01-20 18:24:38.203362520 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gstreamer-plugins-bad
 #
-# Copyright (c) 2020 SUSE LLC
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -28,7 +28,7 @@
 %bcond_with faad
 
 Name:           gstreamer-plugins-bad
-Version:        1.18.2
+Version:        1.18.3
 Release:        0
 Summary:        GStreamer Streaming-Media Framework Plug-Ins
 License:        LGPL-2.1-or-later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.90WnFF/_old  2021-01-20 18:24:38.227362537 +0100
+++ /var/tmp/diff_new_pack.90WnFF/_new  2021-01-20 18:24:38.227362537 +0100
@@ -9,7 +9,7 @@
 <!--
     <param name="changesgenerate">enable</param>
 -->
-    <param name="revision">1.18.2</param>
+    <param name="revision">1.18.3</param>
     <param name="scm">git</param>
   </service>
   <service name="recompress" mode="disabled">

++++++ gst-plugins-bad-1.18.2.tar.xz -> gst-plugins-bad-1.18.3.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/ChangeLog 
new/gst-plugins-bad-1.18.3/ChangeLog
--- old/gst-plugins-bad-1.18.2/ChangeLog        2020-12-06 14:24:12.000000000 
+0100
+++ new/gst-plugins-bad-1.18.3/ChangeLog        2021-01-13 22:11:24.000000000 
+0100
@@ -1,3 +1,146 @@
+=== release 1.18.3 ===
+
+2021-01-13 21:11:22 +0000  Tim-Philipp M??ller <[email protected]>
+
+       * ChangeLog:
+       * NEWS:
+       * RELEASE:
+       * gst-plugins-bad.doap:
+       * meson.build:
+         Release 1.18.3
+
+2020-12-21 14:06:53 +0530  Raju Babannavar <[email protected]>
+
+       * gst/dvbsuboverlay/dvb-sub.c:
+         dvbsuboverlay: Add support for dynamic resolution update.
+         Fixes 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1487
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1954>
+
+2020-12-16 18:32:25 +0200  Sebastian Dr??ge <[email protected]>
+
+       * sys/decklink/gstdecklinkaudiosrc.cpp:
+         decklinkaudiosrc: Fix duration of the first audio frame after each 
discont
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1891>
+
+2020-12-30 22:52:01 +0800  Haihua Hu <[email protected]>
+
+       * ext/dash/gstdashsink.c:
+       * ext/dash/gstmpdrootnode.c:
+         dashsink: fix critical log when exit dynamic pipeline
+         availability-start-time and publish-time shared the same
+         GstDateTime object, this object will be unref twice and
+         cause reference count issue. Should use g_value_dup_boxed()
+         to copy this object.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1932>
+
+2020-12-29 09:41:05 +0800  Haihao Xiang <[email protected]>
+
+       * sys/msdk/gstmsdkcontext.c:
+         msdk: needn't close mfx session when failed
+         Otherwise we will get double free issue because mfx session is closed 
in
+         finalize. See
+         
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1867#note_739346
+         for the double free issue.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1927>
+
+2020-12-10 11:11:04 +0800  Haihao Xiang <[email protected]>
+
+       * sys/msdk/gstmsdkcontext.c:
+       * sys/msdk/msdk.c:
+         msdk: check GstMsdkContext instead of mfxSession instance
+         When creating a GstMsdkContext instance, it also creates a mfxSession
+         instance, so we may check GstMsdkContext instead of mfxSession 
instance
+         to make sure MSDK is available. In addition, according to MSDK doc 
[1],
+         MFXVideoCORE_SetHandle function should be executed before any actual
+         usage of library including queries, otherwise the behavior is
+         unexpected, so we should call MFXVideoCORE_QueryPlatform after
+         MFXVideoCORE_SetHandle on Linux
+         [1] 
https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/mediasdk-man.md#working-with-va-api-applications
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1921>
+
+2020-12-28 04:33:11 +0900  Seungha Yang <[email protected]>
+
+       * sys/d3d11/gstd3d11shader.c:
+         d3d11shader: Fix ID3DBlob object leak
+         Even if HLSL compiler was able to compile our shader code, 
D3DCompile()
+         might return ID3DBlob object for compile warnings and the object
+         should be released.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1922>
+
+2020-12-29 13:15:10 +0200  Sebastian Dr??ge <[email protected]>
+
+       * ext/assrender/gstassrender.c:
+         assrender: Don't try unlocking unlocked mutex
+         When flushing right at the beginning of the video chain function or
+         when failing negotiation at the top of the function, the assrender 
mutex
+         would be unlocked without being previously locked.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1923>
+
+2020-12-20 22:12:44 +0900  Seungha Yang <[email protected]>
+
+       * sys/d3d11/gstd3d11videosink.c:
+         d3d11videosink: Prepare window once streaming started
+         ... instead of READY state. READY state is too early for setting
+         overlay window handle especially playbin/playsink scenario
+         since playsink will set given overlay handle on videosink once
+         READY state change of videosink is ensured.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1905>
+
+2020-12-10 15:37:14 +0800  Lim Siew Hoon <[email protected]>
+
+       * gst/inter/gstintervideosrc.c:
+         intervideosrc: fix negotiation of interlaced caps
+         In 1.0 the field in caps is called "interlace-mode", not "interlaced".
+         Fixes #1480
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1878>
+
+2020-12-07 14:54:28 +0100  Jan Alexander Steffens (heftig) 
<[email protected]>
+
+       * ext/srt/gstsrtobject.c:
+         srt: Don't take object lock calling gst_srt_object_get_stats
+         This function takes the sock lock. This can result in a deadlock when
+         another thread holding the sock lock is trying to take the object 
lock.
+         Thread A (Holds object lock, wants sock lock):
+         #2  gst_srt_object_get_stats at 
gst-plugins-bad/ext/srt/gstsrtobject.c:1753
+         #3  gst_srt_object_get_property_helper at 
gst-plugins-bad/ext/srt/gstsrtobject.c:409
+         #4  gst_srt_sink_get_property at 
gst-plugins-bad/ext/srt/gstsrtsink.c:95
+         #5  g_object_get_property from libgobject-2.0.so.0
+         Thread B (Holds sock lock, wants object lock):
+         #2  gst_element_post_message_default at 
gstreamer/gst/gstelement.c:2069
+         #3  gst_element_post_message at gstreamer/gst/gstelement.c:2123
+         #4  gst_element_message_full_with_details at 
gstreamer/gst/gstelement.c:2259
+         #5  gst_element_message_full at gstreamer/gst/gstelement.c:2298
+         #6  gst_srt_object_send_headers at 
gst-plugins-bad/ext/srt/gstsrtobject.c:1407
+         #7  gst_srt_object_send_headers at 
gst-plugins-bad/ext/srt/gstsrtobject.c:1444
+         #8  gst_srt_object_write_to_callers at 
gst-plugins-bad/ext/srt/gstsrtobject.c:1444
+         #9  gst_srt_object_write at 
gst-plugins-bad/ext/srt/gstsrtobject.c:1598
+         #10 gst_srt_sink_render at gst-plugins-bad/ext/srt/gstsrtsink.c:179
+         Fixes d2d00e07acc2b1ab1ae5a728ef5dc33c9dee7869.
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1863>
+
+2020-12-04 17:02:00 +1100  Matthew Waters <[email protected]>
+
+       * gst/rtmp2/rtmp/rtmpclient.c:
+       * gst/rtmp2/rtmp/rtmpconnection.c:
+       * gst/rtmp2/rtmp/rtmpconnection.h:
+         rtmp2/connection: pass the parent cancellable down to the connection
+         Otherwise, when rtpm2src cancels an inflight operation that has a 
queued
+         message stored, then the rtmp connection operation is not stopped.
+         If the cancellation occurs during rtmp connection start up, then
+         rtpm2src does not have any way of accessing the connection object as 
it
+         has not been returned yet.  As a result, rtpm2src will cancel, the
+         connection will still be processing things and the
+         GMainContext/GMainLoop associated with the outstanding operation will 
be
+         destroyed.  All outstanding operations and the rtmpconnection object 
will
+         therefore be leaked in this case.
+         Fixes: 
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1425
+         Part-of: 
<https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1865>
+
+2020-12-06 23:57:01 +0000  Tim-Philipp M??ller <[email protected]>
+
+       * meson.build:
+         Back to development
+
 === release 1.18.2 ===
 
 2020-12-06 13:24:10 +0000  Tim-Philipp M??ller <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/NEWS 
new/gst-plugins-bad-1.18.3/NEWS
--- old/gst-plugins-bad-1.18.2/NEWS     2020-12-06 14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/NEWS     2021-01-13 22:11:24.000000000 +0100
@@ -2,13 +2,13 @@
 
 GStreamer 1.18.0 was originally released on 8 September 2020.
 
-The latest bug-fix release in the 1.18 series is 1.18.2 and was released
-on 6 December 2020.
+The latest bug-fix release in the 1.18 series is 1.18.3 and was released
+on 13 January 2021.
 
 See https://gstreamer.freedesktop.org/releases/1.18/ for the latest
 version of this document.
 
-Last updated: Monday 26 October 2020, 11:00 UTC (log)
+Last updated: Wednesday 13 January 2021, 20:00 UTC (log)
 
 Introduction
 
@@ -2576,6 +2576,147 @@
 -   List of Merge Requests applied in 1.18.2
 -   List of Issues fixed in 1.18.2
 
+1.18.3
+
+The third 1.18 bug-fix release (1.18.3) was released on 13 January 2021.
+
+This release only contains bugfixes and it should be safe to update from
+1.18.x.
+
+Highlighted bugfixes in 1.18.3
+
+-   fix ogg playback regression for ogg files that also have ID3 or APE
+    tags
+-   compositor: fix artefacts and invalid memory access when blending
+    subsampled formats
+-   exported mini object ref/unref/copy functions for use in bindings
+    such as gstreamer-sharp
+-   Add support for Apple silicon (M1) to cerbero package builder
+-   Ship RIST plugin in binary packages
+-   various stability, performance and reliability improvements
+-   memory leak fixes
+-   build fixes
+
+gstreamer
+
+-   gst: Add non-inline ref/unref/copy/replace methods for various mini
+    objects (buffer, bufferlist, caps, context, event, memory, message,
+    promise, query, sample, taglist, uri) for use in bindings such as
+    gstreamer-sharp
+-   harness: don???t use GST_DEBUG_OBJECT with GstHarness which is not a
+    GObject
+
+gst-plugins-base
+
+-   audiorate: Make buffer writable before changing its metadata
+-   compositor: fix blending of subsampled components
+-   decodebin3: When reconfiguring a slot make sure that the ghostpad is
+    unlinked
+-   decodebin3: Release selection lock when pushing EOS
+-   encodebasebin: Ensure that parsers are compatible with selected
+    encoders
+-   tagdemux: resize and trim buffer in place to fix interaction with
+    oggdemux
+-   videoaggregator: Pop out old buffers on timeout
+-   video-blend: fix blending 8-bit and 16-bit frames together
+-   appsrc: fix signal documentation
+-   gl: document some GL caps specifics
+-   libvisual: workaround clang compiler warning
+
+gst-plugins-good
+
+-   deinterlace: fix build of assembly optimisations on macOS
+-   splitmuxsink: Avoid deadlock when releasing a pad from a running
+    muxer
+-   splitmuxsink: fix bogus fragment split
+-   v4l2object: Map correct video format for RGBA
+-   videoflip: fix possible crash when changing video-direction/method
+    while running
+
+gst-plugins-bad
+
+-   assrender: fix mutex handling in certain flushing/error situations
+-   dvbsuboverlay: Add support for dynamic resolution update
+-   dashsink: fix critical log of dynamic pipeline
+-   d3d11shader: Fix ID3DBlob object leak
+-   d3d11videosink: Prepare window once streaming started
+-   decklinkaudiosrc: Fix duration of the first audio frame after each
+    discont
+-   intervideosrc: fix negotiation of interlaced caps
+-   msdk: needn???t close mfx session when failed, fixes double free /
+    potential crash
+-   msdk: check GstMsdkContext instead of mfxSession instance
+-   srt: fix locking when retrieving stats
+-   rtmp2src: fix leaks when connection is cancelled during startup or
+    connection fails
+
+gst-plugins-ugly
+
+-   no changes
+
+gst-libav
+
+-   avauddec: Drain decoder on decoding failure, fixes timestamps after
+    decoding errors
+
+gst-rtsp-server
+
+-   rtsp-media: Only count senders when counting blocked streams
+-   rtsp-client: Only unref client watch context on finalize, to avoid
+    deadlock
+
+gstreamer-vaapi
+
+-   no changes
+
+gstreamer-sharp
+
+-   no changes
+
+gst-omx
+
+-   no changes
+
+gst-python
+
+-   no changes
+
+gst-editing-services
+
+-   launch: Ensure to add required ref to profiles from project
+-   tests: fix meson test env setup to make sure we use the right
+    gst-plugin-scanner
+
+gst-integration-testsuites
+
+-   no changes
+
+gst-build
+
+-   meson: Update zlib.wrap to use wrapdb instead of github fork
+
+Cerbero build tool and packaging changes in 1.18.3
+
+-   Add support for Apple silicon
+-   Build and ship RIST plugin
+
+Contributors to 1.18.3
+
+Andoni Morales Alastruey, Edward Hervey, Haihao Xiang, Haihua Hu, Hou
+Qi, Ignacio Casal Quinteiro, Jakub Adam, Jan Alexander Steffens
+(heftig), Jan Schmidt, Jordan Petridis, Lawrence Troup, Lim Siew Hoon,
+Mathieu Duponchelle, Matthew Waters, Nicolas Dufresne, Raju Babannavar,
+Sebastian Dr??ge, Seungha Yang, Thibault Saunier, Tim-Philipp M??ller,
+Tobias Ronge, Vivia Nikolaidou,
+
+??? 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.3
+
+-   List of Merge Requests applied in 1.18.3
+-   List of Issues fixed in 1.18.3
+
 Schedule for 1.20
 
 Our next major feature release will be 1.20, and 1.19 will be the
@@ -2583,8 +2724,9 @@
 development of 1.19/1.20 will happen in the git master branch.
 
 The plan for the 1.20 development cycle is yet to be confirmed, but it
-is now expected that feature freeze will take place some time in January
-2021, with the first 1.20 stable release around February/March 2021.
+is now expected that feature freeze will take place some time in
+January/February 2021, with the first 1.20 stable release hopefully
+around February/March 2021.
 
 1.20 will be backwards-compatible to the stable 1.18, 1.16, 1.14, 1.12,
 1.10, 1.8, 1.6, 1.4, 1.2 and 1.0 release series.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/RELEASE 
new/gst-plugins-bad-1.18.3/RELEASE
--- old/gst-plugins-bad-1.18.2/RELEASE  2020-12-06 14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/RELEASE  2021-01-13 22:11:24.000000000 +0100
@@ -1,4 +1,4 @@
-This is GStreamer gst-plugins-bad 1.18.2.
+This is GStreamer gst-plugins-bad 1.18.3.
 
 The GStreamer team is thrilled to announce a new major feature release
 of your favourite cross-platform multimedia framework!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/ext/assrender/gstassrender.c 
new/gst-plugins-bad-1.18.3/ext/assrender/gstassrender.c
--- old/gst-plugins-bad-1.18.2/ext/assrender/gstassrender.c     2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/ext/assrender/gstassrender.c     2021-01-13 
22:11:24.000000000 +0100
@@ -1171,7 +1171,7 @@
     if (!gst_ass_render_negotiate (render, NULL)) {
       gst_pad_mark_reconfigure (render->srcpad);
       if (GST_PAD_IS_FLUSHING (render->srcpad))
-        goto flushing;
+        goto flushing_no_unlock;
       else
         goto not_negotiated;
     }
@@ -1443,7 +1443,6 @@
   }
 not_negotiated:
   {
-    GST_ASS_RENDER_UNLOCK (render);
     GST_DEBUG_OBJECT (render, "not negotiated");
     gst_buffer_unref (buffer);
     return GST_FLOW_NOT_NEGOTIATED;
@@ -1451,6 +1450,9 @@
 flushing:
   {
     GST_ASS_RENDER_UNLOCK (render);
+  }
+flushing_no_unlock:
+  {
     GST_DEBUG_OBJECT (render, "flushing, discarding buffer");
     gst_buffer_unref (buffer);
     return GST_FLOW_FLUSHING;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/ext/dash/gstdashsink.c 
new/gst-plugins-bad-1.18.3/ext/dash/gstdashsink.c
--- old/gst-plugins-bad-1.18.2/ext/dash/gstdashsink.c   2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/ext/dash/gstdashsink.c   2021-01-13 
22:11:24.000000000 +0100
@@ -584,6 +584,7 @@
       gst_mpd_client_set_root_node (sink->mpd_client,
           "type", GST_MPD_FILE_TYPE_DYNAMIC,
           "availability-start-time", now, "publish-time", now, NULL);
+      gst_date_time_unref (now);
     }
     if (sink->minimum_update_period)
       gst_mpd_client_set_root_node (sink->mpd_client,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/ext/dash/gstmpdrootnode.c 
new/gst-plugins-bad-1.18.3/ext/dash/gstmpdrootnode.c
--- old/gst-plugins-bad-1.18.2/ext/dash/gstmpdrootnode.c        2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/ext/dash/gstmpdrootnode.c        2021-01-13 
22:11:24.000000000 +0100
@@ -83,17 +83,17 @@
     case PROP_MPD_ROOT_AVAILABILTY_START_TIME:
       if (self->availabilityStartTime)
         gst_date_time_unref (self->availabilityStartTime);
-      self->availabilityStartTime = g_value_get_boxed (value);
+      self->availabilityStartTime = g_value_dup_boxed (value);
       break;
     case PROP_MPD_ROOT_AVAILABILTY_END_TIME:
       if (self->availabilityEndTime)
         gst_date_time_unref (self->availabilityEndTime);
-      self->availabilityEndTime = g_value_get_boxed (value);
+      self->availabilityEndTime = g_value_dup_boxed (value);
       break;
     case PROP_MPD_ROOT_PUBLISH_TIME:
       if (self->publishTime)
         gst_date_time_unref (self->publishTime);
-      self->publishTime = g_value_get_boxed (value);
+      self->publishTime = g_value_dup_boxed (value);
       break;
     case PROP_MPD_ROOT_MEDIA_PRESENTATION_DURATION:
       self->mediaPresentationDuration = g_value_get_uint64 (value);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/ext/srt/gstsrtobject.c 
new/gst-plugins-bad-1.18.3/ext/srt/gstsrtobject.c
--- old/gst-plugins-bad-1.18.2/ext/srt/gstsrtobject.c   2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/ext/srt/gstsrtobject.c   2021-01-13 
22:11:24.000000000 +0100
@@ -362,84 +362,99 @@
 gst_srt_object_get_property_helper (GstSRTObject * srtobject,
     guint prop_id, GValue * value, GParamSpec * pspec)
 {
-  GST_OBJECT_LOCK (srtobject->element);
-
   switch (prop_id) {
     case PROP_URI:
+      GST_OBJECT_LOCK (srtobject->element);
       g_value_take_string (value, gst_uri_to_string (srtobject->uri));
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     case PROP_MODE:{
       GstSRTConnectionMode v;
+
+      GST_OBJECT_LOCK (srtobject->element);
       if (!gst_structure_get_enum (srtobject->parameters, "mode",
               GST_TYPE_SRT_CONNECTION_MODE, (gint *) & v)) {
         GST_WARNING_OBJECT (srtobject->element, "Failed to get 'mode'");
         v = GST_SRT_CONNECTION_MODE_NONE;
       }
       g_value_set_enum (value, v);
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     }
     case PROP_LOCALADDRESS:
+      GST_OBJECT_LOCK (srtobject->element);
       g_value_set_string (value,
           gst_structure_get_string (srtobject->parameters, "localaddress"));
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     case PROP_LOCALPORT:{
       guint v;
+
+      GST_OBJECT_LOCK (srtobject->element);
       if (!gst_structure_get_uint (srtobject->parameters, "localport", &v)) {
         GST_WARNING_OBJECT (srtobject->element, "Failed to get 'localport'");
         v = GST_SRT_DEFAULT_PORT;
       }
       g_value_set_uint (value, v);
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     }
     case PROP_PBKEYLEN:{
       GstSRTKeyLength v;
+
+      GST_OBJECT_LOCK (srtobject->element);
       if (!gst_structure_get_enum (srtobject->parameters, "pbkeylen",
               GST_TYPE_SRT_KEY_LENGTH, (gint *) & v)) {
         GST_WARNING_OBJECT (srtobject->element, "Failed to get 'pbkeylen'");
         v = GST_SRT_KEY_LENGTH_NO_KEY;
       }
       g_value_set_enum (value, v);
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     }
     case PROP_POLL_TIMEOUT:{
       gint v;
+
+      GST_OBJECT_LOCK (srtobject->element);
       if (!gst_structure_get_int (srtobject->parameters, "poll-timeout", &v)) {
         GST_WARNING_OBJECT (srtobject->element, "Failed to get 
'poll-timeout'");
         v = GST_SRT_DEFAULT_POLL_TIMEOUT;
       }
       g_value_set_int (value, v);
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     }
     case PROP_LATENCY:{
       gint v;
+
+      GST_OBJECT_LOCK (srtobject->element);
       if (!gst_structure_get_int (srtobject->parameters, "latency", &v)) {
         GST_WARNING_OBJECT (srtobject->element, "Failed to get 'latency'");
         v = GST_SRT_DEFAULT_LATENCY;
       }
       g_value_set_int (value, v);
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
     }
     case PROP_STATS:
       g_value_take_boxed (value, gst_srt_object_get_stats (srtobject));
       break;
     case PROP_WAIT_FOR_CONNECTION:
+      GST_OBJECT_LOCK (srtobject->element);
       g_value_set_boolean (value, srtobject->wait_for_connection);
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
-    case PROP_STREAMID:{
+    case PROP_STREAMID:
+      GST_OBJECT_LOCK (srtobject->element);
       g_value_set_string (value,
           gst_structure_get_string (srtobject->parameters, "streamid"));
+      GST_OBJECT_UNLOCK (srtobject->element);
       break;
-    }
     default:
-      goto err;
+      return FALSE;
   }
 
-  GST_OBJECT_UNLOCK (srtobject->element);
   return TRUE;
-
-err:
-  GST_OBJECT_UNLOCK (srtobject->element);
-  return FALSE;
 }
 
 void
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/gst/dvbsuboverlay/dvb-sub.c 
new/gst-plugins-bad-1.18.3/gst/dvbsuboverlay/dvb-sub.c
--- old/gst-plugins-bad-1.18.2/gst/dvbsuboverlay/dvb-sub.c      2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/gst/dvbsuboverlay/dvb-sub.c      2021-01-13 
22:11:24.000000000 +0100
@@ -1139,6 +1139,7 @@
     gint buf_size)
 {
   int dds_version, info_byte;
+  int display_width, display_height;
 
   if (buf_size < 5)
     return -1;
@@ -1146,14 +1147,23 @@
   info_byte = *buf++;
   dds_version = info_byte >> 4;
 
+  display_width = GST_READ_UINT16_BE (buf) + 1;
+  buf += 2;
+  display_height = GST_READ_UINT16_BE (buf) + 1;
+  buf += 2;
+
+  if ((display_width != dvb_sub->display_def.display_width)
+      || (display_height != dvb_sub->display_def.display_height)) {
+    dvb_sub->display_def.display_width = display_width;
+    dvb_sub->display_def.display_height = display_height;
+
+    dvb_sub->display_def.version = -1;
+  }
+
   if (dvb_sub->display_def.version == dds_version)
     return 0;                   /* already have this display definition 
version */
 
   dvb_sub->display_def.version = dds_version;
-  dvb_sub->display_def.display_width = GST_READ_UINT16_BE (buf) + 1;
-  buf += 2;
-  dvb_sub->display_def.display_height = GST_READ_UINT16_BE (buf) + 1;
-  buf += 2;
 
   dvb_sub->display_def.window_flag = info_byte & 1 << 3;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/gst/inter/gstintervideosrc.c 
new/gst-plugins-bad-1.18.3/gst/inter/gstintervideosrc.c
--- old/gst-plugins-bad-1.18.2/gst/inter/gstintervideosrc.c     2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/gst/inter/gstintervideosrc.c     2021-01-13 
22:11:24.000000000 +0100
@@ -498,8 +498,9 @@
   if (gst_structure_has_field (structure, "chroma-site"))
     gst_structure_fixate_field_string (structure, "chroma-site", "mpeg2");
 
-  if (gst_structure_has_field (structure, "interlaced"))
-    gst_structure_fixate_field_boolean (structure, "interlaced", FALSE);
+  if (gst_structure_has_field (structure, "interlace-mode"))
+    gst_structure_fixate_field_string (structure, "interlace-mode",
+        "progressive");
 
   return caps;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/gst/rtmp2/rtmp/rtmpclient.c 
new/gst-plugins-bad-1.18.3/gst/rtmp2/rtmp/rtmpclient.c
--- old/gst-plugins-bad-1.18.2/gst/rtmp2/rtmp/rtmpclient.c      2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/gst/rtmp2/rtmp/rtmpclient.c      2021-01-13 
22:11:24.000000000 +0100
@@ -499,7 +499,8 @@
     return;
   }
 
-  data->connection = gst_rtmp_connection_new (socket_connection);
+  data->connection = gst_rtmp_connection_new (socket_connection,
+      g_task_get_cancellable (task));
   data->error_handler_id = g_signal_connect (data->connection,
       "error", G_CALLBACK (connection_error), task);
 
@@ -510,8 +511,9 @@
 connection_error (GstRtmpConnection * connection, gpointer user_data)
 {
   GTask *task = user_data;
-  g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_FAILED,
-      "error during connection attempt");
+  if (!g_task_had_error (task))
+    g_task_return_new_error (task, G_IO_ERROR, G_IO_ERROR_FAILED,
+        "error during connection attempt");
 }
 
 static gchar *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-bad-1.18.2/gst/rtmp2/rtmp/rtmpconnection.c 
new/gst-plugins-bad-1.18.3/gst/rtmp2/rtmp/rtmpconnection.c
--- old/gst-plugins-bad-1.18.2/gst/rtmp2/rtmp/rtmpconnection.c  2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/gst/rtmp2/rtmp/rtmpconnection.c  2021-01-13 
22:11:24.000000000 +0100
@@ -251,7 +251,6 @@
 static void
 gst_rtmp_connection_init (GstRtmpConnection * rtmpconnection)
 {
-  rtmpconnection->cancellable = g_cancellable_new ();
   rtmpconnection->output_queue =
       g_async_queue_new_full ((GDestroyNotify) gst_buffer_unref);
   rtmpconnection->input_streams = gst_rtmp_chunk_streams_new ();
@@ -334,11 +333,16 @@
 }
 
 GstRtmpConnection *
-gst_rtmp_connection_new (GSocketConnection * connection)
+gst_rtmp_connection_new (GSocketConnection * connection,
+    GCancellable * cancellable)
 {
   GstRtmpConnection *sc;
 
   sc = g_object_new (GST_TYPE_RTMP_CONNECTION, NULL);
+  if (cancellable)
+    sc->cancellable = g_object_ref (cancellable);
+  else
+    sc->cancellable = g_cancellable_new ();
 
   gst_rtmp_connection_set_socket_connection (sc, connection);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-bad-1.18.2/gst/rtmp2/rtmp/rtmpconnection.h 
new/gst-plugins-bad-1.18.3/gst/rtmp2/rtmp/rtmpconnection.h
--- old/gst-plugins-bad-1.18.2/gst/rtmp2/rtmp/rtmpconnection.h  2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/gst/rtmp2/rtmp/rtmpconnection.h  2021-01-13 
22:11:24.000000000 +0100
@@ -51,7 +51,7 @@
 
 GType gst_rtmp_connection_get_type (void);
 
-GstRtmpConnection *gst_rtmp_connection_new (GSocketConnection * connection);
+GstRtmpConnection *gst_rtmp_connection_new (GSocketConnection * connection, 
GCancellable * cancellable);
 
 GSocket *gst_rtmp_connection_get_socket (GstRtmpConnection * connection);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/gst-plugins-bad.doap 
new/gst-plugins-bad-1.18.3/gst-plugins-bad.doap
--- old/gst-plugins-bad-1.18.2/gst-plugins-bad.doap     2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/gst-plugins-bad.doap     2021-01-13 
22:11:24.000000000 +0100
@@ -35,6 +35,16 @@
 
  <release>
   <Version>
+   <revision>1.18.3</revision>
+   <branch>1.18</branch>
+   <name></name>
+   <created>2021-01-13</created>
+   <file-release 
rdf:resource="https://gstreamer.freedesktop.org/src/gst-plugins-bad/gst-plugins-bad-1.18.3.tar.xz";
 />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.18.2</revision>
    <branch>1.18</branch>
    <name></name>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/meson.build 
new/gst-plugins-bad-1.18.3/meson.build
--- old/gst-plugins-bad-1.18.2/meson.build      2020-12-06 14:24:12.000000000 
+0100
+++ new/gst-plugins-bad-1.18.3/meson.build      2021-01-13 22:11:24.000000000 
+0100
@@ -1,5 +1,5 @@
 project('gst-plugins-bad', 'c', 'cpp',
-  version : '1.18.2',
+  version : '1.18.3',
   meson_version : '>= 0.49',
   default_options : [ 'warning_level=1',
                       'buildtype=debugoptimized' ])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/sys/d3d11/gstd3d11shader.c 
new/gst-plugins-bad-1.18.3/sys/d3d11/gstd3d11shader.c
--- old/gst-plugins-bad-1.18.2/sys/d3d11/gstd3d11shader.c       2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/sys/d3d11/gstd3d11shader.c       2021-01-13 
22:11:24.000000000 +0100
@@ -132,6 +132,13 @@
     return NULL;
   }
 
+  if (error) {
+    const gchar *err = ID3D10Blob_GetBufferPointer (error);
+
+    GST_WARNING ("HLSL compiler warnings:\n%s", GST_STR_NULL (err));
+    ID3D10Blob_Release (error);
+  }
+
   return ret;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/sys/d3d11/gstd3d11videosink.c 
new/gst-plugins-bad-1.18.3/sys/d3d11/gstd3d11videosink.c
--- old/gst-plugins-bad-1.18.2/sys/d3d11/gstd3d11videosink.c    2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/sys/d3d11/gstd3d11videosink.c    2021-01-13 
22:11:24.000000000 +0100
@@ -94,6 +94,7 @@
 
 static GstFlowReturn
 gst_d3d11_video_sink_show_frame (GstVideoSink * sink, GstBuffer * buf);
+static gboolean gst_d3d11_video_sink_prepare_window (GstD3D11VideoSink * self);
 
 #define gst_d3d11_video_sink_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstD3D11VideoSink, gst_d3d11_video_sink,
@@ -319,6 +320,9 @@
 
   GST_DEBUG_OBJECT (self, "set caps %" GST_PTR_FORMAT, caps);
 
+  if (!gst_d3d11_video_sink_prepare_window (self))
+    goto no_window;
+
   if (!gst_video_info_from_caps (&self->info, caps))
     goto invalid_format;
 
@@ -459,6 +463,12 @@
         "Could not locate image format from caps %" GST_PTR_FORMAT, caps);
     return FALSE;
   }
+no_window:
+  {
+    GST_ELEMENT_ERROR (sink, RESOURCE, NOT_FOUND, (NULL),
+        ("Failed to open window."));
+    return FALSE;
+  }
 no_disp_ratio:
   {
     GST_ELEMENT_ERROR (sink, CORE, NEGOTIATION, (NULL),
@@ -500,7 +510,6 @@
 {
   GstD3D11VideoSink *self = GST_D3D11_VIDEO_SINK (sink);
   gboolean is_hardware = TRUE;
-  GstD3D11WindowNativeType window_type = GST_D3D11_WINDOW_NATIVE_TYPE_HWND;
 
   GST_DEBUG_OBJECT (self, "Start");
 
@@ -510,6 +519,25 @@
     return FALSE;
   }
 
+  g_object_get (self->device, "hardware", &is_hardware, NULL);
+  if (!is_hardware) {
+    GST_WARNING_OBJECT (self, "D3D11 device is running on software emulation");
+    self->can_convert = FALSE;
+  } else {
+    self->can_convert = TRUE;
+  }
+
+  return TRUE;
+}
+
+static gboolean
+gst_d3d11_video_sink_prepare_window (GstD3D11VideoSink * self)
+{
+  GstD3D11WindowNativeType window_type = GST_D3D11_WINDOW_NATIVE_TYPE_HWND;
+
+  if (self->window)
+    return TRUE;
+
   if (!self->window_id)
     gst_video_overlay_prepare_window_handle (GST_VIDEO_OVERLAY (self));
 
@@ -518,6 +546,8 @@
         gst_d3d11_window_get_native_type_from_handle (self->window_id);
 
     if (window_type != GST_D3D11_WINDOW_NATIVE_TYPE_NONE) {
+      GST_DEBUG_OBJECT (self, "Have window handle %" G_GUINTPTR_FORMAT,
+          self->window_id);
       gst_video_overlay_got_window_handle (GST_VIDEO_OVERLAY (self),
           self->window_id);
     }
@@ -554,7 +584,7 @@
   }
 
   if (!self->window) {
-    GST_ERROR_OBJECT (sink, "Cannot create d3d11window");
+    GST_ERROR_OBJECT (self, "Cannot create d3d11window");
     return FALSE;
   }
 
@@ -571,15 +601,6 @@
   g_signal_connect (self->window, "mouse-event",
       G_CALLBACK (gst_d3d11_video_mouse_key_event), self);
 
-  g_object_get (self->device, "hardware", &is_hardware, NULL);
-
-  if (!is_hardware) {
-    GST_WARNING_OBJECT (self, "D3D11 device is running on software emulation");
-    self->can_convert = FALSE;
-  } else {
-    self->can_convert = TRUE;
-  }
-
   return TRUE;
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gst-plugins-bad-1.18.2/sys/decklink/gstdecklinkaudiosrc.cpp 
new/gst-plugins-bad-1.18.3/sys/decklink/gstdecklinkaudiosrc.cpp
--- old/gst-plugins-bad-1.18.2/sys/decklink/gstdecklinkaudiosrc.cpp     
2020-12-06 14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/sys/decklink/gstdecklinkaudiosrc.cpp     
2021-01-13 22:11:24.000000000 +0100
@@ -632,6 +632,8 @@
   // Convert to the sample numbers
   start_offset =
       gst_util_uint64_scale (start_time, self->info.rate, GST_SECOND);
+  // Convert back to round down to a sample multiple and get rid of rounding 
errors
+  start_time = gst_util_uint64_scale (start_offset, GST_SECOND, 
self->info.rate);
 
   end_offset = start_offset + sample_count;
   end_time = gst_util_uint64_scale_int (end_offset, GST_SECOND,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/sys/msdk/gstmsdkcontext.c 
new/gst-plugins-bad-1.18.3/sys/msdk/gstmsdkcontext.c
--- old/gst-plugins-bad-1.18.2/sys/msdk/gstmsdkcontext.c        2020-12-06 
14:24:12.000000000 +0100
+++ new/gst-plugins-bad-1.18.3/sys/msdk/gstmsdkcontext.c        2021-01-13 
22:11:24.000000000 +0100
@@ -178,6 +178,7 @@
 gst_msdk_context_open (GstMsdkContext * context, gboolean hardware,
     GstMsdkContextJobType job_type)
 {
+  mfxU16 codename;
   GstMsdkContextPrivate *priv = context->priv;
 
   priv->job_type = job_type;
@@ -196,10 +197,16 @@
   }
 #endif
 
+  codename = msdk_get_platform_codename (priv->session);
+
+  if (codename != MFX_PLATFORM_UNKNOWN)
+    GST_INFO ("Detected MFX platform with device code %d", codename);
+  else
+    GST_WARNING ("Unknown MFX platform");
+
   return TRUE;
 
 failed:
-  msdk_close_session (priv->session);
   return FALSE;
 }
 
@@ -359,7 +366,6 @@
       (!(_req->Type & MFX_MEMTYPE_EXPORT_FRAME) &&
           _req->Info.Width <= cached_resp->request.Info.Width &&
           _req->Info.Height <= cached_resp->request.Info.Height))
-
     return TRUE;
 
   return FALSE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gst-plugins-bad-1.18.2/sys/msdk/msdk.c 
new/gst-plugins-bad-1.18.3/sys/msdk/msdk.c
--- old/gst-plugins-bad-1.18.2/sys/msdk/msdk.c  2020-12-06 14:24:12.000000000 
+0100
+++ new/gst-plugins-bad-1.18.3/sys/msdk/msdk.c  2021-01-13 22:11:24.000000000 
+0100
@@ -191,7 +191,6 @@
   };
   mfxIMPL implementation;
   mfxStatus status;
-  mfxU16 codename;
 
   static const gchar *implementation_names[] = {
     "AUTO", "SOFTWARE", "HARDWARE", "AUTO_ANY", "HARDWARE_ANY", "HARDWARE2",
@@ -218,13 +217,6 @@
     goto failed;
   }
 
-  codename = msdk_get_platform_codename (session);
-
-  if (codename != MFX_PLATFORM_UNKNOWN)
-    GST_INFO ("Detected MFX platform with device code %d", codename);
-  else
-    GST_WARNING ("Unknown MFX platform");
-
   GST_INFO ("MFX implementation: 0x%04x (%s)", implementation,
       implementation_names[MFX_IMPL_BASETYPE (implementation)]);
   GST_INFO ("MFX version: %d.%d", version.Major, version.Minor);
@@ -239,12 +231,14 @@
 gboolean
 msdk_is_available (void)
 {
-  mfxSession session = msdk_open_session (MFX_IMPL_HARDWARE_ANY);
-  if (!session) {
+  /* Make sure we can create GstMsdkContext instance (the job type is not used 
actually) */
+  GstMsdkContext *msdk_context = gst_msdk_context_new (1, 
GST_MSDK_JOB_DECODER);
+
+  if (!msdk_context) {
     return FALSE;
   }
 
-  msdk_close_session (session);
+  gst_object_unref (msdk_context);
   return TRUE;
 }
 

Reply via email to