summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2014-09-30 01:11:58 +0300
committerGeorge Kiagiadakis <george.kiagiadakis@collabora.com>2014-09-30 01:11:58 +0300
commitfe3e8979697773c69d98d172f3eea0bf0dd37287 (patch)
treefce354122ef58471b3d08f365699ec3838dbf7ed
parent5dde8cec5c9f28b0cc63072886a03f029324c149 (diff)
gstqtvideosink: fix memory leak and synchronization issue related to buffer reference counting
https://bugzilla.gnome.org/show_bug.cgi?id=736758
-rw-r--r--elements/gstqtvideosink/delegates/basedelegate.cpp2
-rw-r--r--elements/gstqtvideosink/painters/videomaterial.cpp1
2 files changed, 2 insertions, 1 deletions
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