private void StartIfReady() { if (mStartRequested && SurfaceAvailable) { mCameraSource.Start(mSurfaceView.Holder); if (mOverlay != null) { var size = mCameraSource.PreviewSize; var min = Math.Min(size.Width, size.Height); var max = Math.Max(size.Width, size.Height); if (IsPortraitMode()) { // Swap width and height sizes when in portrait, since it will be rotated by // 90 degrees mOverlay.SetCameraInfo(min, max, mCameraSource.CameraFacing); } else { mOverlay.SetCameraInfo(max, min, mCameraSource.CameraFacing); } mOverlay.Clear(); } mStartRequested = false; } }