/// <summary>
        /// Initialise capture devices and connect the appropriate buffers
        /// </summary>
        private void CaptureSetup()
        {
            // Try setting up the capture devices.
            if (config.Audio.CaptureDeviceNumber >= 0)
            {
                InitAudioCapture();
            }
            if (config.Video.CaptureDeviceNumber >= 0)
            {
                InitVideoCapture();
            }

            // Set up buffers
            if (mic != null)
            {
                AudioBuffers        = new AudioBufferList(config);
                mic.FrameAvailable += new EventHandler <AudioDataEventArgs>(AudioBuffers.HandleCapturedSamples);
            }
            else if (config.Audio.CaptureDeviceNumber == -2)                 // dummy mode: buffers but no capture
            {
                AudioBuffers = new AudioBufferList(config);
            }

            if (cam != null)
            {
                ImageBuffers        = new ImageBufferList(config);
                cam.TargetFrameSize = new Size(config.EncoderSettings.OutputWidth, config.EncoderSettings.OutputHeight);
                cam.FrameAvailable += new EventHandler <VideoDataEventArgs>(ImageBuffers.HandleCapturedFrame);
            }
            else if (config.Video.CaptureDeviceNumber == -2)                 // dummy mode: buffers but no capture
            {
                ImageBuffers = new ImageBufferList(config);
            }

            if (ImageBuffers == null && AudioBuffers == null)
            {
                throw new Exception("Neither Audio or Video capture was specified");
            }
        }
        /// <summary>
        /// Initialise capture devices and connect the appropriate buffers
        /// </summary>
        private void CaptureSetup()
        {
            // Try setting up the capture devices.
            if (config.Audio.CaptureDeviceNumber >= 0) InitAudioCapture();
            if (config.Video.CaptureDeviceNumber >= 0) InitVideoCapture();

            // Set up buffers
            if (mic != null) {
                AudioBuffers = new AudioBufferList(config);
                mic.FrameAvailable += new EventHandler<AudioDataEventArgs>(AudioBuffers.HandleCapturedSamples);
            } else if (config.Audio.CaptureDeviceNumber == -2) { // dummy mode: buffers but no capture
                AudioBuffers = new AudioBufferList(config);
            }

            if (cam != null) {
                ImageBuffers = new ImageBufferList(config);
                cam.TargetFrameSize = new Size(config.EncoderSettings.OutputWidth, config.EncoderSettings.OutputHeight);
                cam.FrameAvailable += new EventHandler<VideoDataEventArgs>(ImageBuffers.HandleCapturedFrame);
            } else if (config.Video.CaptureDeviceNumber == -2) { // dummy mode: buffers but no capture
                ImageBuffers = new ImageBufferList(config);
            }

            if (ImageBuffers == null && AudioBuffers == null) throw new Exception("Neither Audio or Video capture was specified");
        }