[oe-commits] ghost : gst-plugins-good_0.10.14.bb: backport matroskademux memleak fix
git version control
git at git.openembedded.org
Thu Jun 25 15:02:57 UTC 2009
Module: openembedded.git
Branch: org.openembedded.dreambox.release_25
Commit: 777ff5fad58b7ff4ec854e678cca5382ebb8a386
URL: http://gitweb.openembedded.net/?p=openembedded.git&a=commit;h=777ff5fad58b7ff4ec854e678cca5382ebb8a386
Author: ghost <andreas.monzner at multimedia-labs.de>
Date: Tue Jun 23 16:20:00 2009 +0200
gst-plugins-good_0.10.14.bb: backport matroskademux memleak fix
---
.../backport_matroskademux_memleak_fix.patch | 72 ++++++++++++++++++++
packages/gstreamer/gst-plugins-good_0.10.14.bb | 4 +-
2 files changed, 75 insertions(+), 1 deletions(-)
diff --git a/packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch b/packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch
new file mode 100644
index 0000000..214fb94
--- /dev/null
+++ b/packages/gstreamer/gst-plugins-good/backport_matroskademux_memleak_fix.patch
@@ -0,0 +1,72 @@
+diff -Naur org/gst/matroska/matroska-demux.c gst-plugins-good-0.10.14/gst/matroska/matroska-demux.c
+--- org/gst/matroska/matroska-demux.c 2009-06-23 16:13:25.000000000 +0200
++++ gst-plugins-good-0.10.14/gst/matroska/matroska-demux.c 2009-06-23 16:12:20.000000000 +0200
+@@ -856,6 +856,8 @@
+
+ g_return_val_if_fail (GST_IS_BUFFER (buf), NULL);
+
++ GST_DEBUG ("decoding buffer %p", buf);
++
+ data = GST_BUFFER_DATA (buf);
+ size = GST_BUFFER_SIZE (buf);
+
+@@ -873,6 +875,7 @@
+
+ return buf;
+ } else {
++ GST_DEBUG ("decode data failed");
+ gst_buffer_unref (buf);
+ return NULL;
+ }
+@@ -3911,6 +3914,10 @@
+ guint64 num;
+ guint8 *data;
+
++ if (buf) {
++ gst_buffer_unref (buf);
++ buf = NULL;
++ }
+ if ((ret = gst_ebml_read_buffer (ebml, &id, &buf)) != GST_FLOW_OK)
+ break;
+
+@@ -4163,6 +4170,7 @@
+
+ sub = gst_buffer_create_sub (buf,
+ GST_BUFFER_SIZE (buf) - size, lace_size[n]);
++ GST_WARNING_OBJECT (demux, "created subbuffer %p", sub);
+
+ if (stream->encodings != NULL && stream->encodings->len > 0)
+ sub = gst_matroska_decode_buffer (stream, sub);
+@@ -4192,7 +4200,6 @@
+
+ gst_matroska_demux_sync_streams (demux);
+
+-
+ if (duration) {
+ GST_BUFFER_DURATION (sub) = duration / laces;
+ stream->pos += GST_BUFFER_DURATION (sub);
+@@ -4216,6 +4223,7 @@
+ && stream->set_discont) {
+ /* When doing seeks or such, we need to restart on key frames or
+ * decoders might choke. */
++ gst_buffer_unref(sub);
+ goto done;
+ }
+
+@@ -4235,6 +4243,7 @@
+
+ /* Postprocess the buffers depending on the codec used */
+ if (stream->postprocess_frame) {
++ GST_LOG_OBJECT (demux, "running post process");
+ ret = stream->postprocess_frame (GST_ELEMENT (demux), stream, &sub);
+ }
+
+@@ -4252,7 +4261,7 @@
+ }
+
+ done:
+- if (readblock)
++ if (buf)
+ gst_buffer_unref (buf);
+ g_free (lace_size);
+
diff --git a/packages/gstreamer/gst-plugins-good_0.10.14.bb b/packages/gstreamer/gst-plugins-good_0.10.14.bb
index cd653aa..f50e8e5 100644
--- a/packages/gstreamer/gst-plugins-good_0.10.14.bb
+++ b/packages/gstreamer/gst-plugins-good_0.10.14.bb
@@ -1,3 +1,5 @@
require gst-plugins.inc
-SRC_URI += "file://sed-with-autoconf-2.59.patch;patch=1;pnum=1"
+SRC_URI += "file://sed-with-autoconf-2.59.patch;patch=1;pnum=1 \
+ file://backport_matroskademux_memleak_fix.patch;patch=1;pnum=1"
+PR = "r1"
DEPENDS += "gst-plugins-base"
More information about the Openembedded-commits
mailing list