Exemple #1
0
void XnPixelStream::NewDataAvailable(OniFrame* pFrame)
{
	// crop
	xnOSEnterCriticalSection(GetLock());
	OniCropping cropping = *GetCropping();
	xnOSLeaveCriticalSection(GetLock());

	if (cropping.enabled)
	{
		XnStatus nRetVal = CropImpl(pFrame, &cropping);
		if (nRetVal != XN_STATUS_OK)
		{
			xnLogWarning(XN_MASK_DDK, "Failed to crop! Frame will be dropped");
			return;
		}
	}

	XnFrameStream::NewDataAvailable(pFrame);
}
XnStatus XnPixelStream::ReadImpl(XnStreamData* pStreamOutput)
{
    XnStatus nRetVal = XN_STATUS_OK;

    // first read
    nRetVal = XnFrameStream::ReadImpl(pStreamOutput);
    XN_IS_STATUS_OK(nRetVal);

    // now crop
    xnOSEnterCriticalSection(GetLock());
    XnCropping cropping = *GetCropping();
    xnOSLeaveCriticalSection(GetLock());

    if (cropping.bEnabled)
    {
        nRetVal = CropImpl(pStreamOutput, &cropping);
        XN_IS_STATUS_OK(nRetVal);
    }

    return (XN_STATUS_OK);
}