internal void Disconnect()
        {
            if (camera == null)
            return;

              videoViewer.Stop();
              camera.Stop();

            Log.Write("StopVideoCapturing() Disconnecting camera.VideoChannel and detector");
            connector.Disconnect(camera.VideoChannel, detector);
            Log.Write("StopVideoCapturing() Disconnecting camera.VideoChannel and provider");
              connector.Disconnect(camera.VideoChannel, provider);
            //connector.Disconnect(detector, provider);
            camera = null;
        }
        internal void Connect(string url)
        {
            if (camera != null)
            Disconnect();

              camera = new OzekiCamera(url);
              camera.CameraStateChanged += OnCameraStateChanged;
              camera.CameraErrorOccurred += OnCameraErrorOccurred;

            Log.Write("StopVideoCapturing() Connecting camera.VideoChannel and detector");
            connector.Connect(camera.VideoChannel, detector);
              //connector.Connect(detector, provider); //Needed if we want to highlight the motion on screen
            Log.Write("StopVideoCapturing() Connecting camera.VideoChannel and provider");
              connector.Connect(camera.VideoChannel, provider);

              camera.Start();
            if (videoViewerVisible)
                videoViewer.Start();
        }