summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVanessa Chipirrás Navalón <vchipirras6@gmail.com>2015-08-17 18:02:28 +0200
committerLuis de Bethencourt <luis@debethencourt.com>2015-08-18 13:32:54 +0100
commitfc03a17430d7fec3501d703961f318a2b0068f08 (patch)
treeab0da75cea66c5029387297b36c415831ecc007f
parent00a55d1a6915b21db58e481ed48c10afbcd0e675 (diff)
downloadgstreamer-plugins-bad-fc03a17430d7fec3501d703961f318a2b0068f08.tar.gz
handdetect: check CvHaarClassifierCascade is release before being modified.
Make sure a previous cascade, if it exists, is released before loading a new XML file onto it. https://bugzilla.gnome.org/show_bug.cgi?id=752528
-rw-r--r--ext/opencv/gsthanddetect.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/opencv/gsthanddetect.c b/ext/opencv/gsthanddetect.c
index 1ea247af3..f06b0c262 100644
--- a/ext/opencv/gsthanddetect.c
+++ b/ext/opencv/gsthanddetect.c
@@ -289,12 +289,16 @@ gst_handdetect_set_property (GObject * object, guint prop_id,
switch (prop_id) {
case PROP_PROFILE_FIST:
g_free (filter->profile_fist);
+ if (filter->cvCascade_fist)
+ cvReleaseHaarClassifierCascade (&filter->cvCascade_fist);
filter->profile_fist = g_value_dup_string (value);
filter->cvCascade_fist =
gst_handdetect_load_profile (filter, filter->profile_fist);
break;
case PROP_PROFILE_PALM:
g_free (filter->profile_palm);
+ if (filter->cvCascade_palm)
+ cvReleaseHaarClassifierCascade (&filter->cvCascade_palm);
filter->profile_palm = g_value_dup_string (value);
filter->cvCascade_palm =
gst_handdetect_load_profile (filter, filter->profile_palm);