From 5a422aba704c375a307a902bafe658342e209906 Mon Sep 17 00:00:00 2001 From: scuri Date: Fri, 17 Oct 2008 06:10:15 +0000 Subject: First commit - moving from LuaForge to SourceForge --- html/en/capture_guide.html | 81 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 html/en/capture_guide.html (limited to 'html/en/capture_guide.html') diff --git a/html/en/capture_guide.html b/html/en/capture_guide.html new file mode 100644 index 0000000..b3f84c3 --- /dev/null +++ b/html/en/capture_guide.html @@ -0,0 +1,81 @@ + + + + + + +Capture Guide + + + + + +

Capture Guide

+

Using

+ +

You can list the installed capture devices using:

+ +
int imVideoCaptureDeviceCount(void)
+const char* imVideoCaptureDeviceDesc(int device)
+ +

If a device was removed or added in run time, you must update the list + calling:

+ +
int imVideoCaptureReloadDevices(void)
+ +

To handle devices you must create a imVideoCapture structure + using the function imVideoCaptureCreate. With this handle you can + manage any of the available devices, but only one device. The handle must be + destroyed with imVideoCaptureDestroy.

+

If you want to access two or more devices at the same time you must create + two different structures, but be aware that this usually work for high quality + devices like Firewire and USB 2.0. Webcams that use USB1.x can be used if + connected to different USB 2.0 controllers.

+

The next thing is to connect to a specific device, because all the other + remaining functions depends on this connection. Just call imVideoCaptureConnect with one of the available capture device numbers.

+

You control when a device start processing frames using imVideoCaptureLive. Once live the frames can be captured using + imVideoCaptureFrame. Or you can use imVideoCaptureOneFrame, + it will start capturing, returns the captured frame and stop capturing.

+

But before capturing a frame you may want to configure the device. You can + do it using Attributes, or at least in Windows you can do it using the + configuration dialogs with a call to imVideoCaptureShowDialog.

+

A very simple sequence of operations to capture just one frame from the + first device available:

+ +
imVideoCapture* vc = imVideoCaptureCreate(); 
+if (!imVideoCaptureConnect(vc, 0))
+  return;
+
+int width, height;
+imVideoCaptureGetImageSize(vc, &width, &height);
+
+// initializes the data pointer
+void* data = malloc(width*height*3);
+
+imVideoCaptureOneFrame(vc, data, IM_RGB);
+imVideoCaptureDestroy(vc);
+ +

The capture library is completely independent from the other libraries. It + just uses the same description of the data buffer used in imFileReadImageData.

+ +

Building

+ +

You should include the <im_capture.h> header and link with the + "im_capture.lib" library. This library is independent of all IM libraries.

+

To link with the capture library in Windows using Visual C you will need + the file "strmiids.lib". To link it + using Dev-C++ or Mingw 3 you will need the "im_capture.dll".

+

To compile the capture source code you will need the Direct X 9 SDK. Notice + that since Direct X uses COM, CoInitialize(NULL) is called when the devices + are enumerated.

+

For more information on Direct X capture, i.e. Direct Show see:

+ +

+ + http://msdn.microsoft.com/library/en-us/directx9_c/directX/htm/directshow.asp

+ + + + + + -- cgit v1.2.3