From 652f0b4fd267fad04e857fe6e82963ffb4636e5d Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Tue, 1 Jul 2014 12:34:44 +0530 Subject: [PATCH] openni2src: Add proper clean up of OpenNI2 objects https://bugzilla.gnome.org/show_bug.cgi?id=732535 --- ext/openni2/gstopenni2src.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/ext/openni2/gstopenni2src.cpp b/ext/openni2/gstopenni2src.cpp index 0416b12909..9a49396a47 100644 --- a/ext/openni2/gstopenni2src.cpp +++ b/ext/openni2/gstopenni2src.cpp @@ -219,13 +219,11 @@ gst_openni2_src_finalize (GObject * gobject) } if (ni2src->depth) { - ni2src->depth->destroy (); delete ni2src->depth; ni2src->depth = NULL; } if (ni2src->color) { - ni2src->color->destroy (); delete ni2src->color; ni2src->color = NULL; } @@ -333,10 +331,21 @@ gst_openni2_src_stop (GstBaseSrc * bsrc) { GstOpenni2Src *src = GST_OPENNI2_SRC (bsrc); - if (src->depth->isValid ()) + if (src->depthFrame) + src->depthFrame->release (); + + if (src->colorFrame) + src->colorFrame->release (); + + if (src->depth->isValid ()) { src->depth->stop (); - if (src->color->isValid ()) + src->depth->destroy (); + } + + if (src->color->isValid ()) { src->color->stop (); + src->color->destroy (); + } src->device->close ();