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