From 48e95f3d6f684897a8376e1aef596eca6e99b0ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 30 Jun 2014 00:05:53 +0200 Subject: [PATCH] edgedetect: Don't leak cvImages when caps are changing or the element is reused --- ext/opencv/gstedgedetect.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/opencv/gstedgedetect.c b/ext/opencv/gstedgedetect.c index 871a57324e..bb85de4c04 100644 --- a/ext/opencv/gstedgedetect.c +++ b/ext/opencv/gstedgedetect.c @@ -270,6 +270,13 @@ gst_edge_detect_handle_sink_event (GstPad * pad, GstObject * parent, gst_structure_get_int (structure, "width", &width); gst_structure_get_int (structure, "height", &height); + if (filter->cvImage != NULL) { + cvReleaseImage (&filter->cvImage); + cvReleaseImage (&filter->cvCEdge); + cvReleaseImage (&filter->cvGray); + cvReleaseImage (&filter->cvEdge); + } + filter->cvImage = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 3); filter->cvCEdge = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 3); filter->cvGray = cvCreateImage (cvSize (width, height), IPL_DEPTH_8U, 1);