From ae1027297cf2c8b247e99cb31e09dccb170f1de5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 30 Jun 2014 00:07:22 +0200 Subject: [PATCH] faceblur: Release memory storage And also release cvImages and memory storage when changing caps or reusing the element. --- ext/opencv/gstfaceblur.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/opencv/gstfaceblur.c b/ext/opencv/gstfaceblur.c index 073dea06a1..9c7d79512f 100644 --- a/ext/opencv/gstfaceblur.c +++ b/ext/opencv/gstfaceblur.c @@ -121,6 +121,7 @@ gst_face_blur_finalize (GObject * obj) if (filter->cvImage) { cvReleaseImage (&filter->cvImage); cvReleaseImage (&filter->cvGray); + cvReleaseMemStorage (&filter->cvStorage); } g_free (filter->profile); @@ -241,6 +242,12 @@ gst_face_blur_handle_sink_event (GstPad * pad, GstObject * parent, gst_structure_get_int (structure, "width", &width); gst_structure_get_int (structure, "height", &height); + if (filter->cvImage) { + cvReleaseImage (&filter->cvImage); + cvReleaseImage (&filter->cvGray); + cvReleaseMemStorage (&filter->cvStorage); + } + filter->cvImage = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 3); filter->cvGray = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 1); filter->cvStorage = cvCreateMemStorage (0);