void irReader_FrameArrived(object sender, InfraredFrameArrivedEventArgs e)
{
using (InfraredFrame frame = e.FrameReference.AcquireFrame())
{
if (frame != null)
{
FrameDescription desc = frame.FrameDescription;
KinectBase.ColorFrameEventArgs irE = new KinectBase.ColorFrameEventArgs();
irE.bytesPerPixel = (int)desc.BytesPerPixel;
irE.pixelFormat = PixelFormats.Gray16;
irE.height = desc.Height;
irE.width = desc.Width;
irE.kinectID = kinectID;
irE.timeStamp = frame.RelativeTime;
irE.isIR = true;
//irE.image = new byte[desc.LengthInPixels * sizeof(UInt16)];
irE.image = irImagePool.GetObject();
unsafe
{
fixed (byte* ptr = irE.image)
{
frame.CopyFrameDataToIntPtr((IntPtr)ptr, desc.LengthInPixels * sizeof(UInt16));
}
}
OnColorFrameReceived(irE);
}
}
}