private void InitSerializerAndPlayerSouce()
        {
            serializer = new DepthCodeMotionFrameSerializer();
            serializer.JpegCompression = 60;
            serializer.UsersOnly = false;
            serializer.DownSize640to320 = false;
            serializer.IncludeUserFrame = true;
            serializer.CompressionQuality = InfoStrat.MotionFx.PointCloud.CompressionQuality.High;

            playerSource = new PointCloudPlayerSource(serializer);
            playerSource.MotionFrameAvailable += new EventHandler<MotionFrameAvailableEventArgs>(playerSource_MotionFrameAvailable);
            playerSource.StatusChanged += new EventHandler(playerSource_StatusChanged);
            playerSource.PlaybackEnded += new EventHandler(playerSource_PlaybackEnded);

            KinectSensor sensor = (from sensorToCheck in KinectSensor.KinectSensors where sensorToCheck.Status == KinectStatus.Connected select sensorToCheck).FirstOrDefault();
            if (sensor != null)
            {
                pointRecorder = new PointCloudStreamRecorder(serializer);
            }
            else
            {
                cbxKinect.IsEnabled = false;
                cbxKinect.IsChecked = false;
            }
        }
        private void Cleanup()
        {
            if (pointCloudFrameViewer != null &&
                pointCloudFrameViewer.pointCloudImage != null)
            {
                pointCloudFrameViewer.pointCloudImage.Dispose();
            }

            if (playerSource != null)
            {
                playerSource.Dispose();
                playerSource = null;
            }
            if (pointRecorder != null)
            {
                pointRecorder.Dispose();
                pointRecorder = null;
            }

            if (sensorDevice != null)
            {
                sensorDevice.Dispose();
                sensorDevice = null;
            }
        }