I want to capture a webcam feed using my camera. For that I am using the 2 references: AForge.Video.dll
and AForge.Video.DirectShow.dll
.
Here\'
Edit1: for a detailed explanation view my blogpost on the same topic.
I fixed the error using the Dispatcher
class as a mutex:
void Cam_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
System.Drawing.Image imgforms = (Bitmap)eventArgs.Frame.Clone();
BitmapImage bi = new BitmapImage();
bi.BeginInit();
MemoryStream ms = new MemoryStream();
imgforms.Save(ms, ImageFormat.Bmp);
ms.Seek(0, SeekOrigin.Begin);
bi.StreamSource = ms;
bi.EndInit();
//Using the freeze function to avoid cross thread operations
bi.Freeze();
//Calling the UI thread using the Dispatcher to update the 'Image' WPF control
Dispatcher.BeginInvoke(new ThreadStart(delegate
{
frameholder.Source = bi; /*frameholder is the name of the 'Image' WPF control*/
}));
}
Now it runs as expected and I get good performance without any drop in the fps.