File qt-gstreamer-fix-memleak.patch of Package gstreamer-plugins-qt

From fe3e8979697773c69d98d172f3eea0bf0dd37287 Mon Sep 17 00:00:00 2001
From: George Kiagiadakis <george.kiagiadakis@collabora.com>
Date: Tue, 30 Sep 2014 01:11:58 +0300
Subject: gstqtvideosink: fix memory leak and synchronization issue related to
 buffer reference counting

https://bugzilla.gnome.org/show_bug.cgi?id=736758

diff --git a/elements/gstqtvideosink/delegates/basedelegate.cpp b/elements/gstqtvideosink/delegates/basedelegate.cpp
index 82b465e..7dde59c 100644
--- a/elements/gstqtvideosink/delegates/basedelegate.cpp
+++ b/elements/gstqtvideosink/delegates/basedelegate.cpp
@@ -181,7 +181,7 @@ bool BaseDelegate::event(QEvent *event)
     {
         GST_LOG_OBJECT(m_sink, "Received deactivate event");
 
-        g_clear_pointer(&m_buffer, gst_buffer_unref);
+        gst_buffer_replace (&m_buffer, NULL);
         update();
 
         return true;
diff --git a/elements/gstqtvideosink/painters/videomaterial.cpp b/elements/gstqtvideosink/painters/videomaterial.cpp
index bda535c..3073e6d 100644
--- a/elements/gstqtvideosink/painters/videomaterial.cpp
+++ b/elements/gstqtvideosink/painters/videomaterial.cpp
@@ -252,6 +252,7 @@ VideoMaterial::~VideoMaterial()
 {
     if (!m_textureSize.isEmpty())
         glDeleteTextures(m_textureCount, m_textureIds);
+    gst_buffer_replace(&m_frame, NULL);
 }
 
 int VideoMaterial::compare(const QSGMaterial *other) const
-- 
cgit v0.10.2

openSUSE Build Service is sponsored by