facedetect: fix profile loading check
authorLuis de Bethencourt <luis@debethencourt.com>
Fri, 7 Aug 2015 14:43:53 +0000 (15:43 +0100)
committerLuis de Bethencourt <luis@debethencourt.com>
Fri, 7 Aug 2015 14:51:40 +0000 (15:51 +0100)
Since the profile gchar depends on DEFAULT_FACE_PROFILE, it should never be
NULL. Furthermore CascadeClassifier accepts any input, even
an empty one, but if the profile fails to load it returns an empty cascade.
Check for this instead, and inform the user if there was an Error.

ext/opencv/gstfacedetect.cpp

index ca4710c..7a24501 100644 (file)
@@ -801,10 +801,13 @@ gst_face_detect_load_profile (GstFaceDetect * filter, gchar * profile)
 {
   CascadeClassifier *cascade;
 
-  if (profile == NULL)
+  cascade = new CascadeClassifier (profile);
+  if (cascade->empty ()) {
+    GST_ERROR_OBJECT (filter, "Invalid profile file: %s", profile);
+    delete (cascade);
     return NULL;
+ }
 
-  cascade = new CascadeClassifier (profile);
   return cascade;
 }