faceblur: Code refactoring of gst_face_blur_load_profile.

Changes inside the gst_face_blur_load_profile function, the number of
input parameters and in lines where it is used due to it cannot be used
generically.

https://bugzilla.gnome.org/show_bug.cgi?id=753994
This commit is contained in:
Vanessa Chipirrás Navalón 2015-08-26 12:27:15 +02:00 committed by Luis de Bethencourt
parent 6193f52f2d
commit bbd16144ca

View file

@ -153,7 +153,8 @@ static gboolean gst_face_blur_set_caps (GstOpencvVideoFilter * transform,
static GstFlowReturn gst_face_blur_transform_ip (GstOpencvVideoFilter * static GstFlowReturn gst_face_blur_transform_ip (GstOpencvVideoFilter *
transform, GstBuffer * buffer, IplImage * img); transform, GstBuffer * buffer, IplImage * img);
static void gst_face_blur_load_profile (GstFaceBlur * filter); static CvHaarClassifierCascade *gst_face_blur_load_profile (GstFaceBlur *
filter, gchar * profile);
/* Clean up */ /* Clean up */
static void static void
@ -243,7 +244,7 @@ static void
gst_face_blur_init (GstFaceBlur * filter) gst_face_blur_init (GstFaceBlur * filter)
{ {
filter->profile = g_strdup (DEFAULT_PROFILE); filter->profile = g_strdup (DEFAULT_PROFILE);
gst_face_blur_load_profile (filter); filter->cvCascade = gst_face_blur_load_profile (filter, filter->profile);
filter->sent_profile_load_failed_msg = FALSE; filter->sent_profile_load_failed_msg = FALSE;
filter->scale_factor = DEFAULT_SCALE_FACTOR; filter->scale_factor = DEFAULT_SCALE_FACTOR;
filter->min_neighbors = DEFAULT_MIN_NEIGHBORS; filter->min_neighbors = DEFAULT_MIN_NEIGHBORS;
@ -265,7 +266,7 @@ gst_face_blur_set_property (GObject * object, guint prop_id,
case PROP_PROFILE: case PROP_PROFILE:
g_free (filter->profile); g_free (filter->profile);
filter->profile = g_value_dup_string (value); filter->profile = g_value_dup_string (value);
gst_face_blur_load_profile (filter); filter->cvCascade = gst_face_blur_load_profile (filter, filter->profile);
filter->sent_profile_load_failed_msg = FALSE; filter->sent_profile_load_failed_msg = FALSE;
break; break;
case PROP_SCALE_FACTOR: case PROP_SCALE_FACTOR:
@ -381,15 +382,18 @@ gst_face_blur_transform_ip (GstOpencvVideoFilter * transform,
} }
static void static CvHaarClassifierCascade *
gst_face_blur_load_profile (GstFaceBlur * filter) gst_face_blur_load_profile (GstFaceBlur * filter, gchar * profile)
{ {
if (filter->cvCascade) CvHaarClassifierCascade *cascade;
cvReleaseHaarClassifierCascade (&filter->cvCascade);
filter->cvCascade = if (profile == NULL)
(CvHaarClassifierCascade *) cvLoad (filter->profile, 0, 0, 0); return NULL;
if (!filter->cvCascade) if (!(cascade = (CvHaarClassifierCascade *) cvLoad (profile, 0, 0, 0))) {
GST_WARNING ("Couldn't load Haar classifier cascade: %s.", filter->profile); GST_WARNING_OBJECT (filter, "Couldn't load Haar classifier cascade: %s.",
profile);
}
return cascade;
} }