Skip to content

kinect2 sensor start/stop leakage #978

Open
@vaidotaspeckys

Description

@vaidotaspeckys

Setup:
Operating system win10,
usbdk version 1.0.19,
sensor kinect2,
libfreenect2 version 0.2.0 vc2015 64bit(prebuild)

Way to reproduce, leaks few MB per cycle:

	libfreenect2::Freenect2					m_rFreenect2Ctx;
	libfreenect2::SyncMultiFrameListener*		m_pFreenectListener;
	libfreenect2::Freenect2Device*			m_pFreenectDev;
        while (true)
	{
		libfreenect2::OpenGLPacketPipeline* foo = new libfreenect2::OpenGLPacketPipeline();
		m_pFreenectDev = m_rFreenect2Ctx.openDevice(m_szSerial, foo);
		std::this_thread::sleep_for(std::chrono::milliseconds(1000));
		if (!m_pFreenectDev)
		{
			continue;
		}

		m_pFreenectListener = new libfreenect2::SyncMultiFrameListener(libfreenect2::Frame::Ir | libfreenect2::Frame::Depth);
		
		m_pFreenectDev->setIrAndDepthFrameListener(m_pFreenectListener);


		if (!m_pFreenectDev->start())
		{
			continue;
		}

		m_pFreenectDev->stop();
		m_pFreenectDev->close();

		delete m_pFreenectDev;

		delete m_pFreenectListener;
	}

But in oposite, code below doesn't leak(differs type of listiner):


	libfreenect2::Freenect2					m_rFreenect2Ctx;
	libfreenect2::SyncMultiFrameListener*		m_pFreenectListener;
	libfreenect2::Freenect2Device*			m_pFreenectDev;
        while (true)
	{
		libfreenect2::OpenGLPacketPipeline* foo = new libfreenect2::OpenGLPacketPipeline();
		m_pFreenectDev = m_rFreenect2Ctx.openDevice(m_szSerial, foo);
		std::this_thread::sleep_for(std::chrono::milliseconds(1000));



		if (!m_pFreenectDev)
		{
			continue;
		}

		m_pFreenectListener = new libfreenect2::SyncMultiFrameListener(libfreenect2::Frame::Color);
		
		m_pFreenectDev->setColorFrameListener(m_pFreenectListener);

		if (!m_pFreenectDev->start())
		{
			continue;
		}

		m_pFreenectDev->stop();
		m_pFreenectDev->close();

		delete m_pFreenectDev;

		delete m_pFreenectListener;
	}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions