Hello community,

here is the log from the commit of package gstreamer-plugins-good for 
openSUSE:Factory checked in at 2018-02-21 14:09:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gstreamer-plugins-good (Old)
 and      /work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gstreamer-plugins-good"

Wed Feb 21 14:09:44 2018 rev:52 rq:578198 version:1.12.4

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/gstreamer-plugins-good/gstreamer-plugins-good.changes
    2018-01-01 22:06:57.706275923 +0100
+++ 
/work/SRC/openSUSE:Factory/.gstreamer-plugins-good.new/gstreamer-plugins-good.changes
       2018-02-21 14:09:47.957802508 +0100
@@ -1,0 +2,8 @@
+Wed Feb 14 20:45:45 UTC 2018 - [email protected]
+
+- Add gst-good-flacdec-flush-flac-decoder.patch: flacdec: flush
+  flac decoder on lost sync (bgo#791473).
+- Add gst-good-fix-memory-leak-GAP-buffers.patch: interleave: Fix
+  memory leak of GAP buffer (bgo#793067).
+
+-------------------------------------------------------------------

New:
----
  gst-good-fix-memory-leak-GAP-buffers.patch
  gst-good-flacdec-flush-flac-decoder.patch

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

Other differences:
------------------
++++++ gstreamer-plugins-good.spec ++++++
--- /var/tmp/diff_new_pack.ck1eSg/_old  2018-02-21 14:09:48.789772547 +0100
+++ /var/tmp/diff_new_pack.ck1eSg/_new  2018-02-21 14:09:48.793772404 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package gstreamer-plugins-good
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -35,6 +35,10 @@
 
 # PATCH-FIX-UPSTREAM 
gst-good-equalizer-fix-Wincompatible-pointer-types-warning.patch bgo#791494 
[email protected] -- equalizer: Fix -Wincompatible-pointer-types warning
 Patch0:         
gst-good-equalizer-fix-Wincompatible-pointer-types-warning.patch
+# PATCH-FIX-UPSTREAM gst-good-flacdec-flush-flac-decoder.patch bgo#791473 
[email protected] -- flacdec: flush flac decoder on lost sync
+Patch1:         gst-good-flacdec-flush-flac-decoder.patch
+# PATCH-FIX-UPSTREAM gst-good-fix-memory-leak-GAP-buffers.patch bgo#793067 
[email protected] -- interleave: fix memory leak of GAP buffer
+Patch2:         gst-good-fix-memory-leak-GAP-buffers.patch
 
 BuildRequires:  gcc-c++
 BuildRequires:  gtk-doc >= 1.12

++++++ gst-good-fix-memory-leak-GAP-buffers.patch ++++++
>From 45951e16c7a982a789561622322427e796daf684 Mon Sep 17 00:00:00 2001
From: Philippe Normand <[email protected]>
Date: Wed, 31 Jan 2018 15:02:50 +0000
Subject: interleave: fix memory leak of GAP buffers

https://bugzilla.gnome.org/show_bug.cgi?id=793067
---
 gst/interleave/interleave.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c
index 76b7945..808d0ff 100644
--- a/gst/interleave/interleave.c
+++ b/gst/interleave/interleave.c
@@ -1221,7 +1221,6 @@ gst_interleave_collected (GstCollectPads * pads, 
GstInterleave * self)
       goto next;
     }
     ncollected++;
-    gst_buffer_map (inbuf, &input_info, GST_MAP_READ);
 
     if (timestamp == -1)
       timestamp = GST_BUFFER_TIMESTAMP (inbuf);
@@ -1236,6 +1235,7 @@ gst_interleave_collected (GstCollectPads * pads, 
GstInterleave * self)
     }
     outdata = write_info.data + width * channel;
 
+    gst_buffer_map (inbuf, &input_info, GST_MAP_READ);
     self->func (outdata, input_info.data, self->channels, nsamples);
     gst_buffer_unmap (inbuf, &input_info);
 
-- 
cgit v1.1

++++++ gst-good-flacdec-flush-flac-decoder.patch ++++++
>From 104aed5f424a1e2a71df1a2e1b9fd308520cf7a7 Mon Sep 17 00:00:00 2001
From: Mathieu Duponchelle <[email protected]>
Date: Mon, 8 Jan 2018 15:23:24 +0100
Subject: flacdec: flush flac decoder on lost sync.

This to allow the decoder to start searching for a new
frame again.

https://bugzilla.gnome.org/show_bug.cgi?id=791473
---
 ext/flac/gstflacdec.c | 10 +++++++++-
 ext/flac/gstflacdec.h |  1 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index dbaa0f1..15f19e6 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -178,6 +178,7 @@ gst_flac_dec_class_init (GstFlacDecClass * klass)
 static void
 gst_flac_dec_init (GstFlacDec * flacdec)
 {
+  flacdec->do_resync = FALSE;
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (flacdec), TRUE);
   gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
       (flacdec), TRUE);
@@ -511,7 +512,7 @@ gst_flac_dec_error_cb (const FLAC__StreamDecoder * d,
 
   switch (status) {
     case FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC:
-      /* Ignore this error and keep processing */
+      dec->do_resync = TRUE;
       return;
     case FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER:
       error = "bad header";
@@ -741,6 +742,7 @@ gst_flac_dec_flush (GstAudioDecoder * audio_dec, gboolean 
hard)
     }
   }
 
+  dec->do_resync = FALSE;
   FLAC__stream_decoder_flush (dec->decoder);
   gst_adapter_clear (dec->adapter);
 }
@@ -758,6 +760,12 @@ gst_flac_dec_handle_frame (GstAudioDecoder * audio_dec, 
GstBuffer * buf)
     return GST_FLOW_OK;
   }
 
+  if (dec->do_resync) {
+    GST_WARNING_OBJECT (dec, "Lost sync, flushing decoder");
+    FLAC__stream_decoder_flush (dec->decoder);
+    dec->do_resync = FALSE;
+  }
+
   GST_LOG_OBJECT (dec, "frame: ts %" GST_TIME_FORMAT ", flags 0x%04x, "
       "%" G_GSIZE_FORMAT " bytes", GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),
       GST_BUFFER_FLAGS (buf), gst_buffer_get_size (buf));
diff --git a/ext/flac/gstflacdec.h b/ext/flac/gstflacdec.h
index e8d073a..c63b300 100644
--- a/ext/flac/gstflacdec.h
+++ b/ext/flac/gstflacdec.h
@@ -59,6 +59,7 @@ struct _GstFlacDec {
   guint16        min_blocksize;
   guint16        max_blocksize;
 
+  gboolean       do_resync;
   gint           error_count;
 };
 
-- 
cgit v1.1


Reply via email to