diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-06-30 00:07:22 +0200 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-06-30 00:07:22 +0200 |
commit | ae1027297cf2c8b247e99cb31e09dccb170f1de5 (patch) | |
tree | 503c492cf6da889152301169b6f7eb73405f4ed2 /ext | |
parent | 48e95f3d6f684897a8376e1aef596eca6e99b0ad (diff) | |
download | gstreamer-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.c | 7 |
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); |