summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2014-06-30 00:07:22 +0200
committerSebastian Dröge <sebastian@centricular.com>2014-06-30 00:07:22 +0200
commitae1027297cf2c8b247e99cb31e09dccb170f1de5 (patch)
tree503c492cf6da889152301169b6f7eb73405f4ed2 /ext
parent48e95f3d6f684897a8376e1aef596eca6e99b0ad (diff)
downloadgstreamer-plugins-bad-ae1027297cf2c8b247e99cb31e09dccb170f1de5.tar.gz
faceblur: Release memory storage
And also release cvImages and memory storage when changing caps or reusing the element.
Diffstat (limited to 'ext')
-rw-r--r--ext/opencv/gstfaceblur.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/ext/opencv/gstfaceblur.c b/ext/opencv/gstfaceblur.c
index 073dea06a..9c7d79512 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);