private void SafeInvokeRecordingStarted(CaptureConfig config)
        {
            if (RecordingStarted == null)
            {
                return;         //No Listeners
            }
            RecordingStartedEvent listener = null;

            Delegate[] dels = RecordingStarted.GetInvocationList();

            foreach (Delegate del in dels)
            {
                try
                {
                    listener = (RecordingStartedEvent)del;
                    listener.Invoke(config);
                }
                catch (Exception)
                {
                    //Could not reach the destination, so remove it
                    //from the list
                    RecordingStarted -= listener;
                }
            }
        }