public new void Dispose()
 {
     Bitmap = null;
     if (capture != null)
     {
         capture.Dispose();
         capture = null;
         base.Dispose();
     }
     GC.SuppressFinalize(this);
 }
        public int StartWebcam()
        {
            try
            {
                filters = new Filters();
                if (filters.VideoInputDevices == null || filters.VideoInputDevices.Count <= 0)
                {
                    return WebcamVedioPreview.ERROR_WEBCAM_NOT_FOUND;
                }
                //capture = new BitMapImageCapture(GetVideoDevice());
                //capture.FrameSize = new System.Drawing.Size(FRAME_WIDTH, FRAME_HEIGHT);
                //capture.PreviewWindow = this;
                //capture.CheckWebcam();

                capture = new Capture2(GetVideoDevice(), null);
                capture.PreviewWindow = this;

                numberofFrame = 0;
            }
            catch (Exception)
            {
                return WebcamVedioPreview.ERROR_WEBCAM_ALREADY_USING;
            }
            return WebcamVedioPreview.ERROR_NONE;
        }