openni2src: Add proper clean up of OpenNI2 objects
authorArun Raghavan <arun@accosted.net>
Tue, 1 Jul 2014 07:04:44 +0000 (12:34 +0530)
committerArun Raghavan <arun@accosted.net>
Thu, 3 Jul 2014 17:38:22 +0000 (23:08 +0530)
https://bugzilla.gnome.org/show_bug.cgi?id=732535

ext/openni2/gstopenni2src.cpp

index 0416b12..9a49396 100644 (file)
@@ -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 ();