libdc1394 Homepage

What is libdc1394?

libdc1394 is a library that provides a complete high level application programming interface (API) for developers who wish to control IEEE 1394 based cameras that conform to the 1394-based Digital Camera Specifications (also known as the IIDC or DCAM Specifications). The library is currently the only one to run on all three major platforms (Linux, Mac OSX and Windows). On Linux, both the legacy drivers (raw1394/video1394) and the new "juju" stack (firewire-ohci) are supported and auto-detected.

libdc1394 provides a complete API that includes camera detection (hotplug coming soon), broadcast commands, bus ressource management (basic), full feature controls (including absolute values), memory channels, external and software trigger, support for all video modes (including 16bit modes and 1394B modes at 800Mb/s), video capture using DMA and full Format_7 control. Moreover, libdc1394 also includes a number extras such as the support of vendor specific features for Allied Vision Technologies (AVT), Basler and PixelInk. The library also includes video conversion tools such as color space conversion (YUV, RGB, MONO, etc...) and the demosaicing of Bayer color pattern images (with 8 different algorithms and including 16bit modes). All these features in combination with the multi-platform compatibility makes libdc1394 the most versatile and performant SDK for IIDC cameras. Moreover, it's open source (license: LGPL) and it's free! Several examples are also provided to put you quickly on the right tracks.

libdc1394 works with every camera that follows the IIDC standard, which is about 500 models. Check the IEEE1394 Digital Camera List for more information.

The libdc1394 project was started by Gord Peters in July 2000. At the time the offer of IIDC cameras was very limited but the advantages of Firewire cameras quickly brought help from other early developers such as Chris Urmson, Dan Dennedy and myself. It was the only API available that was not vendor dependent, and although more existed at the peak of firewire adoption, libdc1394 may be the last one remaining today.

Source code:

For official releases of the source code of libdc1394 you can go to the Sourceforge website. The source code will allow to build the library on Linux, Mac OSX and Windows (the latter via the MinGW compiler). Source packages may be available for your Linux distribution, but these are not maintained by the libdc1394 team.

For bleeding edge code you can also access the project's GIT repository, also on Sourceforge. For example, to get the latest tree type:

git clone https://git.code.sf.net/p/libdc1394/code libdc1394

Binaries:

Binaries are currently not available on Sourceforge. However, most linux distributions have libdc1394 binaries in their package management system (APT, RPM, YUM, etc...) so you should be able to get them instantly. If you intent to develop code, don't forget to get the "-dev" or "-devel" package which contains the header files, among others.

No binaries are provided for Mac OSX or Windows at this time.

Links:

  • libdc1394 on SourceForge for sources, binaires, CVS and the mailing list.
  • The libdc1394 FAQ for v1.x and v2.x: read it first!
  • libdc1394 on Ubuntu's Launchpad page.
  • Coriander is the GUI for IIDC cameras under Linux.
  • A list of cameras which indicates, among others, which camera is IIDC compatible and therefor can be used with libdc1394 and coriander.
  • 1394 drivers wiki, where you will find information about the kernel drivers and other 'low level' stuff.
  • There is a nice bunch of tutorials and other informations about cameras, optics, etc... on the 1394 Imaging website.
  • The Knowledge Base of Point Grey Research is a mine of information that is not limited to users of PGR cameras.
  • The archives of the project's mailing list.

Credits:

libdc1394 was programmed and debugged by the following individuals. Let me know if your name is missing, incomplete, misspelled or should not be mentionned here.

  • Christophe Achard
  • AgBr
  • Simon Andersson
  • Peter Antoniac
  • Samuel Audet
  • Vladimir Avdonin
  • D. Bahadir
  • Matthias Barkhoff
  • Etienne Bieber
  • Argentum Brom
  • Tim Canham
  • Hugo Costelha
  • danalien
  • Damien Delannay
  • Kristoffer Delforge
  • Dan Dennedy
  • Peter De Schrijver
  • Desmond
  • Frederic Devernay
  • Damien Douxchamps
  • Daniel Drake
  • Irv Elshoff
  • David Ergo
  • Tim Evers
  • Dirk Farin
  • Chris French
  • Christoph Ganser
  • Kero van Gelder
  • Georg Glock
  • Andy Gotz
  • Martin Gramatke
  • Brant Gurganus
  • Tony Hague
  • Matthias Hanel
  • Robert Harle
  • Olaf Hering
  • Kristian Høgsberg
  • Yves Jaeger
  • Per Dalgas Jakobsen
  • Ferenc Kahlesz
  • Seemant Kulleen
  • Phil Lamoreaux
  • Joshua Lamorie
  • Aidan Lane
  • Rudi Leitgeb
  • Jason Meltzer
  • Li Ming
  • David Moore
  • Jack Morisson
  • Mark Munte
  • Don Murray
  • Audun Jan Myrhol
  • Markus Niebel
  • Obelix
  • Mikael Olenfalk
  • Robert Olsen
  • Yasutoshi Onishi
  • Thomas Passot
  • Alain Perrier
  • Gord Peters
  • Karl Regier
  • Matt Robinson
  • Diego Ruiz
  • Johann Schoonees
  • James Sherman
  • Jon Schewe
  • Stian Skjelstad
  • Fabien Spindler
  • John Stanley
  • Aravind Sundaresan
  • Toshiyuki Umeda
  • Chris Urmson
  • Thomas Woellert
  • Daniel Westhoff
  • Boris Zingerman