liSight - Linux iSight audio driver (ALSA)

liSight - Linux iSight audio driver (ALSA)

Home Download Code Documentation Contact

The Apple iSight is a firewire digital camera with a builtin microphone.
The video component of this camera is already supported by the video1394 linux framework.
It can be used by userspace applications through both libraw1394 and libdc1394 (this last is built on top of the libraw1394 but exports a specific higher level api to access dc1394 cameras).
Actually on linux you can capture and stream video originating from such cameras using VLC with the dc1394 access module.
You can also use Coriander to control dc1394 cameras. But coriander needs X11 to run (or any other X11-compatible graphic environment) and you will need some other software if you want also to stream captured video on the network (coriander can export the ieee1394 captured video on the v4l layer and, when doing this, you can use any other v4l-enabled software to access the firewire camera).
While video is already supported on linux boxes, The audio unit of the iSight camera isn't. Audio support has been requested and sponsored by the Faculty of Engineering, University of Technology Sydney and actually it's almost done, we have only to test it well and to find out possible bugs (contributes testing this driver are realy welcome, contact me directly to report issues). The actual driver release supports also multiple substreams per camera. You can open the same audio device multiple time simultaneously, this means that you can access the same audio input from different applications at the same time, without need of an audio server (this functionality has been implemented through the use of the ALSA api that permits to handle multiple substream on the same device).
Once loaded, the lisight driver will hook the audio unit of each iSight camera detected on the system and then exports an alsa device for each hooked camera. Actually each alsa device is provided with a pcm component that can be used for audio capture and with a mixer component to control volume.