From b102bc6678eebecef05e7f7f28d1b832a144b453 Mon Sep 17 00:00:00 2001 From: Alexey Ershov Date: Wed, 29 Jul 2015 11:07:11 +0300 Subject: [PATCH] fixed memory leaks --- samples/opengl/opengl_interop.cpp | 13 ++++++++----- samples/opengl/winapp.hpp | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/samples/opengl/opengl_interop.cpp b/samples/opengl/opengl_interop.cpp index 4900d1c5dd..62acbab48f 100644 --- a/samples/opengl/opengl_interop.cpp +++ b/samples/opengl/opengl_interop.cpp @@ -223,9 +223,9 @@ public: cv::cvtColor(m_frame_bgr, m_frame_rgba, CV_RGB2RGBA); if (use_buffer()) - buffer.copyFrom(m_frame_rgba); + buffer.copyFrom(m_frame_rgba, cv::ogl::Buffer::PIXEL_UNPACK_BUFFER, true); else - texture.copyFrom(m_frame_rgba); + texture.copyFrom(m_frame_rgba, true); return 0; } @@ -287,6 +287,9 @@ public: cv::ogl::Texture2D texture; cv::ogl::Buffer buffer; + texture.setAutoRelease(true); + buffer.setAutoRelease(true); + r = get_frame(texture, buffer); if (r != 0) { @@ -317,9 +320,9 @@ public: } if (do_buffer) - buffer.copyFrom(m); + buffer.copyFrom(m, cv::ogl::Buffer::PIXEL_UNPACK_BUFFER, true); else - texture.copyFrom(m); + texture.copyFrom(m, true); break; } @@ -354,7 +357,7 @@ public: { cv::Mat m(m_height, m_width, CV_8UC4); buffer.copyTo(m); - texture.copyFrom(m); + texture.copyFrom(m, true); } #if defined(__linux__) diff --git a/samples/opengl/winapp.hpp b/samples/opengl/winapp.hpp index b70dfa0fe9..3d83e09789 100644 --- a/samples/opengl/winapp.hpp +++ b/samples/opengl/winapp.hpp @@ -162,9 +162,9 @@ public: idle(); } } while (!m_end_loop); -#endif return 0; +#endif } protected: