All Projects → kylemcdonald → ofxLibdc

kylemcdonald / ofxLibdc

Licence: other
Open Frameworks wrapper for libdc1394.

Programming Languages

c
50402 projects - #5 most used programming language
C++
36643 projects - #6 most used programming language

ofxLibdc wraps libdc1394 for openFrameworks

http://damien.douxchamps.net/ieee1394/libdc1394/
http://openframeworks.cc/

It avoids unnecessary threading by using libdc1394's non-blocking image grabbing, which means you can call grabVideo without worrying about it slowing down your application.

Instead of copying the image to an internal buffer before giving it to you, ofxLibdc will fill the image you pass to it. This avoids unnecessary copying.

A minimal example of grabbing with ofxLibdc looks like:

#include "ofxLibdc.h"
class testApp : public ofBaseApp {
public:
	ofxLibdc::Camera camera;
	ofImage curFrame;
	void setup() {
		camera.setup();
	}
	void update() {
		if(camera.grabVideo(curFrame))
			curFrame.update();
	}
	void draw() {
		curFrame.draw(0, 0);
	}
};

Because there is no separate capture thread, there is no overhead from copying images you don't need.

The only parameter you may pass to setup() is the camera number or a camera GUID string. Any other camera parameters are handled by setter functions.

ofxLibdc can dynamically change a number of parameters. setPosition() can be used to change the ROI position without restarting the camera. Other changes can be made, but will cause slight delays. Format 7 can be switched on and off, or between modes, 1394b can be switched on and off, and the ROI can be resized.

For an example of interfacing to the color USB Firefly MV on OSX, see this example project from Lewis Sykes and Elliot Woods.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].