private void InitARFrameBuffer() { mImage = new UnityARImageFrameData(); int yBufSize = mARCamera.videoParams.yWidth * mARCamera.videoParams.yHeight; mImage.y.data = Marshal.AllocHGlobal(yBufSize); mImage.y.width = (ulong)mARCamera.videoParams.yWidth; mImage.y.height = (ulong)mARCamera.videoParams.yHeight; mImage.y.stride = (ulong)mARCamera.videoParams.yWidth; // This does assume the YUV_NV21 format int vuBufSize = mARCamera.videoParams.yWidth * mARCamera.videoParams.yWidth / 2; mImage.vu.data = Marshal.AllocHGlobal(vuBufSize); mImage.vu.width = (ulong)mARCamera.videoParams.yWidth / 2; mImage.vu.height = (ulong)mARCamera.videoParams.yHeight / 2; mImage.vu.stride = (ulong)mARCamera.videoParams.yWidth; mSession.SetCapturePixelData(true, mImage.y.data, mImage.vu.data); }