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;
     }
 }